我正在开展一个项目,我希望对完整初学者编写的Java代码提供反馈。换句话说,我需要能够判断代码是否遵循约定,而不仅仅是它是否是有效的Java代码。
我已经查看了pyparsing,PLY和pyPEG之类的模块,看起来他们会解析至少一大部分Java - 这就是没事的。但是我对解析没有很多经验,所以我不确定是否可以使用这些工具来检查代码约定呢?
答案 0 :(得分:3)
这取决于您所谈论的代码约定类型。
如果您正在讨论源语法和语义中反映的约定(例如检查标识符约定,没有对参数的赋值,资源正确关闭),可以根据生成的Java解析树来检查这些约定。通过从普通Java语法生成的解析器。
如果您正在讨论使用缩进,空格,注释等的约定,普通的Java解析器会忽略这些约定,并且它们不会被记录在解析树中。因此,您需要使用旨在识别和捕获该内容的解析器(或其他类型的工具)进行分析。
答案 1 :(得分:1)
似乎最好的选择是使用Eclipse JDT,通过Jython或编写一个小型Java程序,它将由Python作为一个单独的进程执行。