public override void ExitEqual(lisp_gammarParser.EqualContext context) { if (!_FuncExp) { if (!_IfExp) { if (int.TryParse(context.GetChild(2).GetText(), out int num)) { } else { ParsingMessage.ErrorCode(4, context); } bool ans = true; for (int i = 2; i < context.ChildCount - 1; i++) { if (int.TryParse(context.GetChild(i).GetText(), out int n)) { ans &= num == n; } else { ParsingMessage.ErrorCode(4, context); } } ClearCtx(context); AddCtx(context, ans ? "#t" : "#f"); } } base.ExitEqual(context); }
/// <summary> /// Exit a parse tree produced by <see cref="lisp_gammarParser.equal"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitEqual([NotNull] lisp_gammarParser.EqualContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="lisp_gammarParser.equal"/>. /// <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 VisitEqual([NotNull] lisp_gammarParser.EqualContext context) { return(VisitChildren(context)); }