public override AstNode VisitLambdaWithBlock(StannumParser.LambdaWithBlockContext context) { var @params = new List <string>(); for (var i = 0; i < context._Params.Count; i += 1) { @params.Add(context._Params[i].GetText()); } if (!(Visit(context.Body) is BlockStmt body)) { throw new Exception("Unrecognized block statement!"); } return(new LambdaExpr(@params, body)); }
/// <summary> /// Visit a parse tree produced by <see cref="StannumParser.lambdaWithBlock"/>. /// <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 VisitLambdaWithBlock([NotNull] StannumParser.LambdaWithBlockContext context) { return(VisitChildren(context)); }