如何使用Python解析Java的语法和代码约定?
我正在做一个项目,我想对完全初学者编写的Java代码给出反馈。换句话说,我需要能够判断代码是否遵循约定,而不仅仅是它是否是有效的Java代码
我已经研究过像pyparsing、PLY和pyPEG这样的模块,看起来它们至少可以解析Java的一个大子集——这很好。然而,我对解析不是很有经验,所以我不确定是否可以使用这些工具来检查代码约定
你可以在下面搜索框中键入要查询的问题!
我正在做一个项目,我想对完全初学者编写的Java代码给出反馈。换句话说,我需要能够判断代码是否遵循约定,而不仅仅是它是否是有效的Java代码
我已经研究过像pyparsing、PLY和pyPEG这样的模块,看起来它们至少可以解析Java的一个大子集——这很好。然而,我对解析不是很有经验,所以我不确定是否可以使用这些工具来检查代码约定
# 1 楼答案
似乎最好的选择是使用EclipseJDT,要么通过Jython,要么编写一个小型Java程序,由Python作为一个单独的进程执行
# 2 楼答案
这取决于您所谈论的代码约定的类型
如果您讨论的是源语法和语义中反映的约定(例如,检查标识符约定、不分配参数、正确关闭资源),则可以根据由普通Java语法生成的解析器生成的Java解析树来检查这些约定
如果您讨论的是缩进、空格、注释等的使用约定,那么普通Java解析器会忽略这些约定,并且它们不会记录在解析树中。因此,您需要使用解析器(或其他类型的工具)进行分析,该解析器旨在识别和捕获这些内容