Я недавно изучал проектирование компиляторов. Я узнал о двух типах грамматики: один - это грамматика LL, а другой - грамматика LR.
Мы также знаем, что каждая грамматика LL - это LR, то есть грамматика LL - это правильное подмножество грамматики LR. Первый используется при синтаксическом анализе сверху вниз, а второй - при анализе снизу вверх.
Но есть ли способ, чтобы мы могли сказать, что данная грамматика - LL или LR?
Ответы:
источник
Мы должны проверять только то, что грамматика - это LL, или нет, потому что каждая грамматика LL - это LR, то есть LL является правильным подмножеством LR. Таким образом, если грамматика - LL, то она должна быть LR, но каждый LR - не LL.
Грамматика G находится в LL тогда и только тогда, когда A-> C | D, должно выполняться следующее условие:
источник