Jai File(0,236)
  JaiStatementImpl(STATEMENT)(0,16)
    JaiExpressionStatementImpl(EXPRESSION_STATEMENT)(0,16)
      JaiDirectiveExprImpl(DIRECTIVE_EXPR)(0,15)
        PsiElement(Jai:DIRECTIVE)('#import')(0,7)
        JaiLiteralExprImpl(LITERAL_EXPR)(8,15)
          PsiElement(Jai:STRING)('"Basic"')(8,15)
      PsiElement(Jai:;)(';')(15,16)
  JaiStatementImpl(STATEMENT)(17,35)
    JaiExpressionStatementImpl(EXPRESSION_STATEMENT)(17,35)
      JaiDirectiveExprImpl(DIRECTIVE_EXPR)(17,34)
        PsiElement(Jai:DIRECTIVE)('#load')(17,22)
        JaiLiteralExprImpl(LITERAL_EXPR)(23,34)
          PsiElement(Jai:STRING)('"other.jai"')(23,34)
      PsiElement(Jai:;)(';')(34,35)
  JaiStatementImpl(STATEMENT)(36,47)
    JaiDirectiveStatementImpl(DIRECTIVE_STATEMENT)(36,47)
      PsiElement(Jai:DIRECTIVE)('#scope_file')(36,47)
  JaiStatementImpl(STATEMENT)(48,71)
    JaiDeclarationImpl(DECLARATION)(48,71)
      JaiDeclNamesImpl(DECL_NAMES)(48,52)
        JaiDeclNameImpl(DECL_NAME)(48,52)
          PsiElement(Jai:IDENT)('Sort')(48,52)
      PsiElement(Jai:::)('::')(53,55)
      JaiInitializerImpl(INITIALIZER)(56,70)
        JaiDirectiveExprImpl(DIRECTIVE_EXPR)(56,70)
          PsiElement(Jai:DIRECTIVE)('#import')(56,63)
          JaiLiteralExprImpl(LITERAL_EXPR)(64,70)
            PsiElement(Jai:STRING)('"Sort"')(64,70)
      PsiElement(Jai:;)(';')(70,71)
  JaiStatementImpl(STATEMENT)(72,106)
    JaiDeclarationImpl(DECLARATION)(72,106)
      JaiDeclNamesImpl(DECL_NAMES)(72,76)
        JaiDeclNameImpl(DECL_NAME)(72,76)
          PsiElement(Jai:IDENT)('BODY')(72,76)
      PsiElement(Jai:::)('::')(77,79)
      JaiInitializerImpl(INITIALIZER)(80,106)
        JaiLiteralExprImpl(LITERAL_EXPR)(80,106)
          PsiElement(Jai:HERE_STRING)('#string DONE\nraw text\nDONE')(80,106)
  JaiStatementImpl(STATEMENT)(107,220)
    JaiIfStatementImpl(IF_STATEMENT)(107,220)
      PsiElement(Jai:DIRECTIVE)('#if')(107,110)
      JaiEqualityExprImpl(EQUALITY_EXPR)(111,125)
        JaiRefExprImpl(REF_EXPR)(111,113)
          PsiElement(Jai:IDENT)('OS')(111,113)
        PsiElement(Jai:==)('==')(114,116)
        JaiUnaryDotExprImpl(UNARY_DOT_EXPR)(117,125)
          PsiElement(Jai:.)('.')(117,118)
          JaiMemberNameImpl(MEMBER_NAME)(118,125)
            PsiElement(Jai:IDENT)('WINDOWS')(118,125)
      JaiStatementImpl(STATEMENT)(126,178)
        JaiBlockImpl(BLOCK)(126,178)
          PsiElement(Jai:{)('{')(126,127)
          JaiStatementImpl(STATEMENT)(132,176)
            JaiDeclarationImpl(DECLARATION)(132,176)
              JaiDeclNamesImpl(DECL_NAMES)(132,135)
                JaiDeclNameImpl(DECL_NAME)(132,135)
                  PsiElement(Jai:IDENT)('lib')(132,135)
              PsiElement(Jai:::)('::')(136,138)
              JaiInitializerImpl(INITIALIZER)(139,175)
                JaiDirectiveExprImpl(DIRECTIVE_EXPR)(139,175)
                  PsiElement(Jai:DIRECTIVE)('#library')(139,147)
                  PsiElement(Jai:,)(',')(147,148)
                  PsiElement(Jai:IDENT)('system')(148,154)
                  PsiElement(Jai:,)(',')(154,155)
                  PsiElement(Jai:IDENT)('link_always')(155,166)
                  JaiLiteralExprImpl(LITERAL_EXPR)(167,175)
                    PsiElement(Jai:STRING)('"user32"')(167,175)
              PsiElement(Jai:;)(';')(175,176)
          PsiElement(Jai:})('}')(177,178)
      JaiElseClauseImpl(ELSE_CLAUSE)(179,220)
        PsiElement(Jai:else)('else')(179,183)
        JaiStatementImpl(STATEMENT)(184,220)
          JaiBlockImpl(BLOCK)(184,220)
            PsiElement(Jai:{)('{')(184,185)
            JaiStatementImpl(STATEMENT)(190,218)
              JaiExpressionStatementImpl(EXPRESSION_STATEMENT)(190,218)
                JaiDirectiveExprImpl(DIRECTIVE_EXPR)(190,217)
                  PsiElement(Jai:DIRECTIVE)('#assert')(190,197)
                  JaiLiteralExprImpl(LITERAL_EXPR)(198,203)
                    PsiElement(Jai:false)('false')(198,203)
                  JaiLiteralExprImpl(LITERAL_EXPR)(204,217)
                    PsiElement(Jai:STRING)('"unsupported"')(204,217)
                PsiElement(Jai:;)(';')(217,218)
            PsiElement(Jai:})('}')(219,220)
  JaiStatementImpl(STATEMENT)(221,236)
    JaiDeclarationImpl(DECLARATION)(221,236)
      JaiDeclNamesImpl(DECL_NAMES)(221,222)
        JaiDeclNameImpl(DECL_NAME)(221,222)
          PsiElement(Jai:IDENT)('c')(221,222)
      PsiElement(Jai:::)('::')(223,225)
      JaiInitializerImpl(INITIALIZER)(226,235)
        JaiDirectiveExprImpl(DIRECTIVE_EXPR)(226,235)
          PsiElement(Jai:DIRECTIVE)('#char')(226,231)
          JaiLiteralExprImpl(LITERAL_EXPR)(232,235)
            PsiElement(Jai:STRING)('"a"')(232,235)
      PsiElement(Jai:;)(';')(235,236)