Ein sehr grosser Vorteil von PB ist der Debugger. Hier waere ein
einfacher PreCompiler fatal, da nichts mehr stimmen wuerde.
Möglichkeit wäre z.B. die einzelnen durch den Precompiler hinzugefügten zusätzlichen Passagen mit einem ":" zu einer Zeile bündeln:
z.B:
Code: Alles auswählen
Class MyClass
MyClass()
˜MyClass()
myMethod1()
myMethod2()
myLong.l
myString.s
EndClass
Wird zu
Code: Alles auswählen
Interface iMyClass
MyClass()
˜MyClass()
myMethod1()
myMethod2() : EndInterface : Structure sMyClass
myLong.l
myString.s
EndStructure
Sodann wäre die Zeilenfolge inhaltlich nicht zerschossen.
Was noch wichtig wäre:
1. Support von Vererbung und damit obligatorischer Polymorphie
http://pb-lounge.pb-club.de/viewtopic.php?t=3463
2. Einbindung eines z.B. "OOP-Cutters", der alle im späteren Quellcode ungenutzten Methoden "ausschneidet", somit gibts dann auch kaum den oft genannten Overhead im Executablesize.
3. Da die Herangehensweise mit den Interfaces und der virtuellen Tabelle dem entspricht, wie generell Klassen aufgebaut werden, wäre das von Vorteil, wenn man später PB-Classen via dll's exportieren- , bzw. Klassen aus z.B. C++ dll's importieren möchte.
4. Nutzen von Konstruktoren mit Unterstützen von Parameterübergabe, sowie Destruktoren (oben im Beispiel via dem C++ bekannten "˜" gekennzeichnet.
Die Art von Edel, die Methoden via . von den Klassennamen zu trennen fände ich recht PB-like und gut, macht auch Sinn. Ansonsten gäbe es ja noch den "::" oder einen "|".
Um den Code überschaubar zu halten, würde ich mittlerweile die Methoden mit dem Keyword "Method"/"EndMethod" bezeichnen, ist später auch gut fürs Parsing.
Was den *this\...-Pointer angeht, da wäre ich schmerzfrei, kann auch this\... sein. Der Vorteil an der Nutzung des Keywords "*this\..." wäre, dass sodann kein Konflikt mit globalen Variablen stattfindet. Sicher, innerhalb von Methoden könnte man das sinngemäß trennen, wäre aber doch ein Aufwand.
Rings, das hier ist übrigens kein "Ich will ...." Posting, sondern wenn ich dir helfen kann, dann sehr gerne.