我正在尝试使用BNF Converter编写解析器。我使用的语法允许a ::= true
和b ::= false
之类的内容。所以我正在尝试创建一个令牌来实现这一目标。这就是我到目前为止所做的:
token BVAL ("true"|"false");
我希望像这样使用它:
Exp ::= BVAL "||" BVAL
当我尝试运行BNFC时,我收到以下错误:
user error (syntax error at line 1 before true | false ))
答案 0 :(得分:1)
根据BNFC reference manual,您在token
规则中编写字符序列的方式例如是{"true"}
而不是"true"
。 (请参阅第5页的第5.1节“token
规则”。)