2010-06-25 7 views
5

Ich möchte eine .java-Datei erhalten, die erste Klasse in der Datei erkennen und Informationen über Anmerkungen, Methoden und Attribute aus dieser Klasse abrufen.Java-Klasse von Perl oder Python aus analysieren

Gibt es ein Modul in beiden Sprachen, das das schon macht? Ich könnte eine einfache Regexp erstellen, um es auch zu tun, aber ich weiß nicht, wie man in der Regexp die Klammern erkennt, die das Ende der Klasse/Methode anzeigen.

+4

Nein, Regex ist dafür nicht geeignet. Betrachte 'Klasse Foo {String s =" keine @Annotation hier "; } '. –

+0

Ok, ich müsste also eine Grammatik oder einen Automaten dazu benutzen. Gibt es irgendein Perl/Python-Modul, das mir helfen könnte, so etwas zu tun? – Rafael

+0

@Bart Eigentlich könnte man regex nicht in doppelte Anführungszeichen ziehen. Das Problem ist mit Klammern, sobald Sie nicht wirklich zählen können, wie viele öffnende und schließende Klammern bis jetzt in einer Regex geschahen. –

Antwort

2

Wenn Sie die Java-Klassen in Jython laden, können Sie wahrscheinlich die Introspektion verwenden, um die benötigten Informationen zu finden.

0

Warum probierst du das in Perl/Python, anstatt nur ein Javadoc-Programm zu verwenden, das die Informationen herausziehen kann?

0

würde ich vorschlagen Inline::Java für Zugriff auf Java-Klasse von Perl, Sobald Sie diese Schnittstelle läuft, Sie leicht Methoden und Attribute aus der Klasse zugreifen können.