Как обрабатывать наборы выбора грамматик, которые имеют несколько деревьев деривации - PullRequest
0 голосов
/ 17 февраля 2019

Мне нужно написать таблицу разбора для грамматики, которая имеет лямбда-выражения и несколько деревьев деривации.У меня проблемы с поиском примеров таблиц разбора для грамматик с лямбда-выражениями.Как мне начать?

Мои попытки выбора наборов следующие:

S-> ABCe = {e, b, c, d}.

(A-> bB = {b}, A-> лямбда, B-> cC = {c}, A-> лямбда, B-> лямбда, C-> d = {d}, A-> лямбда, B-> лямбда, C переходит к лямбда = {e}).

A-> bB = {b}

A-> lambda = {c, d, e}

B-> cC = {c}

B-> lambda = {d, e}

C-> d = {d}

C-> lambda = {d}

Есть две проблемыУ меня есть:

1) Я не знаю, что написать, чтобы определить лямбда в таблице разбора или фактический код разбора.

2) Если лямбда-выражения зависят от того, что следует в строке, то текущий токен будет определять, что выталкивается, верно?Например, если S переходит в ABCe, а текущий токен b, то я бы нажал (e) и нажал (C)?Я также понял кое-что еще для лямбд только сейчас.Наборы выбора для B являются взаимоисключающими.Так, например, только если текущий токен на A равен b, я нажму «B», если текущий токен - c, d или e, я бы просто сделал pop ().Я действительно не знаю, как писать, это всего лишь мой мыслительный процесс.Но разрешено ли использовать набор выбора вместо фактического правила грамматики?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...