Exemplo n.º 1
0
        private DomainId <IAstNode> CreateRelationalOperation(
            int relationalOperator,
            string definition,
            DomainId <IAstNode> leftExpression,
            DomainId <IAstNode> rightExpression,
            string operatorText)
        {
            switch (relationalOperator)
            {
            case QlParser.ISEQUAL:
                return(m_astFactory.CreateEqualityOperation(
                           definition,
                           leftExpression,
                           rightExpression));

            case QlParser.ISNOTEQUAL:
                return(m_astFactory.CreateInequalityOperation(
                           definition,
                           leftExpression,
                           rightExpression));

            case QlParser.ISGREATERTHAN:
                return(m_astFactory.CreateGreaterThanOperation(
                           definition,
                           leftExpression,
                           rightExpression));

            case QlParser.ISGREATERTHANOREQUAL:
                return(m_astFactory.CreateGreaterOrEqualOperation(
                           definition,
                           leftExpression,
                           rightExpression));

            case QlParser.ISLESSTHAN:
                return(m_astFactory.CreateLessThanOperation(
                           definition,
                           leftExpression,
                           rightExpression));

            case QlParser.ISLESSTHANOREQUAL:
                return(m_astFactory.CreateLessOrEqualOperation(
                           definition,
                           leftExpression,
                           rightExpression));

            default:
                throw new ParserException($"The relative operator '{operatorText}' is not recognized.", null);
            }
        }