Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解析Java代码以某种格式将其存储在符号中_Java_Parsing_Data Structures_Abstract Syntax Tree - Fatal编程技术网

如何解析Java代码以某种格式将其存储在符号中

如何解析Java代码以某种格式将其存储在符号中,java,parsing,data-structures,abstract-syntax-tree,Java,Parsing,Data Structures,Abstract Syntax Tree,我正在从事一个研究项目,在这个项目中,我必须解析大型java文件,并从代码中提取组件符号。这些组件依赖于java表达式和条件 到目前为止,我能看到的唯一选择是AST树,但它似乎非常复杂。我是否可以使用AST插件提取或重新编写java代码,以便以稍后可以映射到组件的方式存储代码 还有哪些其他选项可以解析java,并使规则库以某种格式存储信息 我已经研究了JavaCC,但它的目的似乎是定义一种语言。我想做的是提取组件符号,而不是定义一种语言。我仍然需要定义一些提取规则。我该如何继续?如果比您希望的更

我正在从事一个研究项目,在这个项目中,我必须解析大型java文件,并从代码中提取组件符号。这些组件依赖于java表达式和条件

到目前为止,我能看到的唯一选择是AST树,但它似乎非常复杂。我是否可以使用AST插件提取或重新编写java代码,以便以稍后可以映射到组件的方式存储代码

还有哪些其他选项可以解析java,并使规则库以某种格式存储信息


我已经研究了JavaCC,但它的目的似乎是定义一种语言。我想做的是提取组件符号,而不是定义一种语言。我仍然需要定义一些提取规则。我该如何继续?

如果比您希望的更复杂。。。如果你想解析Java代码,这难道不是你必须接受的现实吗?我要找的第一件事是如何做,意味着什么库、工具等最适合这项工作,困难是下一件事,目前,它可能是任何东西,但我的重点是条件表达式和决策块,如循环等。您到底需要掌握哪些信息?可能有不同的选项,具体取决于您计划执行的操作(例如读取类文件和使用反射),@例如,stefan让我们假设我想要解析代码,并且根据我的函数调用规则,我必须决定哪个函数应该是组件c1的服务,以及c1应该在什么时候结束,c2应该开始,所以定义组件及其服务,或者根据赋值算法将java代码转换为组件就像你对库解析Java的最佳选择一样。