BNFC для определения логического токена

Я пытаюсь написать парсер с BNF Converter. Грамматика, которую я использую, позволяет такие вещи, как a ::= true а также b ::= false, Поэтому я пытаюсь создать токен для этого. Это то, что я до сих пор:

token BVAL ("true"|"false");

Я надеюсь использовать это так:

Exp ::= BVAL "||" BVAL

Когда я пытаюсь запустить BNFC, я получаю следующую ошибку:

user error (syntax error at line 1 before true | false ))

1 ответ

Решение

Согласно справочному руководству BNFC, способ написания последовательности символов в token правило, например, {"true"} скорее, чем "true", (См. Раздел 5.1 " token правило ", на стр. 5.)

Другие вопросы по тегам