[fpc-pascal] procedure and function parameters?

Bernd Oppolzer bernd.oppolzer at t-online.de
Mon Mar 5 01:35:48 CET 2018


Am 04.03.2018 um 18:45 schrieb Sven Barth via fpc-pascal:
> 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
>

Thanks,

mode iso worked without problems;
the results were as expected.

Kind regards

Bernd




More information about the fpc-pascal mailing list