Verwendung externer PureBasic-Werkzeuge

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Verwendung externer PureBasic-Werkzeuge

Beitrag von Kiffi »

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
Hygge
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Verwendung externer PureBasic-Werkzeuge

Beitrag von RSBasic »

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.
Du kannst folgendes machen: Wenn du vor dem Kompilieren einen Fehler entdeckt hast, dann kannst du innerhalb des Quellcodes (Temp-Kopie) folgendes hinzufügen:

Code: Alles auswählen

CompilerError "Deine eigene Fehlermeldung"
Danach stoppt pbcompiler.exe die Kompilierung und gibt die von dir angegebene Fehlermeldung aus.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Verwendung externer PureBasic-Werkzeuge

Beitrag von Kiffi »

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:

Code: Alles auswählen

CompilerError "Deine eigene Fehlermeldung"
Danach stoppt pbcompiler.exe die Kompilierung und gibt die von dir angegebene Fehlermeldung aus.
Whow! :shock: Das ist ja schon mal ein Hammer-Tipp! Danke! :allright:

Grüße ... Peter
Hygge
Benutzeravatar
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

Beitrag von NicTheQuick »

Die einfachsten Lösungen sind doch immer die besten. :allright:
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Verwendung externer PureBasic-Werkzeuge

Beitrag von Nino »

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?
Ich weiß dafür leider keine sofortige Lösung, aber vielleicht eine mittelfristige:
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. :-)
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Verwendung externer PureBasic-Werkzeuge

Beitrag von Kiffi »

NicTheQuick hat geschrieben:Die einfachsten Lösungen sind doch immer die besten. :allright:
ja, dadurch lassen sich einige Sachen in der Tat eleganter lösen.

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
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Verwendung externer PureBasic-Werkzeuge

Beitrag von Josh »

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.
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.

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.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Verwendung externer PureBasic-Werkzeuge

Beitrag von Kiffi »

@Josh:

Das liest sich so, als ob Du das aus leidvoller Erfahrung kennst. ;-)
Josh hat geschrieben:[...] wobei Krücken für den einen oder anderen natürlich auch ein Hilfsmittel sein können.
das sehe ich erstmal auch so. Lieber den Spatz in der Hand...

Danke & Grüße ... Peter
Hygge
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Verwendung externer PureBasic-Werkzeuge

Beitrag von Josh »

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.
Antworten