TurboPL Referenz

Die Syntax von TurboPL

Top  Previous  Next

Bezeichner::=Buchstabe.

Ganzzahl::=Ziffer{Ziffer}.

Zahlenkonstante::=Ganzzahl["."Ganzzahl].

Datumskonstante::=Ganzzahl"."Ganzzahl"."Ganzzahl.

Zeitkonstante::=Ganzzahl":"Ganzzahl.

Zahl::=Zahlenkonstante|Datumskonstante|Zeitkonstante.

Stringkonstante::=('"'{Zeichen}'"')|("'"{Zeichen}"'").

Konstante::=Zahl|Stringkonstante.

Dimensionsangabe::="[" Ganzzahl { "," Ganzzahl } "]".

Typ::=(("REAL" | "STRING")[Dimensionsangabe]) | "RECORD" Bezeichner.

Zeichen::=Buchstabe|Ziffer|"-".

Wort::=Zeichen{Zeichen}.

Ausdruck::=Term {("+"|"-") Term}.

Term::=Faktor {("*"|"/"|"DIV"|"MOD") Faktor}.

Faktor:=["+"|"-"](Konstante|Userdef|Funktion|("("Ausdruck")"))[Teilstring].

Teilstring::="["Ganzzahl [","Ganzahl "]".

Userdef::=Feldzugriff|Variable|Userfunktion.

Variable::=Bezeichner[":="Ausdruck].

Feldzugriff::=["$"]Bezeichner{"."(Bezeichner|Ganzzahl)}.

Variable::=Bezeichner.

Userfunktion::=Bezeichner["("Ausdruck{","Ausdruck}")"].

Selektion::=lTerm {"OR" lTerm}.

lTerm::=lFaktor {"AND" lFaktor}.

lFaktor::=["NOT"](lRelation|("("Selektion")").

lRelation::=Ausdruck{lOperator Ausdruck}.

lOperator::="AB"|"BIS"|"VON"|"IST"|"KLEINER"|"GRÖßER"|
               "ÄHNLICH"|"ENTHÄLT"|"HAT"|"IN"|"WIE"|
               "="|"<>"|"#"|"<="|">="|"?".

Indexbeschreibung::=Hierach-Index | Berechnet-Index.

Hierach-Index::=Single-Index{","Single-Index}.

Single-Index::=Bezeichner[":" Zahl].

Berechnet-Index::="("Ausdruck")"[":"Zahl]

Modul::={Prozedur}.

Prozedur::=
               "PROCEDURE" Bezeichner [Parameterliste] [":" ("STRING"|"REAL")]
                               {Kommando}
               "ENDPROC".

Parameterliste::="(" Formalparameter {";" Formalparameter} ")".

Formalparameter::=["VAR"] Bezeichner {"," Bezeichner} ":" Typ.

Kommando::=
               Deklarationskommando | Ausführungskommando | Tabellenkommando.

Deklarationskommando::=Vardef|Let|Def|Const.

Vardef::="VARDEF" Bezeichner {"," Bezeichner} ":" Typ.

Let::="LET" Bezeichner "=" Ausdruck.

Def::="DEF" Bezeichner "=" Ausdruck.

Const::="Const" Bezeichner "=" Wert.

Ausführungskommando::=If | While | Repeat | Return | Report | Expressionlist.

If::=
               "IF" Selektion
                               {Kommando}
               {"ELSIF" Selektion
                               {Kommando}}
               ["ELSE"
                               {Kommando}]
               "END".

While::=
               "WHILE" Selektion
                               {Kommando}
               "END".

Repeat::=
               "REPEAT"
                               {Kommando}
               "UNTIL" Selektion.

Return::="RETURN" [Ausdruck].

Report::="REPORT" Bezeichner.

Expressionlist::=Ausdruck { ";" Ausdruck }.

Tabellenkommando::=Relation | Filter | Sub | PrimtableIs | Setaccess| Replace | Append.

Relation::="RELATION" [Reldef]{","Reldef}.

Reldef::=Statlink | Virttabelle | Zwangsverknüpfung.

Statlink::=Statlinkdef "=" Statlinkdef.

Statlinkdef::=Bezeichner"["Indexbescheibung"]"

Virttabelle::=Bezeichner"="Bezeichner.

Zwangsverknüpfung::=Bezeichner.

Filter::=                "FILTER" Indexexpression["/"Indexexprression].

Indexexpression::=Wort{","Wort}.

Sub::=
               "SUB" [Selektion]
                               {Kommando}
               "ENDSUB" [Indexbeschreibung].

Primtable::="PRIMTABLEIS" Bezeichner.

Setaccess::="SETACCESS" Bezeichner.

Replace::="REPLACE" Satzbeschreibung.

Satzbeschreibung::=Bezeichner"("Feldzuweisung{","Feldzuweisung}")".

Feldzuweisung::=Bezeichner "=" Ausdruck.

Append::=                "APPEND" Satzbeschreibung.