public object VisitGuardOperand(KpLinguaParser.GuardOperandContext context)
        {
            var guard = default(IGuard);

            var multisetContext           = context.nonEmptyMultiset();
            var guardContext              = context.guard();
            var relationalOperatorContext = context.RelationalOperator();

            if (multisetContext != null)
            {
                var multiset           = multisetContext.Accept(this) as Multiset;
                var relationalOperator = relationalOperatorContext != null?GetRelationalOperator(relationalOperatorContext) : RelationalOperator.EQUAL;

                guard = new BasicGuard(multiset, relationalOperator);
            }
            else if (guardContext != null)
            {
                guard = guardContext.Accept(this) as IGuard;
            }

            return(guard);
        }
Esempio n. 2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="KpLinguaParser.guardOperand"/>.
 /// <para>
 /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
 /// on <paramref name="context"/>.
 /// </para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 /// <return>The visitor result.</return>
 public virtual Result VisitGuardOperand([NotNull] KpLinguaParser.GuardOperandContext context)
 {
     return(VisitChildren(context));
 }