public override ValueNode VisitArrowValue(CoronaParser.ArrowValueContext context) { // Extract node data int left = Int32.Parse(context.INT()[0].GetText()); int right = Int32.Parse(context.INT()[1].GetText()); // Range check if (left > right) { throw new TheLanguageErrorException($"ArrowValue { left } -> { right }: left > right"); } return(new ArrowValueNode(left, right)); }
/// <summary> /// Visit a parse tree produced by <see cref="CoronaParser.arrowValue"/>. /// <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 VisitArrowValue([NotNull] CoronaParser.ArrowValueContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="CoronaParser.arrowValue"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitArrowValue([NotNull] CoronaParser.ArrowValueContext context) { }