示例#1
0
        public override DomainId <IAstNode> VisitAddSubtractExpression(QlParser.AddSubtractExpressionContext context)
        {
            var leftExpression = Visit(context.leftExpression)
                                 .To <ICalculationNode>(m_domainItemLocator);

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

            var addSubtract = [email protected];

            switch (addSubtract)
            {
            case QlParser.ADD:
                return(m_astFactory.CreateAdditionOperation(
                           context.GetText(),
                           leftExpression,
                           rightExpression));

            case QlParser.MINUS:
                return(m_astFactory.CreateSubtractionOperation(
                           context.GetText(),
                           leftExpression,
                           rightExpression));

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