Verwendung externer PureBasic-Werkzeuge
Verwendung externer PureBasic-Werkzeuge
Hallo,
kennt sich hier jemand mit der Erstellung externer Tools für PureBasic aus?
(http://www.purebasic.com/german/documen ... tools.html)
Ich möchte eine Art Precompiler für PureBasic (SpiderBasic) schreiben. Hierfür versehe ich mein Tool mit dem Trigger "Before compile / run" und aktiviere "Wait until tool quits". Soweit funktioniert das auch. Mir ist nur folgendes aufgefallen:
* Kann ich den nachfolgenden Kompilierungsvorgang von PureBasic verhindern? Sprich: Wenn ich mit meinem Precompiler feststelle, dass in dem Code bestimmte Voraussetzungen nicht erfüllt sind, soll der Code auch erst gar nicht durch PB gestartet / kompiliert werden.
* Führe ich einen Syntax Check aus (Menüzeile/Compiler/Syntax check), dann wird der Trigger "Before compile / run" ebenso ausgelöst, was in meinem Fall ungünstig ist. Kann man irgendwie unterscheiden, ob ich einen Syntax Check durchführe oder den Code mit F5 starte?
Danke im Voraus & Grüße ... Peter
kennt sich hier jemand mit der Erstellung externer Tools für PureBasic aus?
(http://www.purebasic.com/german/documen ... tools.html)
Ich möchte eine Art Precompiler für PureBasic (SpiderBasic) schreiben. Hierfür versehe ich mein Tool mit dem Trigger "Before compile / run" und aktiviere "Wait until tool quits". Soweit funktioniert das auch. Mir ist nur folgendes aufgefallen:
* Kann ich den nachfolgenden Kompilierungsvorgang von PureBasic verhindern? Sprich: Wenn ich mit meinem Precompiler feststelle, dass in dem Code bestimmte Voraussetzungen nicht erfüllt sind, soll der Code auch erst gar nicht durch PB gestartet / kompiliert werden.
* Führe ich einen Syntax Check aus (Menüzeile/Compiler/Syntax check), dann wird der Trigger "Before compile / run" ebenso ausgelöst, was in meinem Fall ungünstig ist. Kann man irgendwie unterscheiden, ob ich einen Syntax Check durchführe oder den Code mit F5 starte?
Danke im Voraus & Grüße ... Peter
Hygge
Re: Verwendung externer PureBasic-Werkzeuge
Du kannst folgendes machen: Wenn du vor dem Kompilieren einen Fehler entdeckt hast, dann kannst du innerhalb des Quellcodes (Temp-Kopie) folgendes hinzufügen:Kiffi hat geschrieben:* Kann ich den nachfolgenden Kompilierungsvorgang von PureBasic verhindern? Sprich: Wenn ich mit meinem Precompiler feststelle, dass in dem Code bestimmte Voraussetzungen nicht erfüllt sind, soll der Code auch erst gar nicht durch PB gestartet / kompiliert werden.
Code: Alles auswählen
CompilerError "Deine eigene Fehlermeldung"
Re: Verwendung externer PureBasic-Werkzeuge
Whow! Das ist ja schon mal ein Hammer-Tipp! Danke!RSBasic hat geschrieben:Du kannst folgendes machen: Wenn du vor dem Kompilieren einen Fehler entdeckt hast, dann kannst du innerhalb des Quellcodes (Temp-Kopie) folgendes hinzufügen:Danach stoppt pbcompiler.exe die Kompilierung und gibt die von dir angegebene Fehlermeldung aus.Code: Alles auswählen
CompilerError "Deine eigene Fehlermeldung"
Grüße ... Peter
Hygge
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: Verwendung externer PureBasic-Werkzeuge
Ich weiß dafür leider keine sofortige Lösung, aber vielleicht eine mittelfristige:Kiffi hat geschrieben:* Führe ich einen Syntax Check aus (Menüzeile/Compiler/Syntax check), dann wird der Trigger "Before compile / run" ebenso ausgelöst, was in meinem Fall ungünstig ist. Kann man irgendwie unterscheiden, ob ich einen Syntax Check durchführe oder den Code mit F5 starte?
Da der Befehl "Syntax-Überprüfung" ja absichtlich den Code eben nicht kompilieren/starten soll, denke ich dass das von Dir beschriebene Verhalten durchaus als Bug eingestuft werden kann. Wenn Du den im engl. Forum meldest, ist der mit Glück evtl. bald behoben.
Re: Verwendung externer PureBasic-Werkzeuge
ja, dadurch lassen sich einige Sachen in der Tat eleganter lösen.NicTheQuick hat geschrieben:Die einfachsten Lösungen sind doch immer die besten.
Wenn jetzt SpiderBasic nun auch die CompilerWarnings (wie PureBasic) ausgeben würde...
@Nino: Danke für den Tipp, aber ich muss erst einmal verstehen, was da im Hintergrund passiert. Als Parameter übergebe ich %COMPILEFILE, aber diese Datei ist im Prinzip nur eine 1:1 - Kopie meines Sources (nur eben im Temp-Ordner). Die (X)Includes und Macros werden nicht aufgelöst. Dachte, der Compiler führt erst einmal ein /PREPROCESS aus. Ich weiß nicht, ob das so gewollt ist.
Grüße ... Peter
Hygge
Re: Verwendung externer PureBasic-Werkzeuge
Ich weiß nicht, was du genau mit deinem Precompiler genau machen willst. Das ganze funktioniert wunderbar, so lange es ein einzelnes File ohne (X)Include ist. Wenn du allerdings Includefiles verarbeiten willst und nicht willst, dass bei einem Fehler immer dein vom Preprozessor erstelltes File aufgerufen wird, oder gar ein Debugger funktionieren sollte, dann vergiss es.Kiffi hat geschrieben:Die (X)Includes und Macros werden nicht aufgelöst. Dachte, der Compiler führt erst einmal ein /PREPROCESS aus. Ich weiß nicht, ob das so gewollt ist.
Das einzige was man mit Pb nativen Mitteln bauen kann sind Krücken, wobei Krücken für den einen oder anderen natürlich auch ein Hilfsmittel sein können.
Re: Verwendung externer PureBasic-Werkzeuge
@Josh:
Das liest sich so, als ob Du das aus leidvoller Erfahrung kennst.
Danke & Grüße ... Peter
Das liest sich so, als ob Du das aus leidvoller Erfahrung kennst.
das sehe ich erstmal auch so. Lieber den Spatz in der Hand...Josh hat geschrieben:[...] wobei Krücken für den einen oder anderen natürlich auch ein Hilfsmittel sein können.
Danke & Grüße ... Peter
Hygge
Re: Verwendung externer PureBasic-Werkzeuge
Ich muss mich ein wenig korrigieren. Was ich oben geschrieben habe trifft nur in Zusammenhang mit der Pb-Ide zu. Der Compiler selbst würde eigentlich alles mitbringen, was man für einen vernünftigen Preprocessor benötigt.
Noch etwas zu /PREPROCESS: Wäre ja eigentlich ein sehr sinnvolles Tool, aber wenn du für deinen Preprocessor Code schreiben willst, der für den Compiler keinen Sinn ergibt, dann spielts das leider auch nicht.
Noch etwas zu /PREPROCESS: Wäre ja eigentlich ein sehr sinnvolles Tool, aber wenn du für deinen Preprocessor Code schreiben willst, der für den Compiler keinen Sinn ergibt, dann spielts das leider auch nicht.