> -- Иван Денисов писал(а):
> В Компонентном Паскале - это нехорошо, так как вложенные процедуры имеют доступ к локальным переменным, следовательно они должны быть выше процедур концептуально.так я именно по этой причине и сделал возможность иметь до и после. идея такая, что все локалы, к которым должны иметь доступ вложеные процедуры, описываютсядоних, а остальные —после. таким образом, у нас есть гарантия непосредственно от компилятора, что вложеные процедуры могут дёргать только то, что мы им явно разрешили, и мы достигли этого не вводя новых значков для «псевдоэкспорта».

то есть, так:
## Код:
```
PROCEDURE a;
VAR
  v0: INTEGER;

  PROCEDURE nested;
  BEGIN
    INC(v0);
    (* INC(v1); — а так не выйдет, компилятор заругается! *)
  END nested;

VAR
  v1: INTEGER;
  (* а здесть PROCEDURE уже нельзя, всё, только один блок вложеных процедур можно *)
BEGIN
  (* а здесь доступны и v0, и v1 *)
END a;
```

то же самое относится и к константам, и к типам.

p.s.: для global scope это малооправдано, получится каша. поэтому на глобальном уровне такое запрещено.