JetFile: ControlStructures.jet
  NAMESPACE
    FUN
      PsiElement(fun)('fun')
      PsiWhiteSpace(' ')
      PsiElement(IDENTIFIER)('a')
      TYPE_PARAMETER_LIST
        <empty list>
      VALUE_PARAMETER_LIST
        PsiElement(LPAR)('(')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          THROW
            PsiElement(throw)('throw')
            PsiWhiteSpace(' ')
            NEW
              PsiElement(new)('new')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  PsiElement(IDENTIFIER)('Foo')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          RETURN
            PsiElement(return)('return')
            PsiWhiteSpace(' ')
            INTEGER_CONSTANT
              PsiElement(INTEGER_LITERAL)('10')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          BREAK
            PsiElement(break)('break')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          BREAK
            PsiElement(break)('break')
            PsiWhiteSpace(' ')
            PsiElement(IDENTIFIER)('la')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          CONTINUE
            PsiElement(continue)('continue')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          CONTINUE
            PsiElement(continue)('continue')
            PsiWhiteSpace(' ')
            PsiElement(IDENTIFIER)('la')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          IF
            PsiElement(if)('if')
            PsiWhiteSpace(' ')
            PsiElement(LPAR)('(')
            CONDITION
              INTEGER_CONSTANT
                PsiElement(INTEGER_LITERAL)('10')
            PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            THEN
              PsiElement(IDENTIFIER)('foo')
            PsiWhiteSpace(' ')
            PsiElement(else)('else')
            PsiWhiteSpace(' ')
            ELSE
              PsiElement(IDENTIFIER)('bar')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          IF
            PsiElement(if)('if')
            PsiWhiteSpace(' ')
            PsiElement(LPAR)('(')
            CONDITION
              INTEGER_CONSTANT
                PsiElement(INTEGER_LITERAL)('10')
            PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            THEN
              PsiElement(IDENTIFIER)('foo')
        PsiWhiteSpace('\n')
        PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      BLOCK
        PsiElement(LBRACE)('{')
        PsiWhiteSpace('\n  ')
        RETURN
          PsiElement(return)('return')
          PsiWhiteSpace(' ')
          INTEGER_CONSTANT
            PsiElement(INTEGER_LITERAL)('10')
        PsiWhiteSpace('\n  ')
        RETURN
          PsiElement(return)('return')
        PsiWhiteSpace('\n  ')
        INTEGER_CONSTANT
          PsiElement(INTEGER_LITERAL)('10')
        PsiWhiteSpace('\n  ')
        BREAK
          PsiElement(break)('break')
          PsiWhiteSpace('\n  ')
          PsiElement(IDENTIFIER)('la')
        PsiWhiteSpace('\n  ')
        BREAK
          PsiElement(break)('break')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('la')
        PsiWhiteSpace('\n  ')
        CONTINUE
          PsiElement(continue)('continue')
          PsiWhiteSpace('\n  ')
          PsiElement(IDENTIFIER)('la')
        PsiWhiteSpace('\n  ')
        CONTINUE
          PsiElement(continue)('continue')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('la')
        PsiWhiteSpace('\n  ')
        IF
          PsiElement(if)('if')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          CONDITION
            PsiElement(IDENTIFIER)('foo')
          PsiElement(RPAR)(')')
          PsiWhiteSpace('\n    ')
          THEN
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('foo')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n      ')
              THEN
                PsiElement(IDENTIFIER)('bar')
              PsiWhiteSpace('\n    ')
              PsiElement(else)('else')
              PsiWhiteSpace('\n      ')
              ELSE
                PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace('\n  ')
          PsiElement(else)('else')
          PsiWhiteSpace(' ')
          ELSE
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('foo')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n    ')
              THEN
                PsiElement(IDENTIFIER)('bar')
              PsiWhiteSpace('\n  ')
              PsiElement(else)('else')
              PsiWhiteSpace('\n    ')
              ELSE
                PsiElement(IDENTIFIER)('bar')
        PsiWhiteSpace('\n\n  ')
        TRY
          PsiElement(try)('try')
          PsiWhiteSpace(' ')
          BLOCK
            PsiElement(LBRACE)('{')
            PsiWhiteSpace('\n\n  ')
            PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          CATCH
            PsiElement(catch)('catch')
            PsiWhiteSpace(' ')
            VALUE_PARAMETER_LIST
              PsiElement(LPAR)('(')
              VALUE_PARAMETER
                PsiElement(IDENTIFIER)('Foo')
                PsiWhiteSpace(' ')
                PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    PsiElement(IDENTIFIER)('Bar')
              PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n  ')
        TRY
          PsiElement(try)('try')
          PsiWhiteSpace(' ')
          BLOCK
            PsiElement(LBRACE)('{')
            PsiWhiteSpace('\n\n  ')
            PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          CATCH
            PsiElement(catch)('catch')
            PsiWhiteSpace(' ')
            VALUE_PARAMETER_LIST
              PsiElement(LPAR)('(')
              VALUE_PARAMETER
                PsiElement(IDENTIFIER)('Foo')
                PsiWhiteSpace(' ')
                PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    PsiElement(IDENTIFIER)('Bar')
              PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          CATCH
            PsiElement(catch)('catch')
            PsiWhiteSpace(' ')
            VALUE_PARAMETER_LIST
              PsiElement(LPAR)('(')
              VALUE_PARAMETER
                PsiElement(IDENTIFIER)('Foo')
                PsiWhiteSpace(' ')
                PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    PsiElement(IDENTIFIER)('Bar')
              PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          CATCH
            PsiElement(catch)('catch')
            PsiWhiteSpace(' ')
            VALUE_PARAMETER_LIST
              PsiElement(LPAR)('(')
              VALUE_PARAMETER
                PsiElement(IDENTIFIER)('Foo')
                PsiWhiteSpace(' ')
                PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    PsiElement(IDENTIFIER)('Bar')
              PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n  ')
        TRY
          PsiElement(try)('try')
          PsiWhiteSpace(' ')
          BLOCK
            PsiElement(LBRACE)('{')
            PsiWhiteSpace('\n\n  ')
            PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          CATCH
            PsiElement(catch)('catch')
            PsiWhiteSpace(' ')
            VALUE_PARAMETER_LIST
              PsiElement(LPAR)('(')
              VALUE_PARAMETER
                PsiElement(IDENTIFIER)('Foo')
                PsiWhiteSpace(' ')
                PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    PsiElement(IDENTIFIER)('Bar')
              PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          CATCH
            PsiElement(catch)('catch')
            PsiWhiteSpace(' ')
            VALUE_PARAMETER_LIST
              PsiElement(LPAR)('(')
              VALUE_PARAMETER
                PsiElement(IDENTIFIER)('Foo')
                PsiWhiteSpace(' ')
                PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    PsiElement(IDENTIFIER)('Bar')
              PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          FINALLY
            PsiElement(finally)('finally')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n  ')
        TRY
          PsiElement(try)('try')
          PsiWhiteSpace(' ')
          BLOCK
            PsiElement(LBRACE)('{')
            PsiWhiteSpace('\n\n  ')
            PsiElement(RBRACE)('}')
          PsiWhiteSpace('\n  ')
          FINALLY
            PsiElement(finally)('finally')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n\n  ')
        FOR
          PsiElement(for)('for')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          LOOP_PARAMETER
            PsiElement(val)('val')
            PsiWhiteSpace(' ')
            PsiElement(IDENTIFIER)('x')
          PsiWhiteSpace(' ')
          PsiElement(in)('in')
          PsiWhiteSpace(' ')
          LOOP_RANGE
            PsiElement(IDENTIFIER)('foo')
          PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BODY
            PsiElement(IDENTIFIER)('a')
        PsiWhiteSpace('\n  ')
        FOR
          PsiElement(for)('for')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          LOOP_PARAMETER
            PsiElement(IDENTIFIER)('x')
          PsiWhiteSpace(' ')
          PsiElement(in)('in')
          PsiWhiteSpace(' ')
          LOOP_RANGE
            PsiElement(IDENTIFIER)('foo')
          PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BODY
            PsiElement(IDENTIFIER)('a')
        PsiWhiteSpace('\n  ')
        FOR
          PsiElement(for)('for')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          LOOP_PARAMETER
            PsiElement(val)('val')
            PsiWhiteSpace(' ')
            PsiElement(IDENTIFIER)('x')
            PsiWhiteSpace(' ')
            PsiElement(COLON)(':')
            PsiWhiteSpace(' ')
            TYPE_REFERENCE
              USER_TYPE
                PsiElement(IDENTIFIER)('Int')
          PsiWhiteSpace(' ')
          PsiElement(in)('in')
          PsiWhiteSpace(' ')
          LOOP_RANGE
            PsiElement(IDENTIFIER)('foo')
          PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BODY
            PsiElement(IDENTIFIER)('a')
        PsiWhiteSpace('\n  ')
        FOR
          PsiElement(for)('for')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          LOOP_PARAMETER
            PsiElement(IDENTIFIER)('x')
            PsiWhiteSpace(' ')
            PsiElement(COLON)(':')
            PsiWhiteSpace(' ')
            TYPE_REFERENCE
              USER_TYPE
                PsiElement(IDENTIFIER)('Int')
          PsiWhiteSpace(' ')
          PsiElement(in)('in')
          PsiWhiteSpace(' ')
          LOOP_RANGE
            PsiElement(IDENTIFIER)('foo')
          PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BODY
            BLOCK
              PsiElement(LBRACE)('{')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n\n  ')
        WHILE
          PsiElement(while)('while')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          CONDITION
            BOOLEAN_CONSTANT
              PsiElement(true)('true')
          PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BODY
            BLOCK
              PsiElement(LBRACE)('{')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n\n  ')
        DO_WHILE
          PsiElement(do)('do')
          PsiWhiteSpace(' ')
          BODY
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              PsiElement(RBRACE)('}')
          PsiWhiteSpace(' ')
          PsiElement(while)('while')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          CONDITION
            BOOLEAN_CONSTANT
              PsiElement(false)('false')
          PsiElement(RPAR)(')')
        PsiWhiteSpace('\n')
        PsiElement(RBRACE)('}')