我正在编写一个iPhone应用程序,需要解析一组相对简单的表达式,这些表达式将由用户输入。
我需要一个工具,允许我输入(E)BNF语法,告诉我它是否没有错误并告诉我解析它需要什么样的解析器,还让我测试是否确定表达式根据此语法执行或不解析。此工具可以是Objective-C,Java或基于命令行。更简单,更低的开销越好。
Bison似乎不允许我按原样输入我的BNF,并且针对生成的解析器测试表达式所需的工作量是一个比我愿意参与的更大的Yacc剃须(ha!)练习。< / p>
有人可以指向一个活动的Java库,它允许我将语法指定为BNF,验证它并从中创建一个我可以在JUnit测试中使用的解析器,或者是允许我使用的命令行工具我做类似的事情?
答案 0 :(得分:2)
我建议ANTLR。它很常见,在ANTLRWorks中有一个不错的IDE /测试工具。
答案 1 :(得分:0)
使用可以使用JavaCC。 http://javacc.java.net/这很容易使用。