2010-06-25 15 views
5

Chcę uzyskać plik .java, rozpoznać pierwszą klasę w pliku i uzyskać informacje o adnotacjach, metodach i atrybutach z tej klasy.Parsowanie klasy Java z języka Perl lub Python

Czy istnieje moduł w obu językach, który już to robi? Mogłem zbudować proste wyrażenie regularne, aby to zrobić, ale nie wiem, jak rozpoznać w wyrażeniu regularnym nawiasy klamrowe wskazujące koniec klasy/metody.

+4

Nie, wyrażenie regularne nie nadaje się do tego. Rozważ "class Foo {String s =", a nie @Anation tutaj "; } '. –

+0

Dobrze, więc musiałbym użyć gramatyki lub automatu, żeby to zrobić. Czy istnieje jakiś moduł perl/python, który mógłby mi pomóc zrobić coś takiego? – Rafael

+0

@Bart Właściwie możesz wyreasować, aby nie uwzględniać rzeczy w podwójnych cudzysłowach. Problem polega na aparatach ortodontycznych, kiedy nie można naprawdę policzyć, ile nawiasów otwierających i zamykających zdarzyło się do tej pory w regexie. –

Odpowiedz

2

Jeśli załadujesz klasy Java wewnątrz Jython, prawdopodobnie będziesz mógł użyć introspekcji, aby znaleźć potrzebne informacje.

0

Dlaczego próbujesz tego w Perl/Pythonie, a nie tylko za pomocą programu obsługującego javadoc, który może wyciągnąć informacje?

0

Proponuję Inline::Java dla dostępu do klasy Java z Perl, Raz masz, że uruchomienie interfejsu, można łatwo uzyskać dostęp do metod i atrybutów z klasy.

Powiązane problemy