Какой тип синтаксического анализатора необходим для этой грамматики?

У меня есть грамматика, и я не знаю, какой тип синтаксического анализатора мне нужен для ее анализа, кроме того, что я не верю в грамматику является LL (1). Я думаю, мне нужен синтаксический анализатор с возвратом или какой-то LL (*). Грамматика, которую я придумал (возможно, потребуется переписать):

S: Rules
Rules: Rule | Rule Rules
Rule: id '=' Ids
Ids: id | Ids id

Язык, который я пытаюсь создать, выглядит примерно так:

abc = def g hi jk lm
xy = aaa bbb ccc ddd eee fff jjj kkk
foo = bar ha ha 

Ноль или более Правило, которое содержит левый идентификатор, за которым следует знак равенства, за которым следует один или несколько идентификаторов. Часть, для которой, я думаю, у меня возникнут проблемы с написанием синтаксического анализатора, заключается в том, что грамматика допускает любое количество id в правиле и что единственный способ узнать, когда начинается новое правило, - это когда оно находит id =, что потребует обратного отслеживания.

Кто-нибудь знает классификацию этой грамматики и лучший метод синтаксического анализа для рукописного синтаксического анализатора?

5
задан Austin Henley 19 December 2012 в 07:37
поделиться