Antender писал(а):
В SPF не используется вектор FIND поэтому поиск приходится использовать через самописный INTERPRET.
ну, во-первых, таки можно глянуть в код, там все достаточно понятно и задокументировано.
Поиск в форке кардинально отличается от СПФа, и от всех ранее мною встречаемых фортов. И сразу нужно уловить, что в словаре поиск ведется самим словарем! Это значит, что склеивать словари очень небезопасно, т.к. формат записей в каждом из них может быть уникальным, а рассматриваемые вами древовидные словари возможны только в одной ветке(типе) словарей. Таким образом, FIND перехватывать смысла вообще нет, он в форке сводится к следующей конструкции:
1) взять следующий идентификатор словаря(из контекста)
2) найти в его структуре адрес слова, производящего поиск внутри данного словаря
3) вызвать его с помощью CATCH (чтобы в случае проблем с поиском внутри словаря система не упала).
Т.е. именно "древовидные"(согласно вашему определению) словари в форке просто бессмысленны (да и вредны), т.к. пользуется более гибкий и мощный механизм.
Antender писал(а):
Делаю скриптовый язык на основе Форта и возможность ограничить используемые пользователем слова очень бы пригодилась.
это делается вообще без проблем:
1) Создается отдельный словарь
2) внутрь добавляются нужные слова
3) в контексте оставляется лишь этот отдельный словарь.
[quote="Antender"]В SPF не используется вектор FIND поэтому поиск приходится использовать через самописный INTERPRET.[/quote]
ну, во-первых, таки можно глянуть в код, там все достаточно понятно и задокументировано.
Поиск в форке кардинально отличается от СПФа, и от всех ранее мною встречаемых фортов. И сразу нужно уловить, что в словаре поиск ведется самим словарем! Это значит, что склеивать словари очень небезопасно, т.к. формат записей в каждом из них может быть уникальным, а рассматриваемые вами древовидные словари возможны только в одной ветке(типе) словарей. Таким образом, FIND перехватывать смысла вообще нет, он в форке сводится к следующей конструкции:
1) взять следующий идентификатор словаря(из контекста)
2) найти в его структуре адрес слова, производящего поиск внутри данного словаря
3) вызвать его с помощью CATCH (чтобы в случае проблем с поиском внутри словаря система не упала).
Т.е. именно "древовидные"(согласно вашему определению) словари в форке просто бессмысленны (да и вредны), т.к. пользуется более гибкий и мощный механизм.
[quote="Antender"]Делаю скриптовый язык на основе Форта и возможность ограничить используемые пользователем слова очень бы пригодилась.[/quote]
это делается вообще без проблем:
1) Создается отдельный словарь
2) внутрь добавляются нужные слова
3) в контексте оставляется лишь этот отдельный словарь.