Я пытаюсь сделать лексический парсер для вычисления всех решений с учетом термина EBNF. Например:ANTLR парсер для грамматики EBNF и получить дерево декомпозиции с результатами
Грамматика:
T :: = ноль | A.T | (T + T) | (T * T)
A :: = a | b | c | d | е
Операторы:
* исключающее ИЛИ
. Последовательность
+ Parallel
Символы:
ABCDE
термина Пример:
а (Ь + с) (д * е)
.. Расчетный термин:
Ожидаемый результат дерева:
Решение должно быть все ветви дерева.
Вопрос в том, что будет оптимальным для этого?
На данный момент я хочу, чтобы пользователь ANTRL создал дерево разбора грамматики.
Но я не очень уверен, как сделать подход рефакторинга для вычисления термина.
Спасибо!