2010-11-28 2 views
16

Я понимаю теорию за разделения правил синтаксического анализа и правила LeXeR в теории, но каковы практические различия между этими двумя высказываниями в ANTLR:Практическое различие между правилами парсера и правилами лексера в ANTLR?

my_rule: ... ; 

MY_RULE: ... ; 

приводят ли они в разных AST деревьев? Отличная производительность? Потенциальные двусмысленности?

+0

Как насчет обработки пробелов? – Dario 2010-11-28 17:29:59

ответ

21

Джен написал:

... какова практические различия между этими двумя высказываниями в ANTLR ...

MY_RULE будет использоваться для разбития источника входного сигнала. Он представляет собой фундаментальный строительный блок вашего языка.

my_rule вызывается из анализатора, он состоит из нулевых или более других правил парсера или жетонов, созданных лексером.

В этом разница.

Джен написал:

ли привести их в различных AST деревьев? Отличная производительность? ...

Парсер строит АСТ с помощью токенов, созданных лексером, поэтому вопросы не имеют смысла (для меня). Лексер просто «кормит» анализатор 1-мерным потоком токенов.

Смежные вопросы