Ответ
Misha v.3 05.06.2007 19:41
Правильно ли я понял, что use -- это тот же самый process с контекстом main?
не совсем.
1. ^use[операторы.p]
2. ^use[статический_класс.p]
3. ^use[динмический_класс.p]
если в файле указано @CLASS (2 и 3), то фактически содержимое файла будет загружено и скомпилено в этот класс (а-ля тип), а не в MAI. если не указано -- то компилится в MAIN (класс "по умолчанию", 1)
если сделать ^use[файл 1 с классом А.p], а затем ^use[файл 2 с классом А.p], то все методы, которые были созданы в классе А первым файлом будут убиты, второй файл _не_ дополнит первый, а полностью его переопределит.
если надо добавить методы, то сейчас для этого можно использовать process.
в принципе, сделать так, чтобы подключение нового файла не полностью переопределяло класс, а добавляло к нему методы (т.е. чтобы поведение было как у MAIN) -- возможно (например в помощью второго параметра у ^use[], смысл которого как у process), но... будет обсуждаться только в случае хорошего примера :)
Получается, что можно просто пройти циклом по всем файлам, начиная с корня и пропроцессить их в контексте текущего класса?
осилить не могу (собственно даже не пытаюсь, т.к. изначально этот подход мне видится неверным). да и начальной задачи не понял, чтобы в принципе можно было дать ответ.