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')
      SCRIPT_INITIALIZER
        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')
      SCRIPT_INITIALIZER
        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)('}')