我正在研究一个学校项目,在该项目中,我需要生成遵守Java语言规格的Java代码。到目前为止,我已经能够随机生成Java代码,该代码具有不遵循语言规则的有效语法。
接下来,我必须能够检查语言规则是否被生成的代码遵守。遵循此问题的最佳方法是什么?我应该编写是否遵守语言规则的代码?是否有可用的API(Prolog?),可以使我对这些规则进行编码并将其应用于代码?
?我认为我可以使用Java编译器API,因为它破坏了作业的目的。您将如何实现这个目标?
编辑:该项目不需要我考虑整个Java语言规格。我可以考虑规则的子集。
让编译器编译您的文件。您的作业可能不需要您编写Java解析器,甚至没有Java的子集。
如果您真的想这样做,可以寻找替代的Java解析器,例如:https://github.com/antlrjavaparser/antlr-java-parser
我很确定没有比从现有代码开始的更简单的解决方案,该代码检查/生成语法,并添加验证您提到的其他约束的Prolog代码。Prolog是这种事情的好语言。