ネストしまくっても大丈夫らしい。
program nested; {$APPTYPE CONSOLE} uses SysUtils; function Foo(i: Integer): Integer; procedure Bar; procedure Fizz; procedure Buzz; begin i := i + 1; WriteLn(Format('Buzz:%d', [i])); end; begin Buzz; i := i + 1; WriteLn(Format('Fizz:%d', [i])); end; begin Fizz; i := i + 1; WriteLn(Format('Bar:%d', [i])); end; begin Bar; Result := i + 1; WriteLn(Format('Foo:%d', [Result])); end; begin WriteLn(Format('Main:%d', [Foo(0)])); end.
出力
>nested.exe Buzz:1 Fizz:2 Bar:3 Foo:4 Main:4