|
Expr2.om |
PROCEDURE Factor() : BOOLEAN; (* Factor = "(" Expression ")" | ("+" | "-") Factor | Constant . *) BEGIN IF sy = lparenSY THEN GetSy; IF ~Expression() OR (sy # rparenSY) THEN RETURN FALSE END; GetSy; RETURN TRUE ELSIF (sy = plusSY) OR (sy = minusSY) THEN GetSy; RETURN Factor() ELSE RETURN Constant() END; END Factor; |
Die Nonterminals repräsentierenden Prozeduren operieren
nun mit Terminal-Symbolen anstatt direkt mit Eingabe-Zeichen.
| |
Wichtig ist nun, daß bei der Aufsetzung der lexikalischen
Analyse noch NextCh vor dem ersten GetSy aufgerufen wird.
|
Expr2.om |
BEGIN (* Parse *) eof := FALSE; NextCh; GetSy; RETURN Expression() & (sy = eofSY) END Parse; |
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999 |