Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Purga - Scriptengine www.virtual-maxim.de/purga Ein Einblick.

Ähnliche Präsentationen


Präsentation zum Thema: "Purga - Scriptengine www.virtual-maxim.de/purga Ein Einblick."—  Präsentation transkript:

1 Purga - Scriptengine Ein Einblick

2 Inhalt Überblick Grundlagen Variablen Schleifen Bedingte Anweisungen Purga to C++ C++ to Purga Ausblick

3 Überblick Website: Wird seit 2007 entwickelt Kostenlos und frei verwendbar Für Windows und Linux verfügbar Beinhaltet Dokumentation und Beispiele Syntax ist sehr C++ - ähnlich Einfache Einbindung in C++ - Programme

4 Grundlagen Schlüsselwörter int, float, string, void, bool, table, vector, false, true, if, while, else, elseif, for, and, or, const, function, return, ref Tokens ><{}+-*/

5 Variablen 1 Statische Typzuweisung Auto-Initialisierung Datentypen: Konstanten werden mit const eingeleitet DatentypSpeicherWertebereich int4Byte–2,147,483,648 bis 2,147,483,647 float8Byte 1.7E +/- 308 (15 Nachkommastellen) string2Byte pro Zeichen bool1Bytetrue/false oder 1/0

6 Variablen 2 Deklaration Initialisierung Deklaration & Initialisierung Datentyp Name; Name = Wert; Datentyp Name = Wert;

7 Schleifen 1 - for for( int i = 0; i < 5; i++) { // Anweisung } for( Initialisierung; Bedingung; Anweisung) { // Anweisung } Beispiel: Syntax:

8 Schleifen 2 - while int i = -5; while( i < 0) { i++; } while(Bedingung) { // Anweisung } Beispiel: Syntax:

9 Bedingte Anweisungen 1 – if / else int i = -5; if( i < 0) { i++; } else { i = -10; } if(Bedingung) { // Anweisung 1 } else { // Anweisung 2 } Beispiel:Syntax:

10 Bedingte Anweisungen 2 – elseif int i = -5; if( i < 0) { i++; } elseif( i > 0 and i < 12) { i = -10; } else { i = 20; } if(Bedingung) { // Anweisung 1 } elseif { // Anweisung 2 } Beispiel:Syntax:

11 Purga to C++ / Variablen In Purga deklarierte Variablen in C++ verwenden Funktioniert nur mit globalen Variablen Es stehen folgende Methoden bereit: // Eine globale Purga-Variable in C++ exportieren bool GetVariable(const wchar_t* var_name, int& variable); bool GetVariable(const wchar_t* var_name, double& variable); bool GetVariable(const wchar_t* var_name, std::wstring& variable); bool GetVariable(const wchar_t* var_name, bool& variable);

12 Purga to C++ / Variablen - Beispiel int purga_var = 0; Purga_Instanz.GetVariable(ivariable, purga_var); std::cout << purga_var << std::endl; int ivariable = -4; C++ Code: Purga-Script:

13 C++ to Purga / Variablen Variablen die in C++ deklariert wurden in Purga verwenden Es stehen folgende Methoden bereit: bool RegisterVariable(const wchar_t* var_name, int &var); bool RegisterVariable(const wchar_t* var_name, double &var); bool RegisterVariable(const wchar_t* var_name, std::wstring &var); bool RegisterVariable(const wchar_t* var_name, bool &var);

14 C++ to Purga / Variablen - Beispiel float cpp_var = 0; Purga_Instanz.RegisterVariable(cpp_var, cpp_var ); std::cout << purga_var << std::endl; cpp_var = 34.67; C++ Code: Purga-Script: // Nach der Ausführung des Scripts // wird auf dem Bildschirm erscheinen std::cout << cpp_var << std::endl; C++ Code:

15 C++ to Purga / Funktionen C++ Funktionen in Purga aufrufen _stdcall oder _cdecl Aufrufkonvention Funktionen wird mit folgender Methode exportiert: bool RegisterFunction(const wchar_t* FullNameOfFunction, void* function, eCallType calltype = purga::CALL_STDCALL);

16 C++ to Purga / Funktionen - Beispiel Purga_Instanz.RegisterFunction(L"int print(string)", &wprintf, purga::CALL_CDECL); print("hallo \n"); C++ Code: Purga-Script:

17 Ausblick Zukünftige Features: Purga-Funktionen, Tabellen, Referenzen Steigern der Geschwindigkeit Erweitern der Dokumentation Bessere Fehlererkennung Danke für Ihr Interesse!


Herunterladen ppt "Purga - Scriptengine www.virtual-maxim.de/purga Ein Einblick."

Ähnliche Präsentationen


Google-Anzeigen