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