我正在使用jison,我看到了ebnf语法的文档,但我不能使我的语法有效: 这是我的语法,输入和错误的图像 在错误中,语法只识别一行,但是kleen star应该识别0到几个实例。 我是jison的新手,所以也许使用ebnf的方式并不像我做的那样,如果你可以帮助我会非常感激
我的语法的最小完整版本:
METODO
: 'void' id '(' ')' '{' INSTR '}'
;
INSTR
: INSTRUCCION*
;
INSTRUCCION
: IF
| id '=' EXP ';'
| id ':' INSTR
;
输入:
void metodo_1(){
t2 = p + 1;
l2:
t6 = heap[t4];
print("%c", t6);
t5 = t5 + 1;
if t6 != 0 goto l2;
l0: }
错误: Error
我在解析器的开头添加了%ebnf