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
            FUNCTION_LITERAL
              PsiElement(LBRACE)('{')
              BODY
                <empty list>
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n\n  ')
        WHILE
          PsiElement(while)('while')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          CONDITION
            BOOLEAN_CONSTANT
              PsiElement(true)('true')
          PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BODY
            FUNCTION_LITERAL
              PsiElement(LBRACE)('{')
              BODY
                <empty list>
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n\n  ')
        DO_WHILE
          PsiElement(do)('do')
          PsiWhiteSpace(' ')
          BODY
            FUNCTION_LITERAL
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n  ')
              BODY
                <empty list>
              PsiElement(RBRACE)('}')
          PsiWhiteSpace(' ')
          PsiElement(while)('while')
          PsiWhiteSpace(' ')
          PsiElement(LPAR)('(')
          CONDITION
            BOOLEAN_CONSTANT
              PsiElement(false)('false')
          PsiElement(RPAR)(')')
        PsiWhiteSpace('\n\n')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('foo')
          TYPE_PARAMETER_LIST
            <empty list>
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BLOCK
            PsiElement(LBRACE)('{')
            PsiWhiteSpace('\n    ')
            FOR
              PsiElement(for)('for')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              LOOP_PARAMETER
                PsiElement(IDENTIFIER)('a')
              PsiWhiteSpace(' ')
              PsiElement(in)('in')
              PsiWhiteSpace(' ')
              LOOP_RANGE
                PsiElement(IDENTIFIER)('b')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n      ')
              BODY
                PsiElement(IDENTIFIER)('b')
            PsiWhiteSpace('\n\n    ')
            FOR
              PsiElement(for)('for')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              LOOP_PARAMETER
                PsiElement(IDENTIFIER)('a')
              PsiWhiteSpace(' ')
              PsiElement(in)('in')
              PsiWhiteSpace(' ')
              LOOP_RANGE
                PsiElement(IDENTIFIER)('b')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              BODY
                FUNCTION_LITERAL
                  PsiElement(LBRACE)('{')
                  BODY
                    <empty list>
                  PsiElement(RBRACE)('}')
            PsiWhiteSpace('\n\n    ')
            FOR
              PsiElement(for)('for')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              LOOP_PARAMETER
                PsiElement(IDENTIFIER)('a')
              PsiWhiteSpace(' ')
              PsiElement(in)('in')
              PsiWhiteSpace(' ')
              LOOP_RANGE
                PsiElement(IDENTIFIER)('b')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              BODY
                FUNCTION_LITERAL
                  PsiElement(LBRACE)('{')
                  PsiWhiteSpace('\n      ')
                  BODY
                    PsiElement(IDENTIFIER)('b')
                  PsiWhiteSpace('\n    ')
                  PsiElement(RBRACE)('}')
            PsiWhiteSpace('\n\n    ')
            FOR
              PsiElement(for)('for')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              LOOP_PARAMETER
                PsiElement(IDENTIFIER)('a')
              PsiWhiteSpace(' ')
              PsiElement(in)('in')
              PsiWhiteSpace(' ')
              LOOP_RANGE
                PsiElement(IDENTIFIER)('b')
              PsiElement(RPAR)(')')
              BODY
                <empty list>
            PsiElement(SEMICOLON)(';')
            PsiWhiteSpace('\n      ')
            PsiElement(IDENTIFIER)('b')
            PsiWhiteSpace('\n\n    ')
            WHILE
              PsiElement(while)('while')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                BINARY_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
                  PsiWhiteSpace(' ')
                  PsiElement(in)('in')
                  PsiWhiteSpace(' ')
                  PsiElement(IDENTIFIER)('b')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n      ')
              BODY
                PsiElement(IDENTIFIER)('b')
            PsiWhiteSpace('\n\n    ')
            WHILE
              PsiElement(while)('while')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                BINARY_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
                  PsiWhiteSpace(' ')
                  PsiElement(in)('in')
                  PsiWhiteSpace(' ')
                  PsiElement(IDENTIFIER)('b')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              BODY
                FUNCTION_LITERAL
                  PsiElement(LBRACE)('{')
                  PsiWhiteSpace('\n      ')
                  BODY
                    PsiElement(IDENTIFIER)('b')
                  PsiWhiteSpace('\n    ')
                  PsiElement(RBRACE)('}')
            PsiWhiteSpace('\n\n    ')
            WHILE
              PsiElement(while)('while')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                BINARY_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
                  PsiWhiteSpace(' ')
                  PsiElement(in)('in')
                  PsiWhiteSpace(' ')
                  PsiElement(IDENTIFIER)('b')
              PsiElement(RPAR)(')')
              BODY
                <empty list>
            PsiElement(SEMICOLON)(';')
            PsiWhiteSpace('\n      ')
            PsiElement(IDENTIFIER)('b')
            PsiWhiteSpace('\n\n    ')
            WHILE
              PsiElement(while)('while')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              BODY
                FUNCTION_LITERAL
                  PsiElement(LBRACE)('{')
                  BODY
                    <empty list>
                  PsiElement(RBRACE)('}')
            PsiWhiteSpace('\n\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n      ')
              THEN
                PsiElement(IDENTIFIER)('b')
              PsiWhiteSpace('\n    ')
              PsiElement(else)('else')
              PsiWhiteSpace('\n      ')
              ELSE
                PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace('\n\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              THEN
                PsiElement(IDENTIFIER)('b')
              PsiWhiteSpace(' ')
              PsiElement(else)('else')
              PsiWhiteSpace(' ')
              ELSE
                PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace('\n\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              THEN
                PsiElement(IDENTIFIER)('b')
              PsiWhiteSpace('\n    ')
              PsiElement(else)('else')
              PsiWhiteSpace(' ')
              ELSE
                PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace('\n\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n      ')
              THEN
                PsiElement(IDENTIFIER)('b')
                PsiElement(SEMICOLON)(';')
              PsiWhiteSpace('\n    ')
              PsiElement(else)('else')
              PsiWhiteSpace('\n      ')
              ELSE
                PsiElement(IDENTIFIER)('c')
            PsiElement(SEMICOLON)(';')
            PsiWhiteSpace('\n\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              THEN
                PsiElement(IDENTIFIER)('b')
            PsiWhiteSpace('\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n      ')
              THEN
                PsiElement(IDENTIFIER)('b')
            PsiWhiteSpace('\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n      ')
              THEN
                PsiElement(IDENTIFIER)('b')
                PsiElement(SEMICOLON)(';')
            PsiWhiteSpace('\n\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace(' ')
              THEN
                <empty list>
              PsiElement(else)('else')
              PsiWhiteSpace(' ')
              ELSE
                PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace('\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n    ')
              THEN
                <empty list>
              PsiElement(else)('else')
              PsiWhiteSpace(' ')
              ELSE
                PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace('\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n     ')
              THEN
                PsiElement(SEMICOLON)(';')
              PsiWhiteSpace('\n    ')
              PsiElement(else)('else')
              PsiWhiteSpace(' ')
              ELSE
                PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace('\n    ')
            IF
              PsiElement(if)('if')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('a')
              PsiElement(RPAR)(')')
              PsiWhiteSpace('\n    ')
              THEN
                <empty list>
              PsiElement(else)('else')
              PsiWhiteSpace(' ')
              ELSE
                <empty list>
            PsiElement(SEMICOLON)(';')
            PsiWhiteSpace('\n\n    ')
            DO_WHILE
              PsiElement(do)('do')
              PsiWhiteSpace(' ')
              PsiElement(while)('while')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('r')
              PsiElement(RPAR)(')')
            PsiWhiteSpace('\n    ')
            DO_WHILE
              PsiElement(do)('do')
              PsiWhiteSpace(' ')
              BODY
                PsiElement(IDENTIFIER)('foo')
              PsiWhiteSpace(' ')
              PsiElement(while)('while')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('r')
              PsiElement(RPAR)(')')
            PsiWhiteSpace('\n    ')
            DO_WHILE
              PsiElement(do)('do')
              PsiWhiteSpace(' ')
              BODY
                FUNCTION_LITERAL
                  PsiElement(LBRACE)('{')
                  BODY
                    PsiElement(SEMICOLON)(';')
                    PsiElement(SEMICOLON)(';')
                    PsiElement(SEMICOLON)(';')
                    PsiElement(IDENTIFIER)('foo')
                    PsiElement(SEMICOLON)(';')
                    PsiElement(IDENTIFIER)('bar')
                    PsiElement(SEMICOLON)(';')
                    PsiElement(SEMICOLON)(';')
                    PsiElement(SEMICOLON)(';')
                    PsiElement(SEMICOLON)(';')
                  PsiWhiteSpace(' ')
                  PsiElement(RBRACE)('}')
              PsiWhiteSpace(' ')
              PsiElement(while)('while')
              PsiWhiteSpace(' ')
              PsiElement(LPAR)('(')
              CONDITION
                PsiElement(IDENTIFIER)('r')
              PsiElement(RPAR)(')')
            PsiWhiteSpace('\n')
            PsiElement(RBRACE)('}')
        PsiErrorElement:Expecting '}
          <empty list>