WNS Coding Language 0.1

  • Hey, hey :D


    Ich habe ja vor kurzem gepostet, dass ich einen Compiler oder etwas in die Richtung schreiben will. Nunja, ich hab jetzt einen eigenen Weg gefunden und einen kleinen "Interpreter" geschrieben. Eigentlich wandelt er den Code nur in C++-Code um und führt diesen dann aus, aber man kann den Interpreter ganz einfach dahingehend
    verändern, dass er ihn in Assemblercode umwandelt und in eine Text-Datei speichert. :D


    Die Sprache ist erst ganz am Anfang, also nicht beschweren ;D


    NSFAQ - Not so frequently asked questions
    Wie kompiliere ich meinen Code?

    Ganz einfach: schreibt euren Code in eine Text-Datei und speichert diese als "main.wns" im selben Ordner, in dem auch der Compiler liegt, ab. Dann startet einfach den Compiler.


    How to code
    Bisher funktionieren Ein- und Ausgaben und char, string, bool, int und dec (Entspricht double) Variablen.
    Syntax
    Ein WNS-Programm in der Version 0.1 ist immer so aufgebaut:

    Code
    1. //Code//Noch mehr codeend


    Befehle
    Variablen
    Variablen werden so deklariert:

    Code
    1. <Typ> <Name> [Wert]


    Mögliche Typen sind "int", "dec" (Entspricht double), "char", "string" und "bool".
    Wenn man keinen Wert angibt, wird ein Standardwert verwendet (0 bei int und dec, " " (Leerzeichen) bei char, "" bei string und false bei bool).
    Kommentare
    Kommentare sind immer Zeilenkommentare und müssen am Anfang einer neuen Zeile stehen:

    Code
    1. //Hier steht ein Kommentar


    Ein- und Ausgabe
    Ausgabe
    Es gibt vier Befehle zur ausgabe:

    Code
    1. out: "Text"//Gibt den String "Text" ausoutln: "Text"//Gibt den String "Text" mit einem Zeilenumbruch danach ausoutv: var//Gibt den Wert der Variable "var" aus (int, dec, char, string)outvln: var//Gibt den Wert der Variable "var" mit einem Zeilenumbruch danach aus (int, dec, char, string)


    Zwischen dem Befehl und dem Wert können auch mehrere oder gar kein Abstände sein.
    Eingabe
    Man kann nur Variablen eingeben:

    Code
    1. in: var//Setzt den Wert der Variable "var" auf den eingegebenen Wert (int, dec, char und string)


    Der "end"-Befehl
    Am Ende eines jeden Programms muss der Befehl "end" stehen. Wenn man den Befehl mitten in's Programm schreibt, wird ein Fehler ausgegeben.
    Ein Beispiel-Programm

    Code
    1. //Aufgabe des Users ausgebenoutln: "Geben Sie eine Zahl ein:"//Variable "number" deklarierenint number 0//"number" einlesenin: numberout: "Ihre Zahl war: "//Den eingegebenen Wert ausgebenoutvln: number//Das selbe mit einer char-Variableoutln: "Geben Sie einen Buchstaben ein:"char characterin: characterout: "Ihr Buchstabe war: "outvln: characterend


    Syntax-Highlighting
    Ich habe eine xml-Datei erstellt, mit der man Syntax-Higlighting für WNS in Notepad++ einfügen kann. Die Datei ist angehängt.
    Schlusswort
    Den Source-Code findet ihr hier. Ich weiß, er ist wahrscheinlich nicht wirklich der beste, bitte schreibt mir Verbesserungen in den Thread hier :)
    Andere Ideen für die Sprache, Rückmeldungen, Fragen oder eure Programme schreibt mir auch hier rein :D
    Was noch kommen wird

    • Mathematische Berechnungen
    • Arrays
    • Externe Dateien und Funktionen
    • Metadaten
    • Mehr...