From 53886eac3ef560eb51ec9b890c722c86f2caaf45 Mon Sep 17 00:00:00 2001 From: Tostis Date: Mon, 3 Feb 2025 16:35:08 +0100 Subject: [PATCH] recognize anonymous function/procedure as parameter --- Parse/BuildParseTree.pas | 4 ++++ test.pas | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/Parse/BuildParseTree.pas b/Parse/BuildParseTree.pas index 9ad7105..f7a8f4b 100644 --- a/Parse/BuildParseTree.pas +++ b/Parse/BuildParseTree.pas @@ -5395,6 +5395,10 @@ procedure TBuildParseTree.RecogniseActualParam; } if lc.TokenType = ttArray then RecogniseArrayType + else if lc.TokenType = ttProcedure then + RecogniseProcedureDecl(true) + else if lc.TokenType = ttFunction then + RecogniseFunctionDecl(true) else if AnonymousMethodNext then RecogniseAnonymousMethod else diff --git a/test.pas b/test.pas index 4d88f6d..7218b17 100644 --- a/test.pas +++ b/test.pas @@ -88,6 +88,13 @@ function myFunction(aParam: string write('Enter your name: '); //? input readln(s); writeln('Hello, ', s, '!'); //+ forgotten + + // anonymous function/procedure as parameter + var somevar: String := TSomeClass.create( + procedure + begin + var aVar: String; + end); //-readln; // unnecessary // TODO: to-do next