У меня есть следующая грамматика:
START -> STM $
STM -> VAR = EXPR
STM -> EXPR
EXPR -> VAR
VAR -> id
VAR -> * EXPR
С этим набором first
и follow
:
First set Follow set
START id, * $
STM id, * $
EXPR id, * $, =
VAR id, * $, =
Я создал следующую таблицу синтаксического анализа:
$ = id * $
START START → STM $ START → STM $
STM STM → VAR = EXPR STM → VAR = EXPR
STM → EXPR STM → EXPR
EXPR EXPR → VAR EXPR → VAR
VAR VAR → id VAR → id
VAR → * EXPR VAR → * EXPR
Отсюда я вижу, что это не LL(1)
.
Как я могу изменить эту грамматику, чтобы она стала LL(1)
?