Inhalt(!) von Methoden 'durchparsen' in .java-Dat

HI,

für ein kl. Projekt suche ich eine Möglichkeit, den Inhalt von Methoden in .java-Dateien parsing-mäßig zu durchlaufen.
Ziel ist ein Statement nach dem anderen einzulesen und einem Converter zu übergeben.
Leider geht das ja nicht mit den Java-Reflections und eine andere Möglichkeit habe ich auch noch nicht gefunden.

Ich gehe aber davon aus, dass es andere Projekte für ihre Converter auch so gemacht haben, OHNE einen eigenen Java-Compiler zu schreiben.

Ich suche also eine Java-Compiler-Klasse, bei der man mit:
*compileMethode(Methode m)
*getFirstStatement() und
*while(hasNextStatement) getNextStatement

durch die Java-Datei rattern kann.

Kennt jemand soetwas oder hat jemand eine bessere Idee für den Converter.

mfg andre

Hi,

Kennt jemand soetwas oder hat jemand eine bessere Idee für den
Converter.

ich habe von dieser Schnittstelle zum Java-Compiler von Sun gelesen, habe sie aber noch nicht ausprobiert. Sieht aber vielversprechend aus:

http://java.sun.com/javase/6/docs/jdk/api/javac/tree…
http://java.sun.com/javase/6/docs/jdk/api/javac/tree…

Andreas

Erstmal was grundsätzliches,
Klassen die nicht der offiziellen API entsprechen, sind immer mit Vorsicht zu nehmen. Denn das sind Klassen die SUN (in diesem Fall) für interne Zwecke benutzt und die können sich ständig ändern…
z.B. kann die Klasse JavacTask in Java 1.6.3 völlig anders reagieren, als die selbe Klasse in Java 1.6.4

Der erste Link ist keine allzu große Hilfe, da es nur Interfaces (Contract Definition für den Javac Compiler) sind und der Fragensteller genau das nicht nicht wollte. Er wollte eine fertige Lösung und sich nicht selbst etwas ausdenken :wink:

Hier ein paar Links, die ich aber nicht detailliert geprüft habe:
http://java-source.net/open-source/parser-generators
http://ws.apache.org/jaxme/js/jparser.html
http://javancss.codehaus.org/
http://www.glenmccl.com/instr/instr.htm
http://today.java.net/pub/a/today/2008/04/10/source-…

Vielen Dank @all
Vielen Dank Ihr beiden,

bin grade am durchschauen.
Mal sehen, inwieweit das alles für mein Projekt passt.

Hatte schon Angst, dass niemand nen Hinweis hat.

Vielen Dank
Andre