Recursive Descent Parsing III

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Expr.om
PROCEDURE Constant() : BOOLEAN;
   (* Constant = "0" | "1" | ... | "9" . *)
BEGIN
   IF (sy >= "0") & (sy <= "9") THEN
      GetSy;
      RETURN TRUE
   ELSE
      RETURN FALSE
   END;
END Constant;

*In Oberon gilt strikt declare before use. Mit
PROCEDURE ^ Expression() : BOOLEAN;
wird die Prozedur Expression deklariert und kann sofort benutzt werden, wobei die volle Definition später noch folgen muß.
 
*Immer an die konstante Vorausschau von einem Terminal-Symbol denken:

*Zu Beginn jeder Prozedur, die ein Nonterminal repräsentiert, liegt das erste Terminal-Symbol bereits in sy vor.
 
*Bevor die Prozedur für ein anderes Nonterminal aufgerufen wird, muß darauf geachtet werden, ob dafür das erste Terminal-Symbol bereits eingelesen worden ist oder nicht.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999