Javascript 节点JS中Java8的ANTLR 4堆外
我正在尝试解析Java8文件,并使用Antlr4创建一个AST,所有这些文件都在Javascript/NodeJS中。除了实际的AST建设外,一切似乎都进展顺利。当我调用Javascript 节点JS中Java8的ANTLR 4堆外,javascript,java-8,out-of-memory,antlr4,abstract-syntax-tree,Javascript,Java 8,Out Of Memory,Antlr4,Abstract Syntax Tree,我正在尝试解析Java8文件,并使用Antlr4创建一个AST,所有这些文件都在Javascript/NodeJS中。除了实际的AST建设外,一切似乎都进展顺利。当我调用parser.compileationunit()(这似乎是Java8 antlr语法中的开始规则)时,程序直到最终耗尽堆时才会终止 以下是我迄今为止所做的工作: 我使用以下方法生成了Java8 antlr文件: antlr4-Dlanguage=JavaScript Java8.g4-visitor 我按照以下指南创建了字符、
parser.compileationunit()
(这似乎是Java8 antlr语法中的开始规则)时,程序直到最终耗尽堆时才会终止
以下是我迄今为止所做的工作:
我使用以下方法生成了Java8 antlr文件:
antlr4-Dlanguage=JavaScript Java8.g4-visitor
我按照以下指南创建了字符、lexer、令牌和解析器:
const input=JavaExampleFile.code
const chars=new antlr4.InputStream(输入)
const lexer=newjava8lexer.Java8Lexer(chars)
const tokens=new antlr4.CommonTokenStream(lexer)
const parser=new Java8Parser.Java8Parser(令牌)
parser.buildParseTrees=true
const tree=parser.compliationunit()
现在,当我调用consttree=parser.compliationunit()
时,问题就出现了。在语法中,编译单元定义如下:
compilationUnit
: packageDeclaration? importDeclaration* typeDeclaration* EOF
;
似乎是typeDeclaration
导致了这个问题。有趣的是一切都可以在Java中正常工作,但在Java8中却不行。
还有其他人处理过这个问题吗?任何帮助都将不胜感激