Demo

da machste nix Dies ist ein flyes Beispielprogramm

der Boy will das Alter am judgen sein
    wenn das Alter kleiner als 18 ist
        die Message ist "Du weißt schon, dass du jetzt ein Scriptkiddy bist, oder?"
    ansonsten
        die Message ist "Was machst du hier? Geh CS:GO spielen!"
    sheesh
    die Message rausballen
sheesh

die Message ist den _GET an der Stelle "alter" am judgen

"Hallo " zusammengeballt mit Klammer auf dem _GET an der Stelle "name" Klammer zu zusammengeballt mit "! " amk
die Message amk

Demoscript ausführen

Output:

Wie auch du zum Boy wirst

1. Download

Als erstes musst du den Compiler herunterladen, welcher ein plattformunabhängiges Java-Programm ist. Falls du (aus einem vermutlich äußerst sinnvollen Grund) kein Java installiert hast, musst du es ebenfalls herunterladen und installieren.

2. Scripten

Auf dieser Website ist die komplette Syntax von BoyScript dokumentiert. Da es vorerst kein richtiges Tutorial geben wird, ist es wichtig, schon die Grundlagen des Programmierens zu beherrschen. Um sinnvolle Dinge tun zu können (z.B. Dateien schreiben und lesen etc.) sind außerdem PHP-Kenntnisse von Vorteil, da die bei PHP mitgelieferten Funtionen in BoyScript verwendet werden können.

Die Dateiendung für BoyScript-Programme ist .bs (Da war der Boy creative am been). Als Encoding sollte UTF-8 verwendet werden.

Hello World

"Der Boy ist die World am greeten" amk

3. Kompilieren und ausführen

Der Compiler erwartet den Pfad zum BoyScript-Programm als Parameter und schreibt das Ergebnis in die Standardausgabe, zum Beispiel: java -jar boyscript.jar script.bs

Um alle Compiler-Optionen anzuzeigen, führe diesen ohne Parameter java -jar boyscript.jar oder mit -help java -jar boyscript.jar -help aus.

Der Compiler übersetzt BoyScript-Programme in PHP, welches von einem eigenen Interpreter ausgeführt wird. Dafür gibt es zwei Möglichkeiten:

Webserver

Mit PHP (und damit auch BoyScript) können komplexe Websites (inkl. Datenbank-Kommunikation etc.) programmiert werden. Dafür empfiehlt sich eine eine einfache Webserver-Umgebung wie XAMPP. Die zu PHP kompilierten BoyScript-Dateien müssen im entsprechden Ordner des Webservers platziert werden und können dann über den Browser ausgeführt werden.

Kommandozeile

Wenn du PHP installiert hast, kannst du Programme auch wie bei anderen Scriptsprachen auf der Kommandozeile ausführen.

Mit dem Parameter -s <path> können automatisch Shebangs in die kompilierten Scripte integriert werden, zum Beispiel: java -jar boyscript.jar script.bs -f -s /usr/bin/php

Die BoyScript Syntax

Konventionen

...

Ausdrücke

Ein Ausdruck ist

  • Ein Literal, d.h.
    • eine Zeichenkette: "..." (Nur doppelte Anführungszeichen, nur innerhalb einer Zeile, Standard-Escapes),
    • eine Ganzzahl, z.B. 42,
    • eine Fließkommazahl, z.B. 13.37 (mit Dezimalpunkt)
    • oder ein Wahrheitswert, real (das englsiche Wort) entspricht wahr, nicht real entspricht falsch,
  • eine Variable,
  • ein Ausdruck in runden Klammern: Klammer auf expr Klammer zu
  • oder zwei Ausdrücke, die mit einem Operator verbunden sind: expr1 operator expr2.

Ausgabe

expr amk gibt den Ausdruck expr auf der Website bzw. der Standardausgabe aus.

Beispiel

"Beispiel" amk
5 amk

Kommentare

Einzeilig

Der Rest der Zeile nach da machste nix wird beim Kompilieren ignoriert.

Mehrzeilig

Alles zwischen man halt die Fresse ... du Hurensohn wird beim Kompilieren ebenfalls ignoriert.

Beispiel

man halt die Fresse
dieses Programm gibt die Zahl 5 aus
du Hurensohn

5 amk da machste nix Ausgabe

Variablen

Eine Variablen besteht aus einem Artikel (der, die, das, den, dem, eine, einen oder ein) und einem Identifier, welcher aus Klein- und Großbuchstaben, Zahlen und Unterstrichen bestehen darf und nicht mit einer Zahl anfängt (als Identifier sollte kein Schlüsselwort von BoyScript verwendet werden). Bei jeder Verwendung einer Variable kann ein beliebiger Artikel verwendet werden.

Variablen müssen nicht deklariert werden, es gibt keine strikte Typisierung.

Zuweisung

var ist expr weist einer Variable den Wert expr zu.

Beispiel

eine Zahl ist 5
die Zahl amk

Arrays

Deklaration

Damit in eine Variable mehrere Variablen passen, muss diese mit var ist am enlargen vergrößert werden.

