ts-soft hat geschrieben:MultiLine On braucht nur in der Main ausgewertet werden, wenn nein, dann
beenden, wie bisher, sonst kostet es unnütz Zeit.
MultiLine = \ o.ä. sollte zusätzlich je Include ausgewertet werden. Also
Include A kann \ verwenden, Include B _ usw.
MultiLine bleibt also solange gültig, bis Ende oder es trifft auf neues MultiLine
in neuer Include. Also nur ein MultiLine = je Include möglich.
Ich habe meine private Kopie des Programms angepasst (den Quelltext hier im Forum noch nicht). Die Multiline-Direktive muss weiterhin die erste Anweisung im Programm sein, ansonsten beendet sich der Preprozessor sofort. Neu ist, dass jetzt beliebig viele Multiline-Direktiven im Programm vorkommen können.
Das Problem ist, dass die PureBasic-IDE mir aber trotzdem Syntax-Fehler in Include-Dateien meldet. Wenn ich den Inhalt der Include-Dateien jedoch an die betr. Stelle im Hauptprogramm kopiere, funktioniert alles wie erwartet. D.h. offenbar prüft die IDE die Include-Dateien, bevor mein Preprozessor sie verändert.
Der Preprozessor bekommt ja als Argument "%COMPILEFILE" übergeben. Ich hatte angenommen, dass sei der gesamte Programmcode, der auch alle Include-Dateien enthält. Dem ist offenbar nicht so,
Jetzt weiß ich nicht, wie ich vorgehen soll. Ich könnte den Preprozessor so ändern, dass er selbst rekursiv alle Include-Dateien liest. Aber was ist z.B., wenn er dann eine Include-Datei ändert, die gerade in der IDE geöffnet ist?
Das gute an "%COMPILEFILE" ist ja, dass es eine
temporäre Datei ist, deren Änderung sich daher nicht auf die in der IDE geöffnete Datei auswirkt. Vielleicht ginge es, wenn der Preprozessor die Include-Dateien vor dem Ändern auch in temporäre Dateien kopiert, aber findet PureBasic diese Dateien dann, um sie kompilieren zu können?
Gruß, Little John