Yacc,JavaCup等工具都是基于BNF(类似于BNF的形式), EBNF需要转化为BNF, 或者说是转化为适用于JavaCup的语法形式. 说明: EBNF和BNF的主要区别: 1.{}重复,0至n次 2. []可选,0或1次 规则: 1.形如: S= { A } ; 转化为: S= A' ; A' = A A' | ; 2.形如: S = [ A ] ; 转化为: S ...