Deutsche Syntaxbeschreibung
LOGIK ::= EINGANG ZUWEISUNGEN AUSGANG;
EINGANG ::= 'Eingang' ( '=' | 'ist' | 'sind' ) LISTE_DER_EINGAENGE '.';LISTE_DER_EINGAENGE ::= EINGANGS_NAME { ',' EINGANGS_NAME };EINGANGS_NAME ::= [a-uA-U] [a-zA-Z0-9]*;AUSGANG ::= 'Ausgang' ( '=' | 'ist' | 'sind' ) LISTE_DER_AUSGAENGE '.';LISTE_DER_AUSGAENGE ::= { AUSGANGS_NAME | ',' AUSGANGS_NAME };AUSGANGS_NAME ::= [v-zV-Z] [a-zA-Z0-9]*;ZUWEISUNGEN ::= ZUWEISUNG { '.' ZUWEISUNG } '.';ZUWEISUNG ::= AUSGANGS_NAME ( '=' | 'ist' ) ( BELIEBIG_BEDINGUNG | WERT );WERT ::= AUSDRUCK [ BEDINGUNG ];BELIEBIG_BEDINGUNG ::= 'beliebig' BEDINGUNG;BEDINGUNG ::= 'wenn' AUSDRUCK;AUSDRUCK ::= [ NICHT ] TERM { 'und' [ NICHT ] TERM };NICHT ::= ( 'nicht' | '^' );TERM ::= FAKTOR { 'oder' FAKTOR };FAKTOR ::= [ NICHT ] ( NAME | '(' AUSDRUCK ')' );NAME ::= AUSGANGS_NAME | EINGANGS_NAME | FUNKTIONS_AUFRUF | 'wahr' | 'falsch' | '1' | '0';FUNKTIONS_AUFRUF ::= FUNKTIONS_NAME '(' LISTE_DER_AUSDRUECKE ')';FUNKTIONS_NAME ::= 'NAND' | 'NOR';LISTE_DER_AUSDRUECKE ::= AUSDRUCK { ',' AUSDRUCK };