PBScript - Scriptsprache mit PureBasic-Syntax
PBScript - Scriptsprache mit PureBasic-Syntax
PBScript Beta V. 0.73
Userlib bzw. DLL für Windows 32-Bit
Auch mit Unicode
---------------------
Hi Leute,
ich hab mich mal an eine Scriptsprache rangemacht. Jetzt werden ihr wahrscheinlich sagen, dass schon tausende Scriptsprachen erstellt worden sind. Ich wage aber mal zu behaupten, dass meine was gaaaanz besonderes ist . Mein Ziel war es nämlich, dass meine Scriptsprache die Syntax von PureBasic benutzt, sodass ganz normale PB-Dateien als Script verwendet werden können. Natürlich ist meine Sprache noch nicht fertig. Aber ich arbeite weiter daran, sie so ähnlich wie möglich kompatibel zu PureBasic zu machen.
Die Funktionsweise meiner Scriptsprache ist geteilt. Das heißt es gibt einen Kompiler, der PB-Dateien in ByteCode umformt. Dazu gibt es einen Interpreter, der den ByteCode dann interpretiert und ausführt. Somit ist ein Kompilieren (welches für gewöhnlich Zeit in Anspruch nimmt) im fertigen Projekt nicht mehr nötig.
Hier eine Liste von den Features von PureBasic, die bereits im Kompiler umgesetzt wurden:
- Variablen, Pointer, Adressen von Variablen '@'
- Konstanten / Enumeration
- Structure (auch mit StructureUnion und Arrays) / Extends
- Dim / Arrays (Ein- und Mehrdimensional / vollkommen kompatibel zu PureBasic)
- NewList / LinkedLists (vollkommen kompatibel zu PureBasic)
- Arrays und Listen auch in Strukturen
- Procedure (auch optionale Parameter) (kann im Script definiert werden oder außerhalb)
- Global/Protected/Shared/Static/Define ('Static' noch ohne Startwertzuweisung)
- IncludePath / (X)IncludeFile
- Data / DataSection
- Read / Restore
- Sprungmarken
- Debug
- EnableExplicit/DisableExplicit
- If/ElseIf/Else
- Select/Case/Default
- While/Wend, Repeat/Until/ForEver, For/Next, ForEach/Next
- Break/Continue
- With
- End mit ExitCode
- Variablenzuweisung (auch die kurze Form 'var + 1' statt 'var = var + 1')
- Alle Operatoren mit gleicher Priorität wie in PureBasic
- Booleanvervollständigung (aus 'If var And string' wird 'If (var <> 0) And (string <> "")')
Ich freue mich auf eure Meinungen, Verbesserungsvorschläge und (hoffentlich nicht) Bug Meldungen.
Hier der Link zur aktuellen Version:
http://cshw89.mevedia.de/PBScript.zip
Für PureBasic <= 4.61:
Version 0.72: http://cshw89.mevedia.de/PBScript_0.72.zip
Für PureBasic <= 4.51:
Version 0.71: http://cshw89.mevedia.de/PBScript_0.71.zip
Version 0.69: http://cshw89.mevedia.de/PBScript_0.69.zip
Version 0.60: http://cshw89.mevedia.de/PBScript_0.60.zip
Für PureBasic <= 4.40:
Version 0.24: http://cshw89.mevedia.de/PBScript_0.24.zip
Mfg Kevin
Userlib bzw. DLL für Windows 32-Bit
Auch mit Unicode
---------------------
Hi Leute,
ich hab mich mal an eine Scriptsprache rangemacht. Jetzt werden ihr wahrscheinlich sagen, dass schon tausende Scriptsprachen erstellt worden sind. Ich wage aber mal zu behaupten, dass meine was gaaaanz besonderes ist . Mein Ziel war es nämlich, dass meine Scriptsprache die Syntax von PureBasic benutzt, sodass ganz normale PB-Dateien als Script verwendet werden können. Natürlich ist meine Sprache noch nicht fertig. Aber ich arbeite weiter daran, sie so ähnlich wie möglich kompatibel zu PureBasic zu machen.
Die Funktionsweise meiner Scriptsprache ist geteilt. Das heißt es gibt einen Kompiler, der PB-Dateien in ByteCode umformt. Dazu gibt es einen Interpreter, der den ByteCode dann interpretiert und ausführt. Somit ist ein Kompilieren (welches für gewöhnlich Zeit in Anspruch nimmt) im fertigen Projekt nicht mehr nötig.
Hier eine Liste von den Features von PureBasic, die bereits im Kompiler umgesetzt wurden:
- Variablen, Pointer, Adressen von Variablen '@'
- Konstanten / Enumeration
- Structure (auch mit StructureUnion und Arrays) / Extends
- Dim / Arrays (Ein- und Mehrdimensional / vollkommen kompatibel zu PureBasic)
- NewList / LinkedLists (vollkommen kompatibel zu PureBasic)
- Arrays und Listen auch in Strukturen
- Procedure (auch optionale Parameter) (kann im Script definiert werden oder außerhalb)
- Global/Protected/Shared/Static/Define ('Static' noch ohne Startwertzuweisung)
- IncludePath / (X)IncludeFile
- Data / DataSection
- Read / Restore
- Sprungmarken
- Debug
- EnableExplicit/DisableExplicit
- If/ElseIf/Else
- Select/Case/Default
- While/Wend, Repeat/Until/ForEver, For/Next, ForEach/Next
- Break/Continue
- With
- End mit ExitCode
- Variablenzuweisung (auch die kurze Form 'var + 1' statt 'var = var + 1')
- Alle Operatoren mit gleicher Priorität wie in PureBasic
- Booleanvervollständigung (aus 'If var And string' wird 'If (var <> 0) And (string <> "")')
Ich freue mich auf eure Meinungen, Verbesserungsvorschläge und (hoffentlich nicht) Bug Meldungen.
Hier der Link zur aktuellen Version:
http://cshw89.mevedia.de/PBScript.zip
Für PureBasic <= 4.61:
Version 0.72: http://cshw89.mevedia.de/PBScript_0.72.zip
Für PureBasic <= 4.51:
Version 0.71: http://cshw89.mevedia.de/PBScript_0.71.zip
Version 0.69: http://cshw89.mevedia.de/PBScript_0.69.zip
Version 0.60: http://cshw89.mevedia.de/PBScript_0.60.zip
Für PureBasic <= 4.40:
Version 0.24: http://cshw89.mevedia.de/PBScript_0.24.zip
Mfg Kevin
Zuletzt geändert von CSHW89 am 14.10.2012 23:01, insgesamt 24-mal geändert.
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
- 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
Re: PBScript - Scriptsprache mit PureBasic-Syntax
schöne Idee, eine Art Lua mit PB-Syntax.
Die wichtigsten Infos haste aber im ersten Beitrag weggelassen
1. Es ist eine UserLib
2. Sie erfordert Windows
3. Sie unterstützt nur 32-Bit
4. Unicode, Threadsafe usw., weiß ich jetzt nicht, den Rest hab ich ja schon erraten
Gruß
Thomas
Die wichtigsten Infos haste aber im ersten Beitrag weggelassen
1. Es ist eine UserLib
2. Sie erfordert Windows
3. Sie unterstützt nur 32-Bit
4. Unicode, Threadsafe usw., weiß ich jetzt nicht, den Rest hab ich ja schon erraten
Gruß
Thomas
Re: PBScript - Scriptsprache mit PureBasic-Syntax
Ach was, hab ich doch gar nicht. Sorry hab nicht dran gedacht. Hab die Info wohl etwas zu schnell geschrieben.
Danke schon mal für Lob.
Danke schon mal für Lob.
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Re: PBScript - Scriptsprache mit PureBasic-Syntax
Sehr gut
Aber du hast was "wichtiges" vergessen, wieso kennt deine Lib kein ":" ?
Liegt scheinbar an PBSStartByteCode(), aber das muss ja ausgeführt werden damit der Code außerhalb der Procedure ausgeführt wird ...
Und noch n Frage, Proceduren von PB werden überhaupt nicht unterstützt ?
Also Abs(), Sin() usw.
Auch und was noch nett wäre , wäre ein PBSCompileScriptString()
damit man nicht immer temp-Datein erstellen muss
Aber du hast was "wichtiges" vergessen, wieso kennt deine Lib kein ":" ?
Code: Alles auswählen
Global var1.i
Global var2.i
Procedure main()
var1 = 1 : var2 = 2
EndProcedure
Hier hängt sich das Programm auf, was habe ich falsch gemacht ?---------------------------
PBSScriptCompiler
---------------------------
Zeile 5: Garbage at the end of line.
---------------------------
OK
---------------------------
Code: Alles auswählen
Define string.s, file.s
Define *bytecode
Define value.PBSValue
; Hier das Scriptprogramm
string = #LF$
string + "Global var.i"+#LF$
string + "Procedure.i test()"+#LF$
string + " ProcedureReturn 10"+#LF$
string + "EndProcedure"+#LF$
string + "var = test()"+#LF$
file = GetTemporaryDirectory()+"Script.pb"
If CreateFile(0, file)
WriteString(0, string)
CloseFile(0)
*bytecode = PBSCompileScriptFile(file)
If PBSOpenByteMemory(0, *bytecode)
PBSStartByteCode(0)
PBSGetVariableValue(0, "var", value)
Debug value\integer
PBSCloseByteScript(0)
EndIf
EndIf
Und noch n Frage, Proceduren von PB werden überhaupt nicht unterstützt ?
Also Abs(), Sin() usw.
Auch und was noch nett wäre , wäre ein PBSCompileScriptString()
damit man nicht immer temp-Datein erstellen muss
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- 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
Re: PBScript - Scriptsprache mit PureBasic-Syntax
Unicode geht anscheinend auch nicht
Mein Test funktioniert auch nicht, aber da hab ich wohl was mißverstanden, Beispiele fehlen
ja auch noch.
Ich hab folgende Datei angelegt:
Bekomme aber nur einen leeren Debugger zu sehen?
Mein Test funktioniert auch nicht, aber da hab ich wohl was mißverstanden, Beispiele fehlen
ja auch noch.
Ich hab folgende Datei angelegt:
und folgenden Code probiert:bla.txt hat geschrieben:a.s = "Hello World"
Code: Alles auswählen
Define *ByteCode
*ByteCode = PBSCompileScriptFile("bla.txt")
Define.PBSValue MyVar
If PBSOpenByteMemory(0, *ByteCode)
PBSGetVariableValue(0, "a", @MyVar)
Debug MyVar\string
EndIf
Re: PBScript - Scriptsprache mit PureBasic-Syntax
@TS: du musst den Code erst ausführen, PBSStartByteCode(0)
PBSOpenByteMemory öffnet nur ...
PBSOpenByteMemory öffnet nur ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- 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
Re: PBScript - Scriptsprache mit PureBasic-Syntax
Okay, hab bla.txt geändert:
und PBSStartByteCode(0) hinzugefügt, dann gehtsbla.txt hat geschrieben:Global a.s
a.s = "Hello World"
- hjbremer
- Beiträge: 822
- Registriert: 27.02.2006 22:30
- Computerausstattung: von gestern
- Wohnort: Neumünster
Re: PBScript - Scriptsprache mit PureBasic-Syntax
mal ne blöde Frage ?
wozu brauch ich das ? wenn ich PB habe.
wozu brauch ich das ? wenn ich PB habe.
Purebasic 5.70 x86 5.72 X 64 - Windows 10
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Re: PBScript - Scriptsprache mit PureBasic-Syntax
Jo, warum nicht.mal ne blöde Frage ?
Stell dir vor, du willst ein Spiel entwickeln, welches dem Benutzer selbst die Möglichkeit bieten soll, durch Scripts modifiziert werden zu können.wozu brauch ich das ? wenn ich PB habe.
- 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
Re: PBScript - Scriptsprache mit PureBasic-Syntax
Wenn Du PB nicht hast, wäre es ziemlich unnützhjbremer hat geschrieben:mal ne blöde Frage ?
wozu brauch ich das ? wenn ich PB habe.
Ansonsten hat XOr ja schon hinweise gegeben. Man kann dem User also erlauben
z.B. eigene Level, eigenes Skinning o. ä. zu Skripten um die PB-Anwendung zu
manipulieren. Etwas ähnliches gibts ja schon, http://de.wikipedia.org/wiki/Lua
Gruß
Thomas