Hierbei handelt es sich um ein voreingestelltes Alias der Funktion array()

Zugriff

Der Zugriff erfolgt mit var an der Stelle expr

Der Ausdruck expr ist der Index (Schlüssel) des Wertes, dieser kann eine Ganzzahl oder ein String sein.

Der Arrayzugriff ist eine Variable im Kontext eines Ausdrucks.

Beispiel

das Array ist am enlargen
das Array an der Stelle 0 ist 5
das Array an der Stelle "index" amk

Operatoren

Operator Bedeutung
plus+
minus-
mal*
durch/
geteilt mit Rest durch% (Modulo)
hoch** ab PHP 5.6
und&&
oder||
zusammengeballt mit. (Stringverknüpfung)
gleich==
identisch mit=== (auch gleicher Datentyp)
ungleich!=
kleiner als<
größer als>

Funktionen

Definition

Eine Funktion wird mit der Boy will paramlist am id sein ... sheesh definiert.

id, der Name der Funktion, ist ein Identifier (siehe Variablen).

Die Parameterliste paramlist ist entweder gar nichts (einfach weglassen, wenn keine Parameter benötigt werden), eine Variable oder mehrere Variablen, die mit sowie verknüpft sind. Hier definierte Variablen sind loakle Variablen der Funktion.

Mit expr rausballen wird der Ausdruck expr zurückgegeben.

Aufruf ohne Zuweisung

Mit der Boy ist exprlist am id wird eine Funktion aufgerufen. Dabei wird der Rückgabewert ignoriert.

Die Ausdruckliste exprlist ist entweder gar nichts (einfach weglassen, wenn keine Parameter benötigt werden), ein Ausdruck oder mehrere Ausdrücke, die mit sowie verknüpft sind.

Aufruf mit Zuweisung

Mit var ist exprlist am id wird der Rückgabewert einer Funktion einer Variable zugewiesen.

Funktionsaufrufe können nicht innerhalb von Ausdrücken verwendet werden. Es ist eine Variable als Zwischenspeicher notwendig.

Beispiel

der Boy will am flamen sein
"du dummer low idiot" amk
sheesh

der Boy will die Zahl am outputten sein
die Zahl amk
sheesh

der Boy will die Zahl1 sowie die Zahl2 am addieren sein
die Zahl1 plus die Zahl2 rausballen
sheesh

der Boy ist am flamen
der Boy ist 5 am outputten
das Ergebnis ist 5 sowie 3 am addieren

Bedingungen

Eine Bedingung wird mit wenn cond ... sheesh ausgedrückt.

cond besteht dabei aus einem Ausdruck und real ist, ist, sind oderreal sind.

Der Code in der Bedingung wird nur ausgeführt, wenn der Ausdruck den Wert wahr hat.

Else

Eine Bedingung, die einen betsimmten Code ausführt, wenn der Ausdruck nicht wahr ist, wird mit wenn cond ... ansonsten ... sheesh definiert.

Beispiel

wenn die Variable real ist
"ich" amk
sheesh

wenn die Variable gleich 5 ist
"bin" amk
sheesh

wenn die Variable1 und die Variable2 real sind
"ziemlich" amk
ansonsten
"fly" amk
sheesh

Schleifen

Eine Schleife wird mit solange cond ... sheesh definiert.

Der Code innerhalb der Schleife wird solange ausgeführt, wie der Ausdruck in der Bedingung cond (siehe Bedingungen) wahr ist.

Beispiel

solange die Variable real ist
"while" amk
sheesh

der Zähler ist 0
solange der Zähler kleiner als 10 ist
"for" amk
der Zähler ist der Zähler plus 1
sheesh

Alias

Mit swagify id1 id2 kann ein Funktionsalias erstellt werden.

id1 und id2 sind Identifier (siehe Variablen).

id1 ist der Name einer Funktion, die in PHP zur Verfügung steht. Diese kann dann im BoyScript-Programm als id2 verwendet werden.

Beispiel

swagify mysql_connect connecten

der Server ist "localhost"
der Benutzer ist "root"
das Passwort ist "123"

der Boy ist den Server sowie den Benutzer sowie das Passwort am connecten

Scripts einbinden

Mit expr reinballen wird das Script mit dem Pfad expr eingebunden.

Es muss der Pfad des kompilierten Script angegeben werden. Dieses wird nicht automatisch mitkompiliert.

Beispiel

"settings.php" reinballen

Alle Schlüsselworte

Alle Wörter, die in BoyScript interpretiert werden können. Diese sollten nicht als Identifier verwendet werden (Es würde in den meisten Fällen nicht zu Fehlern führen, aber die Lesbarkeit des Codes stark beeinträchtigen).

als am amk an ansonsten auf Boy ein eine einen enlargen da das dem den der die du durch Fresse geteilt gleich größer halt hoch Hurensohn identisch ist Klammer kleiner machste mal man minus mit nicht nix oder plus rausballen real reiballen Rest sein sind sheesh solange sowie Stelle swagify und ungleich wenn will zu zusammengeballt