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); }
/// <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)); }