java – 测试BNF语法的好工具是什么?

我正在编写一个iPhone应用程序,需要解析一组相对简单的表达式,这些表达式将由用户输入.

我需要一个工具,允许我输入(E)BNF语法,告诉我它是否没有错误并告诉我解析它需要什么样的解析器,还让我测试某些表达式是否有不要根据这个语法解析.此工具可以是Objective-C,Java或基于命令行.越简单且开销越低越好.

Bison似乎不允许我按原样输入我的BNF,并且针对生成的解析器测试表达式所需的工作量是一个比我愿意参与的更大的Yacc剃须(ha!)练习.

有人可以指向我一个活动的Java库,它允许我将语法指定为BNF,验证它并从中创建一个我可以在JUnit测试中使用的解析器,或者命令行工具,这将允许我做相似的东西?

最佳答案 我建议使用
ANTLR.这很常见,并且在
ANTLRWorks中有一个不错的IDE /测试工具.

点赞