FILE
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('main')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPrefixIncExprImpl(PREFIX_INC_EXPR)
          RsIncImpl(INC)
            PsiElement(+)('+')
            PsiElement(+)('+')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPrefixIncExprImpl(PREFIX_INC_EXPR)
            RsIncImpl(INC)
              PsiElement(+)('+')
              PsiElement(+)('+')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<)('<')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('n')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('n')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<)('<')
          PsiWhiteSpace(' ')
          RsPrefixIncExprImpl(PREFIX_INC_EXPR)
            RsIncImpl(INC)
              PsiElement(+)('+')
              PsiElement(+)('+')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(-)('-')
          RsUnaryExprImpl(UNARY_EXPR)
            PsiElement(-)('-')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsUnaryExprImpl(UNARY_EXPR)
            PsiElement(-)('-')
            RsUnaryExprImpl(UNARY_EXPR)
              PsiElement(-)('-')
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('a')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<)('<')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('n')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('n')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<)('<')
          PsiWhiteSpace(' ')
          RsUnaryExprImpl(UNARY_EXPR)
            PsiElement(-)('-')
            RsUnaryExprImpl(UNARY_EXPR)
              PsiElement(-)('-')
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPostfixIncExprImpl(POSTFIX_INC_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('a')
          RsIncImpl(INC)
            PsiElement(+)('+')
            PsiElement(+)('+')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPostfixIncExprImpl(POSTFIX_INC_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
            RsIncImpl(INC)
              PsiElement(+)('+')
              PsiElement(+)('+')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<)('<')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('n')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('n')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<)('<')
          PsiWhiteSpace(' ')
          RsPostfixIncExprImpl(POSTFIX_INC_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
            RsIncImpl(INC)
              PsiElement(+)('+')
              PsiElement(+)('+')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPostfixDecExprImpl(POSTFIX_DEC_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('a')
          RsDecImpl(DEC)
            PsiElement(-)('-')
            PsiElement(-)('-')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('n')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(<)('<')
          PsiWhiteSpace(' ')
          RsPostfixDecExprImpl(POSTFIX_DEC_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
            RsDecImpl(DEC)
              PsiElement(-)('-')
              PsiElement(-)('-')
        PsiElement(;)(';')
      PsiWhiteSpace('\n\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('a')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(-)('-')
          PsiWhiteSpace(' ')
          RsUnaryExprImpl(UNARY_EXPR)
            PsiElement(-)('-')
            RsUnaryExprImpl(UNARY_EXPR)
              PsiElement(*)('*')
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('a')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(-)('-')
          PsiWhiteSpace(' ')
          RsUnaryExprImpl(UNARY_EXPR)
            PsiElement(-)('-')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('a')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(-)('-')
          PsiWhiteSpace(' ')
          RsUnaryExprImpl(UNARY_EXPR)
            PsiElement(-)('-')
            RsUnaryExprImpl(UNARY_EXPR)
              PsiElement(-)('-')
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('a')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
