BAL
Inhaltsverzeichnis
Die Sprache BAL
Die Sprache BAL ist sehr simpel aufgebaut und kennt lediglich
- Kommandos
- Prozeduren
- Funktionen
- Verzweigungen
- Kommentare
Kommandos
- Kommandos sind eine Abfolge von Prozeduren, die über den Kommandonamen gemeinsam aufgerufen und in der gegebenen Reihenfolge abgearbeitet werden.
- Kommandos werden selbst erstellt, während Prozeduren und Funktionen stets Bestandteil des Frameworks sind.
- Kommandos können auch innerhalb eines anderen Kommandos erstellt werden und haben dann eine Kommandonummer statt eines Kommandonamens, siehe
- Kommandos, die von anderen Kommandos aufgerufen werden, werden auch Sub-Kommandos genannt. So wäre z.B. lookup ein Kommando und lookup_sub ein Sub-Kommando. Kommandos, die keine Sub-Kommandos sind, nennt man auch Primär-Kommandos.
Prozeduren
- Jede Prozedur und damit jede Befehlszeile beginnt mit einem #-Zeichen.
- Nach dem Prozedurnamen kommt die Liste der Parameter. Die Parameter sind benannt, ihren Reihenfolge ist beliebig
- Die Parameter werden durch Leerzeichen getrennt. Beinhalten die Parameterwerte Strings mit Leerzeichen, so sind die Parameterwerte in doppelte Anführungszeichen einzuschließen.
- Ausnahme: Es gibt Prozeduren wie #sql oder #text, die keine benannten Parameter haben. Der komplette folgende Text nach einem Leerzeichen zwischen Prozedurname und Parameter ist dann der Parameter
Beispiele
#setval n=1 z="Dies ist ein Test" #sql select * from test
Tipps
- Zwischen den Parameters können auch mehrere Leerzeichen verwendet werden, um sie deutlicher voneinander zu trennen.
Funktionen
- Funktionen beginnen mit einem Dollarzeichen. Dem Funktionsnamen folgt immer eine Klammer für die Parameter, gegebenenfalls eine leere Klammer.
- Funktionen geben ein Ergebnis zurück.
- Funktionen können geschachtelt werden.
- Nach den Konventionen werden Funktionen in Großbuchstaben geschrieben.
Beispiele
#message c=$GUID() #setvar n=varname z="$UPP(Dies ist ein Test)"
Verzweigungen
Verzweigungen beginnen mit dem Zeichen ~ und enden mit dem Zeichen ~~.
Nach einem ~ steht eine Bedingung (oder mehrere Bedingungen, die mit AND oder OR verknüpft sind). Ergibt die Auswertung dieser Bedingung Y, werden die folgenden Zeilen (bis zum nächsten ~ oder ~~) ausgeführt, ansonsten nicht. Funktionen werden bei der Auswertung ersetzt.
Ähnlich einer case-Verzweigung sind mehrere Alternativen in der Verzweigung möglich. Es wird stets nur der erste Block ausgeführt, bei dem die Bedingung erfüllt ist, danach wird direkt zum ~~ gesprungen und danach die Ausführung des Kommandos fortgesetzt.
Beispiel
~ $LEN($EDT(edt1)) = 4 ... ~ $LEN($EDT(edt1)) > 4 ... ~ ... ~~
Kommentare
- Syntaktisch korrekt sind nur Kommentarzeilen, die mit zwei Minuszeichen beginnen. Der Interpreter geht jedoch über alles hinweg, was nicht syntaktisch korrekt ist, von daher können auch syntaktisch unkorrekte Kommentare verwendet werden.
- Nach einer Zeile, die mit vier Minuszeichen beginnt, wird die komplette Code-Seite beendet. Ein Bereich nach vier Minuszeichen wird häufig dazu verwendet, irgendwelchen Code oder irgendwelche Bemerkungen zu "lagern".
Beispiel
-- Dies ist ein syntaktisch korrekter Kommentar #setval n=1 z="Dies ist Test" -- Dies ist kein syntaktisch korrekter Kommentar, führt aber auch zu keinem Fehler ---- Und das hier wird gar nicht mehr berücksichtigt, da es hinter vier Minuszeichen steht.