иетакомпилятор |
Aug. 30th, 2020|12:13 pm |
подумал, что метакомпилятор для UrForth — это ведь на самом деле точно тот же самый код, который уже работает там компилятором. по сути, всё, что надо, чтобы сделать из него мета — по необходимости подменять ALLOT, CREATE, да пару слов, которые правят адреса переходов. для чего запилил слово OVERRIDE, которое позволяет system-wide подменить одно фортовое слово на другое, с возможностью позвать старое. все слова, которые генерят адреса переходов, в конце концов используют для этого три-четыре базовых слова, которые и надо подменить. ну, и немного мелочёвки типа LATEST. и тогда простым движением руки обычный компилятор превращается в метакомпилятор, и обратно. если менять формат словарной статьи — ещё одно слово поиска по словарю подменить. или вообще тупо читернуть и создать отдельный скрытый словарь, где будут создаваться просто форварды. видимо, таким путём и пойду.
кстати, теперь, с OVERRIDE, можно кучу слов обратно девиртуализировать. нет никакого смысла делать их как defer, когда их спокойно можно оверрайднуть (или вообще сделать REPLACE). |
|