Ссылки на динамический грамматический интерпретатор
ищу учебник и в идеале исходный код для простого интерпретатора, который читает грамматический файл, содержащий определения токенов [с использованием регулярных выражений]и разрешенный синтаксис для токенов. Интерпретатор будет считывать входные данные из исходного файла и интерпретировать их на основе указанной грамматики. Решение должно быть способно динамически реагировать на изменение BNF. Например, если BNF модифицируется и интерпретатор запускается снова, то в результате изменения грамматики можно ожидать другого поведения.
например:-
файл: grammar.txt содержит:-
ЖЕТОНЫ
split = "\t " / / tab или hard space для токенов sp0lit
INT = "(0-9)+ " / / целое число: одна цифра, за которой следует любое количество цифр
ADD = "добавить" / / литерал
Минус = "минус" / / литерал
ПРАВИЛА
Expr :: = Term (добавить термин / минус термин)*
Термин:: = (INT | Expr )
наверное, я неправильно понял грамматику, но вы поняли идею ?!
Ищете решение на JAVA пожалуйста
Что я уже пробовал:
просто поищите в google
нашел много проектов по компиляторам, не так много интерпретаторов. проекты компилятора создают исходный код из BNF. Это не то, чего я хочу
интерпретаторы жестко закодированы, поэтому не могут реагировать на изменения в БНФ. Это тоже не то, чего я хочу.
нашел это, но для этого требуется чашка Jlex ?? whatrever они есть, который мутит воду и BNF - это не то, что я узнаю или хочу работать остроумно; он также создает код, который не является тем, что я хочу - это больше похоже на компилятор.
Учебник по преобразователю BNF[^]
заранее спасибо