Best way to parse Java in Java

2019-02-09 15:42发布

问题:

As the title says, I want to parse some Java source code in Java. I'm pretty sure there are other java libraries that already perform this, but I couldn't find any.

回答1:

Janino can parse, compile and execute Java code.



回答2:

Antlr has a grammar file for Java. See this.



回答3:

You may be looking for something like ANTLR: http://www.antlr.org/



回答4:

Eclipse exposes the Syntax Tree of it's own Java compiler. You can simply access the elements.

See here.



回答5:

JavaCC has a Java 1.5 grammar including generics.

the tokens are probably more fine-grained then what I want

Your first requirement is to get an accurate parse, and you will realistically only get that from an existing parser. What you do with the result is up to you.