Преобразование неоднозначной в однозначную грамматику для арифметических выражений

Я пытаюсь придумать не двусмысленную грамматику для арифметических выражений, чтобы ускорить синтаксический анализатор Эрли, но у меня, похоже, возникли проблемы. Это заданная неоднозначная грамматика

S -> E | S,S
E -> E+E | E-E | E*E | (E) | -E | V
V -> a | b | c

это моя попытка сделать это однозначным

S -> S+E | S-E | E | (S+E) | (S-E) | (E)
E -> E*T | E
T -> -V | V
V -> a | b | c

Он хорошо разбирает все, но нет существенного ускорения по сравнению с использованием неоднозначного.

0 ответов

Другие вопросы по тегам