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
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 Zeichenkette:
- 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