Parsovanie .java zdrojakov cestou najmensieho odporu

Dusan Zatkovsky msk.conf na gmail.com
Středa Duben 14 13:05:15 CEST 2010


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