Example #1
0
            public override Result VisitRelationalExpression([NotNull] OclParser.RelationalExpressionContext context)
            {
                Result result = (Result)this.VisitAdditiveExpression(context.additiveExpression()[0]);

                for (int i = 1; i < context.additiveExpression().Length; i++)
                {
                    var leftObj  = result;
                    var rightObj = this.VisitAdditiveExpression(context.additiveExpression()[i]);

                    switch (context.relationalOperator().Start.Text)
                    {
                    case "<":
                        result = new BoolResult(leftObj.CompareTo(rightObj) < 0);
                        break;

                    case ">":
                        result = new BoolResult(leftObj.CompareTo(rightObj) > 0);
                        break;
                    }
                }

                return(result);
            }
Example #2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="OclParser.relationalExpression"/>.
 /// <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 VisitRelationalExpression([NotNull] OclParser.RelationalExpressionContext context)
 {
     return(VisitChildren(context));
 }