| |
|
|
Christian Zietz | Hallo,
so wie ich das sehe, gibt es für XPSE doch keine Möglichkeit zu unterscheiden, ob ein END was auf ein FOR folgt, die FOR-Schleife beenden soll (also eine Präprozessoranweisung ist) oder das Programm beenden soll (also von XPSE nicht verändert werden soll.) So wird folgendes, zugegebenermaßen sinnloses Beispielprogramm nicht so verarbeitet, wie ich mir das vorstelle: KompilierenMarkierenSeparieren Gibts einen Workaround? Wäre ein NEXT oder ENDFOR nicht sinnvoller?
Christian |
|
|
| |
|
|
|
| Deshalb weil XPSE es sich auch zur Aufgabe gemacht hat den doch eher schlacksigen Regeltum des XProfan in Richtung professionellerer Programmierung entgegenzuwirken. Ein End an dieser Stelle ist schlichtweg unsauber programmiert - was wiederum zu Folgefehlern führen kann.
Wenn es jedoch unbedingt sein muss - das Programm an spezifischer Stelle zu terminieren nutze das: KompilierenMarkierenSeparierenexternal("kernel32","TerminateProcess",external("kernel32","OpenProcess",1,0,external("kernel32","GetCurrentProcessId")),0)
Ich sehe es aber als Bug des XPSE an! Zumal das END nicht zum Wend konvertiert werden dürfte da eine if-Verschachtelung vorliegt. Hier liegt der eigendliche Hund begraben. Natürlich werde ich wenn dieser Fehler behoben ist auch ein EndFor einbauen.
Danke für den Report! |
|
|
| |
|
|