예제 #1
0
        public override DomainId <IAstNode> VisitIfElseStatement(
            QlParser.IfElseStatementContext context)
        {
            var questionName = context.conditionalStatement().expression().GetText();

            var predicate = Visit(context.conditionalStatement().expression())
                            .To <IBooleanLogicNode>(m_domainItemLocator);

            var consequent = context
                             .conditionalStatement()
                             .consequentStatement()
                             .statement()
                             .Select(Visit)
                             .To <IStatementNode>(m_domainItemLocator);

            var alternative = context
                              .conditionalStatement()
                              .alternativeStatement()
                              ?.statement()
                              .Select(Visit)
                              .To <IStatementNode>(m_domainItemLocator);

            return(m_astFactory.CreateConditional(
                       questionName,
                       predicate,
                       consequent,
                       alternative));
        }