private GenericExpressionNode BooleanTermPrime(string expression, GenericExpressionNode lhs) { if (_lexer.IsNext(Token.TokenType.EndOfInput)) { return(lhs); } else if (Same(expression, Token.TokenType.And)) { GenericExpressionNode rhs = RelationalExpr(expression); if (rhs == null) { errorPosition = _lexer.GetErrorPosition(); ProjectErrorUtilities.ThrowInvalidProject(_elementLocation, "UnexpectedTokenInCondition", expression, _lexer.IsNextString(), errorPosition); } OperatorExpressionNode andNode = new AndExpressionNode(); andNode.LeftChild = lhs; andNode.RightChild = rhs; return(BooleanTermPrime(expression, andNode)); } else { // Should this be error case? return(lhs); } }
private GenericExpressionNode BooleanTermPrime(string expression, GenericExpressionNode lhs) { if (_lexer.IsNext(Token.TokenType.EndOfInput)) { return lhs; } else if (Same(expression, Token.TokenType.And)) { GenericExpressionNode rhs = RelationalExpr(expression); if (null == rhs) { errorPosition = _lexer.GetErrorPosition(); ProjectErrorUtilities.VerifyThrowInvalidProject(false, _elementLocation, "UnexpectedTokenInCondition", expression, _lexer.IsNextString(), errorPosition); } OperatorExpressionNode andNode = new AndExpressionNode(); andNode.LeftChild = lhs; andNode.RightChild = rhs; return BooleanTermPrime(expression, andNode); } else { // Should this be error case? return lhs; } }