У меня есть древовидная грамматика только с двумя правилами:
grammar RCFAE
rule num
[0-9]+ <Num>
end
rule identifier
[a-zA-Z] [a-zA-Z]* <ID>
end
end
Я пытаюсь разобрать простые строки ("A" и "5"). «5» распознается как Num, если я ставлю это правило первым, и возвращает ноль, если я ставлю это правило вторым. Точно так же «A» распознается как идентификатор, если я ставлю это правило первым, и возвращает ноль, если я ставлю это правило вторым. Я не могу понять, как эти два правила перекрываются в любом случае. Это сводит меня с ума!
Я что-то упускаю или не понимаю в древовидной структуре или регулярных выражениях? Заранее спасибо за помощь.