Пример #1
0
        public override DomainId <IAstNode> VisitMultiplyDivideExpression(QlParser.MultiplyDivideExpressionContext context)
        {
            var leftExpression = Visit(context.leftExpression)
                                 .To <ICalculationNode>(m_domainItemLocator);

            var rightExpression = Visit(context.rightExpression)
                                  .To <ICalculationNode>(m_domainItemLocator);

            var multiplyDivideOperator = [email protected];

            switch (multiplyDivideOperator)
            {
            case QlParser.MULTIPLY:
                return(m_astFactory.CreateMultiplicationOperation(
                           context.GetText(),
                           leftExpression,
                           rightExpression));

            case QlParser.DIVIDE:
                return(m_astFactory.CreateDivisionOperation(
                           context.GetText(),
                           leftExpression,
                           rightExpression));

            default:
                throw new ParserException(
                          $"The provided operator '{[email protected]}' is not handled within multiply or divide in the statement {context.GetText()}.",
                          null);
            }
        }