代表CFG制作

时间:2012-03-10 21:55:59

标签: java parsing grammar context-free-grammar

我正在开发一个程序,需要决定字符串“(example + another)* other”是否属于某个语法。

    Start = Expr endline
    Expr  = Term Expr2
    Expr2 = + Term Expr2 | - Term Expr2 | e
    Term  = Factor Term2
    Term2 = * Factor Term2 | / Factor Term2 | e
    Factor= id | ( Expr ) | num 

例如,我正在尝试在Java中实现类似于上述语法的东西。到目前为止,我有转换语句,但我觉得这不是这样做的方法。 是否有更简单的方式来表达作品? 任何提示将不胜感激。 感谢

1 个答案:

答案 0 :(得分:0)

使用递归切换语句比你想象的更接近你所需要的。

请参阅how to build a recursive descent parser上的答案。