JML的简单解析器

时间:2011-04-13 16:45:21

标签: java jml

我正在寻找一个用Java编写的能够读取JML的解析器。

基本上我希望解析器能够读取JML块并知道它属于哪个方法。

我一直在关注OpenJML项目,但只是项目设置太多了。

1 个答案:

答案 0 :(得分:3)

我怀疑你会找到一个能完全符合你想要的工具,甚至可以找到你想要的工具。

您可以编写一个“部分”Java语法,直接扫描输出文件//@ .../*@ ... @*/,然后是方法声明。 “部分”是指你不是在语义上解析输入源,而是仅在词法层面上执行此操作(仅限令牌)。确保您考虑字符串文字:您不希望文字String s = "/*@";成为JML规范的开头。

两个众所周知的Java解析器生成器是:

  1. ANTLR
  2. JavaCC
  3. 掌握任何一个都会花费一些时间,特别是如果你是解析器生成器的新手,但是一旦掌握了它,创建一个可以做到这一点的小语法真的没什么大不了的可靠。