很不错,可以用来验证递归下降法编写ebnf是否有问题,对if-then-else语法是否有二义性一目了然 stmt->IF stmt then stmt (else stmt)? 这句就能解决if的递归下降二义性 并可自动生成子程序,不过该代码的词法分析部分效率极低,很大的缺点 http://www.codeproject.com/Articles/28294/a-Tiny-Parser-Generator-v1-2