Nachfolgend ist die Syntax von iG/Script in Backus Naur Form angegeben. Die Metazeichen haben folgende Bedeutung:
<s> | Schlüsselwort s |
[a] | a ist optional |
{a}+ | a kann 1 - N-mal wiederholt werden |
{a}* | a kann 0 - N-mal wiederholt werden |
a|b | a oder b |
iG/Script Syntax:
<Trennzeichen> := Newline, Return, Space oder Tabulator
<Kommentar> := ! gefolgt von beliebiger Zeichenfolge bis Zeilenende
<Zeichenkette> := beliebige Zeichenfolge ohne <Trennzeichen>
<iG/Script-Programm> := {<Deklarationen>}*
<Ausdruck>
<Deklarationen> := <Mapdeklaration>
:= <Prozedurdeklaration>
<Mapdeklaration> := MAP <Mapname>
{<Komponentenname> => <Komponentenwert>}*
END_MAP
<Prozdurdeklaration> := PROCEDURE <Prozedurname>
<Ausdruck>
END_PROCEDURE
<Ausdruck> := <Konstante>
:= <Methodenaufruf>
:= <Prozeduraufruf>
:= <Objekt>
:= <Referenz>
:= <Zuweisung>
:= <Abbildung>
:= <Bedingung>
:= <Displayausdruck>
:= <WHILE-Ausdruck>
:= <Breakanweisung>
:= <Continueanweisung>
:= <Returnanweisung>
:= <IF-Ausdruck>
:= {<Ausdruck>}+
Konstante := ganze Zahl (z.B. 0)
:= reelle Zahl (z.B. 1.0)
:= String
:= TRUE
:= FALSE
String := '<Zeichenkette>'
Methodenaufruf := <Klasse>.<Methodenname>
Prozeduraufruf := <Prozedurname>
Returnanweisung := RETURN
<Objekt> := [ROOT.]<Komponente>
<Komponente> := <Name> | <Komponente> . <Name>
<Name> := <Zeichenkette>
Zuweisung := => <Objekt>
-> <Objekt>
Abbildung := <Mapname>
Bedingung := <Ausdruck> = <Basistyp>
:= <Ausdruck> <> <Basistyp>
:= <Ausdruck> > <Basistyp>
:= <Ausdruck> < <Basistyp>
:= <boolscher Ausdruck>
Displayausdruck := DISPLAY <Displayliste>
:= ERROR <Displayliste>
:= STATUS <Displayliste>
<Displayliste> := {<Mapname>|<Objekt>|<String>|$}
{,<Mapname>|<Objekt>|<String>|$}*
WHILE-Ausdruck := WHILE <Bedingung> DO
<Ausdruck>
END_WHILE
Breakanweisung := BREAK
Continueanweisung := CONTINUE
IF-Ausdruck := IF <Bedingung> THEN
{ELSIF <Bedingung> THEN <Ausdruck>}*
[ELSE <Bedingung> THEN <Ausdruck>]
END_IF