Bison 将EBNF转化为野牛
我有一段EBNF语法,我想转换成Bison语法Bison 将EBNF转化为野牛,bison,ebnf,Bison,Ebnf,我有一段EBNF语法,我想转换成Bison语法 E ::= {S [`;´]} [L [`;´]] 我没有太多语法方面的经验,但我想我设法弄明白了其中有一些可选部分和一些重复 我的尝试: E: S semiColOp E lOp semiColOp ; semiColOp: /* No Action*/ | semiCol//';' ; lOp: /* No Action*/ | laststat ; 我不能测试这个at
E ::= {S [`;´]} [L [`;´]]
我没有太多语法方面的经验,但我想我设法弄明白了其中有一些可选部分和一些重复
我的尝试:
E: S semiColOp E lOp semiColOp
;
semiColOp: /* No Action*/
| semiCol//';'
;
lOp: /* No Action*/
| laststat
;
我不能测试这个atm机,所以很高兴能从你们那里得到一些信息。我就是这样做的:
program : statements
| statements last opt_semi
;
statements: /* empty */
| statements statement opt_semi
;
opt_semi : /* empty */
| ';'
;
其中,program
对应于E
<代码>语句到S
和last
到L