Jai File(0,269)
  JaiStatementImpl(STATEMENT)(0,34)
    JaiDeclarationImpl(DECLARATION)(0,34)
      JaiDeclNamesImpl(DECL_NAMES)(0,6)
        JaiDeclNameImpl(DECL_NAME)(0,6)
          PsiElement(Jai:IDENT)('Person')(0,6)
      PsiElement(Jai:::)('::')(7,9)
      JaiInitializerImpl(INITIALIZER)(10,34)
        JaiStructExprImpl(STRUCT_EXPR)(10,34)
          PsiElement(Jai:struct)('struct')(10,16)
          JaiBlockImpl(BLOCK)(17,34)
            PsiElement(Jai:{)('{')(17,18)
            JaiStatementImpl(STATEMENT)(19,32)
              JaiDeclarationImpl(DECLARATION)(19,32)
                JaiDeclNamesImpl(DECL_NAMES)(19,23)
                  JaiDeclNameImpl(DECL_NAME)(19,23)
                    PsiElement(Jai:IDENT)('name')(19,23)
                PsiElement(Jai::)(':')(23,24)
                JaiRefExprImpl(REF_EXPR)(25,31)
                  PsiElement(Jai:IDENT)('string')(25,31)
                PsiElement(Jai:;)(';')(31,32)
            PsiElement(Jai:})('}')(33,34)
  JaiStatementImpl(STATEMENT)(35,75)
    JaiDeclarationImpl(DECLARATION)(35,75)
      JaiDeclNamesImpl(DECL_NAMES)(35,41)
        JaiDeclNameImpl(DECL_NAME)(35,41)
          PsiElement(Jai:IDENT)('Holder')(35,41)
      PsiElement(Jai:::)('::')(42,44)
      JaiInitializerImpl(INITIALIZER)(45,75)
        JaiStructExprImpl(STRUCT_EXPR)(45,75)
          PsiElement(Jai:struct)('struct')(45,51)
          PsiElement(Jai:()('(')(52,53)
          JaiParameterImpl(PARAMETER)(53,61)
            JaiParamNamesImpl(PARAM_NAMES)(53,55)
              JaiParamNameImpl(PARAM_NAME)(53,55)
                PsiElement(Jai:$)('$')(53,54)
                PsiElement(Jai:IDENT)('T')(54,55)
            PsiElement(Jai::)(':')(55,56)
            JaiRefExprImpl(REF_EXPR)(57,61)
              PsiElement(Jai:IDENT)('Type')(57,61)
          PsiElement(Jai:,)(',')(61,62)
          JaiParameterImpl(PARAMETER)(63,70)
            JaiParamNamesImpl(PARAM_NAMES)(63,65)
              JaiParamNameImpl(PARAM_NAME)(63,65)
                PsiElement(Jai:$)('$')(63,64)
                PsiElement(Jai:IDENT)('N')(64,65)
            PsiElement(Jai::)(':')(65,66)
            JaiRefExprImpl(REF_EXPR)(67,70)
              PsiElement(Jai:IDENT)('s64')(67,70)
          PsiElement(Jai:))(')')(70,71)
          JaiBlockImpl(BLOCK)(72,75)
            PsiElement(Jai:{)('{')(72,73)
            PsiElement(Jai:})('}')(74,75)
  JaiStatementImpl(STATEMENT)(76,129)
    JaiDeclarationImpl(DECLARATION)(76,129)
      JaiDeclNamesImpl(DECL_NAMES)(76,82)
        JaiDeclNameImpl(DECL_NAME)(76,82)
          PsiElement(Jai:IDENT)('Fruits')(76,82)
      PsiElement(Jai:::)('::')(83,85)
      JaiInitializerImpl(INITIALIZER)(86,129)
        JaiEnumExprImpl(ENUM_EXPR)(86,129)
          PsiElement(Jai:enum)('enum')(86,90)
          JaiRefExprImpl(REF_EXPR)(91,94)
            PsiElement(Jai:IDENT)('u32')(91,94)
          JaiProcModifierImpl(PROC_MODIFIER)(95,105)
            JaiDirectiveExprImpl(DIRECTIVE_EXPR)(95,105)
              PsiElement(Jai:DIRECTIVE)('#specified')(95,105)
          JaiBlockImpl(BLOCK)(106,129)
            PsiElement(Jai:{)('{')(106,107)
            JaiStatementImpl(STATEMENT)(108,120)
              JaiDeclarationImpl(DECLARATION)(108,120)
                JaiDeclNamesImpl(DECL_NAMES)(108,114)
                  JaiDeclNameImpl(DECL_NAME)(108,114)
                    PsiElement(Jai:IDENT)('BANANA')(108,114)
                PsiElement(Jai:::)('::')(115,117)
                JaiInitializerImpl(INITIALIZER)(118,119)
                  JaiLiteralExprImpl(LITERAL_EXPR)(118,119)
                    PsiElement(Jai:NUMBER)('5')(118,119)
                PsiElement(Jai:;)(';')(119,120)
            JaiStatementImpl(STATEMENT)(121,127)
              JaiExpressionStatementImpl(EXPRESSION_STATEMENT)(121,127)
                JaiRefExprImpl(REF_EXPR)(121,126)
                  PsiElement(Jai:IDENT)('APPLE')(121,126)
                PsiElement(Jai:;)(';')(126,127)
            PsiElement(Jai:})('}')(128,129)
  JaiStatementImpl(STATEMENT)(130,166)
    JaiDeclarationImpl(DECLARATION)(130,166)
      JaiDeclNamesImpl(DECL_NAMES)(130,135)
        JaiDeclNameImpl(DECL_NAME)(130,135)
          PsiElement(Jai:IDENT)('Flags')(130,135)
      PsiElement(Jai:::)('::')(136,138)
      JaiInitializerImpl(INITIALIZER)(139,166)
        JaiEnumExprImpl(ENUM_EXPR)(139,166)
          PsiElement(Jai:enum_flags)('enum_flags')(139,149)
          JaiRefExprImpl(REF_EXPR)(150,152)
            PsiElement(Jai:IDENT)('u8')(150,152)
          JaiBlockImpl(BLOCK)(153,166)
            PsiElement(Jai:{)('{')(153,154)
            JaiStatementImpl(STATEMENT)(155,164)
              JaiDeclarationImpl(DECLARATION)(155,164)
                JaiDeclNamesImpl(DECL_NAMES)(155,156)
                  JaiDeclNameImpl(DECL_NAME)(155,156)
                    PsiElement(Jai:IDENT)('A')(155,156)
                PsiElement(Jai:::)('::')(157,159)
                JaiInitializerImpl(INITIALIZER)(160,163)
                  JaiLiteralExprImpl(LITERAL_EXPR)(160,163)
                    PsiElement(Jai:NUMBER)('0x1')(160,163)
                PsiElement(Jai:;)(';')(163,164)
            PsiElement(Jai:})('}')(165,166)
  JaiStatementImpl(STATEMENT)(167,199)
    JaiDeclarationImpl(DECLARATION)(167,199)
      JaiDeclNamesImpl(DECL_NAMES)(167,168)
        JaiDeclNameImpl(DECL_NAME)(167,168)
          PsiElement(Jai:IDENT)('U')(167,168)
      PsiElement(Jai:::)('::')(169,171)
      JaiInitializerImpl(INITIALIZER)(172,199)
        JaiUnionExprImpl(UNION_EXPR)(172,199)
          PsiElement(Jai:union)('union')(172,177)
          JaiBlockImpl(BLOCK)(178,199)
            PsiElement(Jai:{)('{')(178,179)
            JaiStatementImpl(STATEMENT)(180,187)
              JaiDeclarationImpl(DECLARATION)(180,187)
                JaiDeclNamesImpl(DECL_NAMES)(180,181)
                  JaiDeclNameImpl(DECL_NAME)(180,181)
                    PsiElement(Jai:IDENT)('a')(180,181)
                PsiElement(Jai::)(':')(181,182)
                JaiRefExprImpl(REF_EXPR)(183,186)
                  PsiElement(Jai:IDENT)('int')(183,186)
                PsiElement(Jai:;)(';')(186,187)
            JaiStatementImpl(STATEMENT)(188,197)
              JaiDeclarationImpl(DECLARATION)(188,197)
                JaiDeclNamesImpl(DECL_NAMES)(188,189)
                  JaiDeclNameImpl(DECL_NAME)(188,189)
                    PsiElement(Jai:IDENT)('b')(188,189)
                PsiElement(Jai::)(':')(189,190)
                JaiRefExprImpl(REF_EXPR)(191,196)
                  PsiElement(Jai:IDENT)('float')(191,196)
                PsiElement(Jai:;)(';')(196,197)
            PsiElement(Jai:})('}')(198,199)
  JaiStatementImpl(STATEMENT)(200,216)
    JaiDeclarationImpl(DECLARATION)(200,216)
      JaiDeclNamesImpl(DECL_NAMES)(200,205)
        JaiDeclNameImpl(DECL_NAME)(200,205)
          PsiElement(Jai:IDENT)('Phone')(200,205)
      PsiElement(Jai:::)('::')(206,208)
      JaiInitializerImpl(INITIALIZER)(209,215)
        JaiArrayTypeExprImpl(ARRAY_TYPE_EXPR)(209,215)
          PsiElement(Jai:[)('[')(209,210)
          JaiLiteralExprImpl(LITERAL_EXPR)(210,211)
            PsiElement(Jai:NUMBER)('9')(210,211)
          PsiElement(Jai:])(']')(211,212)
          JaiRefExprImpl(REF_EXPR)(213,215)
            PsiElement(Jai:IDENT)('u8')(213,215)
      PsiElement(Jai:;)(';')(215,216)
  JaiStatementImpl(STATEMENT)(217,232)
    JaiDeclarationImpl(DECLARATION)(217,232)
      JaiDeclNamesImpl(DECL_NAMES)(217,221)
        JaiDeclNameImpl(DECL_NAME)(217,221)
          PsiElement(Jai:IDENT)('view')(217,221)
      PsiElement(Jai::)(':')(221,222)
      JaiArrayTypeExprImpl(ARRAY_TYPE_EXPR)(223,231)
        PsiElement(Jai:[)('[')(223,224)
        PsiElement(Jai:])(']')(224,225)
        JaiRefExprImpl(REF_EXPR)(226,231)
          PsiElement(Jai:IDENT)('float')(226,231)
      PsiElement(Jai:;)(';')(231,232)
  JaiStatementImpl(STATEMENT)(233,251)
    JaiDeclarationImpl(DECLARATION)(233,251)
      JaiDeclNamesImpl(DECL_NAMES)(233,240)
        JaiDeclNameImpl(DECL_NAME)(233,240)
          PsiElement(Jai:IDENT)('dynamic')(233,240)
      PsiElement(Jai::)(':')(240,241)
      JaiArrayTypeExprImpl(ARRAY_TYPE_EXPR)(242,250)
        PsiElement(Jai:[)('[')(242,243)
        PsiElement(Jai:..)('..')(243,245)
        PsiElement(Jai:])(']')(245,246)
        JaiRefExprImpl(REF_EXPR)(247,250)
          PsiElement(Jai:IDENT)('int')(247,250)
      PsiElement(Jai:;)(';')(250,251)
  JaiStatementImpl(STATEMENT)(252,269)
    JaiDeclarationImpl(DECLARATION)(252,269)
      JaiDeclNamesImpl(DECL_NAMES)(252,259)
        JaiDeclNameImpl(DECL_NAME)(252,259)
          PsiElement(Jai:IDENT)('pointer')(252,259)
      PsiElement(Jai::)(':')(259,260)
      JaiPrefixExprImpl(PREFIX_EXPR)(261,268)
        PsiElement(Jai:*)('*')(261,262)
        JaiRefExprImpl(REF_EXPR)(262,268)
          PsiElement(Jai:IDENT)('Person')(262,268)
      PsiElement(Jai:;)(';')(268,269)