要求产生推导和解析树,如果语法不对,要给出分析,写出正确的建议。语法如下:
e::=n|e+e|e-e
n::=d|nd
d::=0|1|2|3|4|5|6|7|8|9

解决方案 »

  1.   

    我这有个 java 写的 一个简单的编译器  你可以看一下  参考编译原理龙书 要的话给我留言啊
      

  2.   

    楼主可以用antlr实现
    写出产生式,就可以生成.java文件
    下面是我用支持四则运算,用的是LR语法
    statement : mexpr ((PLUS|SUB) mexpr)* 
    ;
    mexpr : factor ((MUL|DIV) factor)*; factor : LPAREN statement RPAREN
        |DIGIT
        ;LPAREN:'(';
    RPAREN:')';
    MUL: '*';
    PLUS: '+';
    SUB: '-';
    DIV:'/';
    DIGIT: ('0'..'9')+;