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.)