Purga

Geschichtliches

purga
Purga (rus: Schneesturm, Blizzard) ist eine mini Scriptsprache. Ich habe aus Spaß angefangen eine Routine zu schreiben, mit der ich C++-Funktionen aus einem Script aufrufen wollte und habe schnell kleinere Erfolge erzielt. Die Routine funktionierte, doch war der Code nicht durchdacht und nicht erweiterbar, also habe ich mir überlegt mit dem neuen Wissen eine kleine Scriptspache zu schreiben. Es war von Anfang an nicht mein Ziel eine super Scriptsprache zu programmieren, die besser als Lua & Co. ist. Mir geht es viel mehr um eine einfache Benutzung und nicht zu letzt um Erfahrung und Spaß.
Mit Purga hoffe ich vor allem Programmieranfänger anzusprechen, die mit Lua oder anderen Scriptspachen überfordert sind und eine Scriptsprache mit einer einfachen Schnittstelle suchen.

UPDATE: Projekt wird nicht weiter entwickelt.

Merkmale & Möglichkeiten

Zurzeit kann die Sprache nur sehr wenig. Ich werde sie je nach Lust und Laune weiter entwickeln.
Folgende Punkte zeichnen die Scriptspache aus:
– die Sprache ist case-sensitive, d.h. es wird zwischen Groß- und Kleinschreibung unterschieden.
– Anweisungen werden mit Semikolon abgeschlossen!
– 4 Variablentypen: int, float, char, bool; wobei char einer Zeichenkette entspricht.
– Variablen aus Purga in C++ exportieren
– Einzeilige und mehrzeilige Kommentare
– Inkrementieren(var++;) und Dekrementieren(var–;)
– Scripts als String übergeben
– C++ Funktionen(stdcall) in Purga aufrufen
– C++ Variablen in Purga verwenden
– Purga Variablen nach C++ exportieren
– Standardinitialisierung von Variablen
– if (elseif, else), while, for
– Cache-Methode. Scripts können vor dem Ausführen „vorkompiliert“ werden.
– Rechnen mit Variablen + – * /
– Logische Operatoren: and or
– Vergleichsoperatoren: < <= > >= == !=
– Vordefinierte Konstanten

Unterstützte Compiler: VC++ 2008, GNU GCC (wird getestet)

Beispiel

Hier kommt ein kleines Beispiel, welches zeigt wie man Variablen aus Purga-Scripts in C++ exportiert. Man kann es gut als ein Konfigurationssystem verwenden. Ein Purga-Script Beispiel:
script screenshot

Das Einlesen von Variablen sieht dann so aus.

#include &lt;iostream&gt;

// Purga Header einbinden
#include &quot;include/purga.h&quot;

// Release Lib einbinden
#pragma comment (lib, &quot;lib/purga.lib&quot;)

int main(void)
{
     purga::Purga pg;

     pg.CacheScript(L&quot;script.txt&quot;);

     pg.ExecuteScript(L&quot;script.txt&quot;);

     // Variablenwerte aus dem Script aus dem Script holen

     int zahl = 0;
     pg.GetVariable(L&quot;zahl&quot;, zahl);
     std::cout&lt;&lt;&quot;zahl: &quot;&lt;&lt; std::endl;

     double zahl2 = 0.0f;
     pg.GetVariable(L&quot;kommazahl&quot;, zahl2);
     std::cout&lt;&lt;&quot;kommazahl: &quot;&lt;&lt;std::endl;

     std::wstring text = L&quot;&quot;;
     pg.GetVariable(L&quot;text&quot;, text);
     std::wcout&lt;&lt;&quot;text: &quot;&lt;&lt;std::endl;

     std::cout&lt;&lt;&quot;Ende&quot;&lt;&lt;std::endl;
     std::cin.get();

     return 0;
}

Und auf dem Bildschirm sieht man folgendes Bild:
ausgabe screenshot

SteveKr hat freundlicherweise eine Einführung in Purga geschrieben.

Download

Purga

Purga Beta

Purga Dokumentation

Schreibe einen Kommentar