Ich habe heute die internen Machenschaften des Script-Compilers aus meinem Editor überarbeitet. Es war ein riesen Aufwand aber ich glaube dass es sich lohnen wird. Ich kann nun neue Script-Funktionen für den Editor mit einem Bruchteil des ursprünglichen Zeitaufwandes (und Codeaufwandes!) definieren. Zu diesem Zweck habe ich mir eine eigene Markup-Language entwickelt, welche zur automatischen Code-Erzeugung genutzt wird um den eigentlichen Script-Parser damit zu füttern. Ich habe nun automatische Kompilierung auf zweiter Ebene.
Ein Beispiel:
Mit diesen beiden Zeilen in meinem Parser:
Code:
public static final Statement SET_CAM_X = new DefaultStatement(Term.STATEMENT_SET_CAM_X, 
        "set camera x := #expr;value;INT;", "getEnviroment().setCameraX(#expr;value#);");
spare ich mir 2 Klassen mit kombiniert 80 Zeilen Code, welche ich mit dem alten System habe schreiben müssen. Diese 80 Zeilen wären natürlich nicht von Hand geschrieben, das meiste wäre Copy&Paste-Arbeit. Aber nun ist der Code so viel kompakter und vor allem an eine einzelne Stelle konzentriert anstatt über 3 oder 4 Dateien verteilt. Dies verringert die Fehleranfälligkeit und erhöht die Arbeitsgeschwindigkeit enorm.