FILE
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('moo')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsBinaryExprImpl(BINARY_EXPR)
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('a')
            PsiWhiteSpace(' ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(||)('||')
            PsiWhiteSpace(' ')
            RsPathExprImpl(PATH_EXPR)
              RsPathImpl(PATH)
                PsiElement(identifier)('b')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(||)('||')
          PsiWhiteSpace(' ')
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('c')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBinaryExprImpl(BINARY_EXPR)
          RsBinaryExprImpl(BINARY_EXPR)
            RsBinaryExprImpl(BINARY_EXPR)
              RsBinaryExprImpl(BINARY_EXPR)
                RsLitExprImpl(LIT_EXPR)
                  PsiElement(INTEGER_LITERAL)('5')
                PsiWhiteSpace(' ')
                RsBinaryOpImpl(BINARY_OP)
                  PsiElement(|)('|')
                PsiWhiteSpace(' ')
                RsLitExprImpl(LIT_EXPR)
                  PsiElement(INTEGER_LITERAL)('3')
              PsiWhiteSpace(' ')
              RsBinaryOpImpl(BINARY_OP)
                PsiElement(==)('==')
              PsiWhiteSpace(' ')
              RsLitExprImpl(LIT_EXPR)
                PsiElement(INTEGER_LITERAL)('2')
            PsiWhiteSpace(' ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(||)('||')
            PsiWhiteSpace(' ')
            RsBinaryExprImpl(BINARY_EXPR)
              RsBinaryExprImpl(BINARY_EXPR)
                RsBinaryExprImpl(BINARY_EXPR)
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('4')
                  PsiWhiteSpace(' ')
                  RsBinaryOpImpl(BINARY_OP)
                    PsiElement(|)('|')
                  PsiWhiteSpace(' ')
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('2')
                PsiWhiteSpace(' ')
                RsBinaryOpImpl(BINARY_OP)
                  PsiElement(|)('|')
                PsiWhiteSpace(' ')
                RsLitExprImpl(LIT_EXPR)
                  PsiElement(INTEGER_LITERAL)('0')
              PsiWhiteSpace(' ')
              RsBinaryOpImpl(BINARY_OP)
                PsiElement(==)('==')
              PsiWhiteSpace(' ')
              RsLitExprImpl(LIT_EXPR)
                PsiElement(INTEGER_LITERAL)('4')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(||)('||')
          PsiWhiteSpace(' ')
          RsBinaryExprImpl(BINARY_EXPR)
            RsBinaryExprImpl(BINARY_EXPR)
              RsLitExprImpl(LIT_EXPR)
                PsiElement(INTEGER_LITERAL)('1')
              PsiWhiteSpace(' ')
              RsBinaryOpImpl(BINARY_OP)
                PsiElement(|)('|')
              PsiWhiteSpace(' ')
              RsLitExprImpl(LIT_EXPR)
                PsiElement(INTEGER_LITERAL)('0')
            PsiWhiteSpace(' ')
            RsBinaryOpImpl(BINARY_OP)
              PsiElement(==)('==')
            PsiWhiteSpace(' ')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('1')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
