DeclareAll PreCompiler für PB-IDE ab PB4.x

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

DeclareAll PreCompiler für PB-IDE ab PB4.x

Beitrag von ts-soft »

Was macht der PreCompiler?

Der gesamte Source wird vor dem Ausführen oder Erstellen einer Exe
zusammengeführt. Bei diesem Vorgang werden alle Strukturen und
Interfaces an den Anfang gestellt. Alle Proceduren werden Declariert.
Der restliche Source wird nach der Declaration angehängt. (Kommentar-
und Leerzeilen werden ignoriert).

NEU automatische Unicode-Konvertierung vor der Compilierung! NEU

Der nun generierte Source wird dem Compiler zur Weiterbearbeitung
übergeben.

Der Original-Source bleibt unangetastet!

Einschränkungen:
OnError Lib gibt falsche Ergebnisse zurück. Dies betrifft insbesondere:
GetErrorModuleName()
GetErrorLineNR()

Beispielcode:

Code: Alles auswählen

Message("Hallo es klappt")

Procedure Message(Text.s)
  MessageRequester("Message", Text)
EndProcedure
Funktioniert auch mit ungespeichertem Code.

Um die Konfiguration zu erleichtern, habe ich 2 Bilder dem Paket
hinzugefügt.

Feedback erwünscht!

Download

Gruß
Thomas
Zuletzt geändert von ts-soft am 12.03.2006 15:30, insgesamt 2-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ich habe es zwar nicht getestet, aber meine Idee wäre, die original Compiler.exe umzubenennen und dein PlugIn mit dem namen Compiler.exe einzusetzen, sodass ich weiterhin wie gewohnt F5 drücken oder auf das Zahnrad klicken kann, um den Source zu kompilieren.

Falls dann noch irgendetwas eingestellt werden muss, kannst du das Konfig.tool ja immer noch mit einem Shortcut oder über ds Menü aufrufen lassen.
Solltest du dann nicht wissen, wie du den "PreCode" bekommst, wovon ich nicht ausgehe, dann greift dein Tool auf Compilers\PB_EditorOutput.pb zu und verändert diesen Code - der Original Source bleibt unangetastet.

Ansonsten ist das aber eine sehr gute Idee mit dem PreCompiler. :allright:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

AND51 hat geschrieben:Ich habe es zwar nicht getestet, aber meine Idee wäre, die original Compiler.exe umzubenennen und dein PlugIn mit dem namen Compiler.exe einzusetzen, sodass ich weiterhin wie gewohnt F5 drücken oder auf das Zahnrad klicken kann, um den Source zu kompilieren.
Wenn Du es so konfigurierst, wie in den Bildern im Zip-File, kannste F5 drücken zum kompilieren (auch bei ungespeichertem Source).
Umbennen des Compilers würde ich niemanden zumuten. PS: Wird auch nicht funktionieren, also laß es lieber!
AND51 hat geschrieben: Falls dann noch irgendetwas eingestellt werden muss, kannst du das Konfig.tool ja immer noch mit einem Shortcut oder über ds Menü aufrufen lassen.
Es wird so konfiguriert, das es im Menü garnicht sichtbar ist
Direktes Aufrufen über Menü ist nicht sinnvoll bei dieser Funktionsweise!
AND51 hat geschrieben: Solltest du dann nicht wissen, wie du den "PreCode" bekommst, wovon ich nicht ausgehe, dann greift dein Tool auf Compilers\PB_EditorOutput.pb zu und verändert diesen Code - der Original Source bleibt unangetastet.

Ansonsten ist das aber eine sehr gute Idee mit dem PreCompiler. :allright:
Danke für Deine Kommentare, aber erst Testen und dann
Kommentieren wäre besser :wink:

Das einzige Problem sind die falschen Zeilennummern im Debugger :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Kleines Update!
Bereits vorhandene Declares werden jetzt auch berücksichtigt
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag von Sylvia »

@ts-soft:
Ich nehme an, dass dieser PreCompiler auf meine Anregung hin entstanden ist. Ich selbst war über die Jahre zu faul dazu zum
programmieren; ausserdem hoffte ich auch immer auf eine
offizielle Unterstützung durch den Compiler.

Hatte leider auch noch keine "Zeit" ( 8) ) um dein Programm zu
testen. Kommt aber mit Sicherheit noch
Basic Pur = PureBasic
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Da haste schon Recht :allright:
Hätte ich aber vorher bedacht, das der Debugger falsche Zeilen ausgibt,
hätte ich es sein lassen. Ich hoffe es ist trotzdem nützlich.


// Nachtrag:
Neue Funktion !

Wenn die Compilerdirektive für Unicode aktiviert ist, wird der Source vor
der Compilierung entsprechend geändert, so das auch Umlaute usw. korrekt angezeigt werden.

Gruß
Thomas

// Angepaßt an Beta 7
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Auf besonderen Wunsch den Source hinzugefügt, läßt sich hoffentlich auch
für andere Dinge nutzen :wink:

Fehler bitte trotzdem melden!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten