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 };