ProgrammingLanguageNr1.Parser.booleanExpression C# (CSharp) Method

booleanExpression() private method

private booleanExpression ( ) : ProgrammingLanguageNr1.AST
return ProgrammingLanguageNr1.AST
        private AST booleanExpression()
        {
            #if WRITE_DEBUG_INFO
            Console.WriteLine("boolean expression");
            #endif

            AST lhs = comparisonExpression();

            if (lookAheadType(1) == Token.TokenType.NOT)
            {
                AST ast = notStatement();
                return ast;
            }
            else if ( lookAhead(1).getTokenString() == "&&" ||
                 lookAhead(1).getTokenString() == "||"
                )
            {
                Token operatorToken = match(Token.TokenType.OPERATOR);
                //Console.WriteLine ("Matched operator token " + operatorToken.getTokenString() + " at line " + operatorToken.LineNr + " and pos " + operatorToken.LinePosition);

                AST rhs = booleanExpression();
                checkLeftHandSide(lhs, operatorToken);
                checkRightHandSide(rhs, operatorToken);

                AST booleanExpressionTree = new AST(operatorToken);
                booleanExpressionTree.addChild(lhs);
                booleanExpressionTree.addChild(rhs);
                return booleanExpressionTree;

            } else {
                return lhs;
            }
        }