HSG

Aktuelle Seite: HSG/Fächer/Informatik/Material/Bonsai/Bonsai-Compiler

Definition der Sprache RePas durch Syntaxdiagramme

H.P.Gumm/M.Sommer: Einführung in die Informatik [EIDI], S. 121 :

Ein Syntaxdiagramm besteht aus Rechtecken, Ovalen und Pfeilen.
  • In den Rechtecken stehen Begriffe, die durch ein weiteres Syntaxdiagramm erklärt werden, sogenannte Nonterminale
  • In den Ovalen stehen lexikalische Elemente, also Symbole und Namen, sogenannte Terminale. Diese sind wörtlich in den Programmtext zu übernehmen.
  • Pfeile führen von einem Sprachelement zu einem im Anschluss daran erlaubten Sprachelement.
  • Jedes Syntaxdiagramm hat genau einen Eingang und genau einen Ausgang





Definition der Sprache 'RePas' in der erweiterten Backus-Naur-Form

Metasymbole: ::= "ist definiert als"
| "oder"
{ } Geschweifte Klammern sagen aus, daß die eingeschlossenen Symbole beliebig oft (auch keinmal) wiederholt werden dürfen.
[ ] Eckige Klammern besagen, daß die umschlossenen Symbole keinmal oder genau einmal erscheinen dürfen.
( ) Runde Klammern regeln Prioritäten
< >Spitze Klammern umschließen nicht-terminale Symbole
" "Anführungszeichen umschließen terminale Symbole


<Programm> ::= "PROGRAM" <Bezeichner> ";" <Block> "."
<Bezeichner> ::= <Buchstabe> { <Ziffer> | <Buchstabe> }
<Block> ::= <Deklaration> <Anweisungsteil>
<Deklaration> ::= [ "LABEL" <Bezeichner> { "," <Bezeichner> } ";" ]
[ "VAR" <Bezeichner> { "," <Bezeichner> } ":" ( "WORD" | "INTEGER" ) ";" ]
<Anweisungsteil> ::= "BEGIN" <Anweisung> { ";" <Anweisung> } "END"
<Anweisung> ::= { <Bezeichner> ":" }
( "Dec" "(" <Bezeichner> ")" |
"Inc" "(" <Bezeichner> ")" |
"IF" <Bezeichner> "= 0" "THEN" "GOTO" <Bezeichner> "ELSE" "GOTO" <Bezeichner> |
"GOTO" <Bezeichner> )
<Buchstabe> ::="A" | "B" | "C" | ... | "Z" | "a" | "b" | ... | "z"
<Ziffer> ::="0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"