JetFile: ComplexScript.kts
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  SCRIPT
    BLOCK
      FUN
        PsiElement(fun)('fun')
        PsiWhiteSpace(' ')
        PsiElement(IDENTIFIER)('die')
        VALUE_PARAMETER_LIST
          PsiElement(LPAR)('(')
          VALUE_PARAMETER
            PsiElement(IDENTIFIER)('message')
            PsiElement(COLON)(':')
            PsiWhiteSpace(' ')
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('String')
          PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        BLOCK
          PsiElement(LBRACE)('{')
          PsiWhiteSpace('\n    ')
          DOT_QUALIFIED_EXPRESSION
            DOT_QUALIFIED_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('System')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('err')
            PsiElement(DOT)('.')
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('println')
              VALUE_ARGUMENT_LIST
                PsiElement(LPAR)('(')
                VALUE_ARGUMENT
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('message')
                PsiElement(RPAR)(')')
          PsiWhiteSpace('\n    ')
          DOT_QUALIFIED_EXPRESSION
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('System')
            PsiElement(DOT)('.')
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('exit')
              VALUE_ARGUMENT_LIST
                PsiElement(LPAR)('(')
                VALUE_ARGUMENT
                  INTEGER_CONSTANT
                    PsiElement(INTEGER_LITERAL)('1')
                PsiElement(RPAR)(')')
          PsiWhiteSpace('\n')
          PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n')
      IF
        PsiElement(if)('if')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        CONDITION
          BINARY_EXPRESSION
            DOT_QUALIFIED_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('args')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('length')
            PsiWhiteSpace(' ')
            OPERATION_REFERENCE
              PsiElement(EQEQ)('==')
            PsiWhiteSpace(' ')
            INTEGER_CONSTANT
              PsiElement(INTEGER_LITERAL)('0')
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        THEN
          BLOCK
            PsiElement(LBRACE)('{')
            PsiWhiteSpace('\n    ')
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('die')
              VALUE_ARGUMENT_LIST
                PsiElement(LPAR)('(')
                VALUE_ARGUMENT
                  STRING_TEMPLATE
                    PsiElement(OPEN_QUOTE)('"')
                    LITERAL_STRING_TEMPLATE_ENTRY
                      PsiElement(REGULAR_STRING_PART)('Need arguments')
                    PsiElement(CLOSING_QUOTE)('"')
                PsiElement(RPAR)(')')
            PsiWhiteSpace('\n')
            PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n')
      FOR
        PsiElement(for)('for')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('arg')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        LOOP_RANGE
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('args')
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        BODY
          BLOCK
            PsiElement(LBRACE)('{')
            PsiWhiteSpace('\n    ')
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('println')
              VALUE_ARGUMENT_LIST
                PsiElement(LPAR)('(')
                VALUE_ARGUMENT
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('arg')
                PsiElement(RPAR)(')')
            PsiWhiteSpace('\n')
            PsiElement(RBRACE)('}')
