On 04.03.2018 18:06, Bernd Oppolzer wrote: > Are procedure and function parameters allowed in Free Pascal? > > When I tried to compile the Man-or-boy example program (Knuth's test), > FPC complained with a syntax error: > > > c:\work\pascal\work>fpc manorboy.pas > Free Pascal Compiler version 3.0.0 [2015/11/16] for i386 > Copyright (c) 1993-2015 by Florian Klaempfl and others > Target OS: Win32 for i386 > Compiling manorboy.pas > manorboy.pas(41,28) Fatal: Syntax error, "identifier" expected but > "FUNCTION" found > Fatal: Compilation aborted > Error: C:\FPC\3.0.0\bin\i386-win32\ppc386.exe returned an error exitcode > > > This is the place where the function parameter appears in the > definition of the function A: > > > function A ( K : INTEGER ; function X1 : INTEGER ; function X2 : > INTEGER ; function X3 : INTEGER ; function X4 : INTEGER ; > function X5 : INTEGER ) : INTEGER ;
There is only one solution that currently really will work with that kind of code: use {$mode iso} at the top of the file to use the ISO Pascal compatible mode. In theory it should also be possible to use another mode plus {$modeswitch nestedprocvars}, but that doesn't play nicely with the call to A inside of B as the compiler seems to call the X4 parameter while it shouldn't... Regards, Sven _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal