Parsovanie .java zdrojakov cestou najmensieho odporu
Tomas Hubalek
Tomas.Hubalek na onsemi.com
Středa Duben 14 13:28:53 CEST 2010
Určitě by měl jít použít AntLR. Gramatika pro Javu už je hotová, netřeba ji vymýšlet znova.
A nedávno jsem narazil ještě na tohle, to by mohlo být ještě jednodušší než AntLR
http://code.google.com/p/javaparser/wiki/UsingThisParser
Tom
> -----Original Message-----
> From: konference-bounces na java.cz
> [mailto:konference-bounces na java.cz] On Behalf Of Dusan Zatkovsky
> Sent: Wednesday, April 14, 2010 1:05 PM
> To: konference na java.cz
> Subject: Parsovanie .java zdrojakov cestou najmensieho odporu
>
> Ahoj.
>
> Maintainujem qtjambi/maven plugin a stojim pred rozhodnutim
> ci/a/alebo cim parsovat javovske zdrojaky. V principe mi ide
> o extrakciu textov k prekladu ( pokial niekto pouziva
> qt/qtjambi, ide mi o nahradu toolu "lupdate" ).
>
> Priklad:
>
> public class MainClass extends SomeObject {
>
> public void someMethod() {
>
> String s1 = tr("string1");
> String s2 = QApplication.translate("MyContext",
> "string2");
> String s3 =
> QCoreApplication.translate("MyContext", "string3", 5);
> //String s4 =
> QApplication.translate("MyContext", "string4", 5);
> String s5 = QApplication.translate(
> "MyContext",
> "string5",
> 7);
>
> /*
> String s6 = tr("commented");
> */
>
> }
>
> class InnerClass {
> void anotherMethod() {
> String s6 = tr("string6");
> }
> }
>
> }
>
>
> Z tohoto zdrojaku potrebujem vyextrahovat parameter pre tr()
> a prve dva parametre pre QApplication.translate() a
> QCoreApplication.translate().
>
> Dalej v pripade tr() potrebujem vediet meno class-y (
> MainClass ), pripadne aj rodicovskej classy (MainClass.InnerClass).
>
> Samozrejme k tomu spravne handlovat zakomentovane casti kodu
> a viacriadkove statementy.
>
> Vysledkom tohoto extraktu by bolo cosi podobne tomuto:
>
> MainClass,string1
> MyContext,string2
> MyContext,string3
> MyContext,string5
> MainClass.InnerClass,string6
>
>
> Mam niekolko moznosti:
> - regexp ( primitivne, nezistim meno classy )
> - nejaky vlastny tokenizer ( dlhsi cas vyvoja )
> - zneuzit cosi existujuce ... ?
>
>
> Ako by ste na to sli vy?
>
> Dik
>
> --
> Dusan
>
>
> ... tykajte mi
>
Další informace o konferenci Konference