Я хочу совместить константу, которая в основном представляет собой всю прописную строку.Константа и идентификатор синтаксического анализа
Кроме того, я хочу сопоставить идентификатор, который может содержать сочетание строчных и прописных букв.
Start
= Constant
/Identifier
Identifier
= h:[A-Za-z_] t:[a-zA-Z0-9_]* { return { type: 'IDENTIFIER', value: h + t.join('') } }
Constant
= h:[A-Z] t:[A-Z_0-9]* { return { type: 'CONSTANT', value: h + t.join('') } }
Проблема, когда я пытаюсь соответствовать Asd
, он говорит: Line 1, column 2: Expected [A-Z_0-9] or end of input but "s" found.
Кажется, что он соответствует Constant правило, но не перекачиваться на идентификатор одной, даже если он не ...
проблема, кажется, что константа также является допустимым идентификатором, но я не могу понять правила сломать неоднозначность, я думаю, что если Constant матч не удается, то нужно просто попробовать правило Identifier ...