Attribute II

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

Expr3.om
MODULE Expr3;

   IMPORT Args := UnixArguments, ASCII, Streams, Write;

   TYPE
      Attribute = INTEGER;
   VAR
      expr: Streams.Stream;
      at: Attribute;

   PROCEDURE Parse(s: Streams.Stream;
                   VAR at: Attribute) : BOOLEAN;
      (* parse input and return TRUE in case of success *)
   END Parse;

BEGIN
   Args.Init("expression");
   Args.Fetch(expr);
   IF Parse(expr, at) THEN
      Write.Int(at, 1); Write.Ln;
   ELSE
      Write.Line("Not an expression!");
   END;
   Args.AllArgs;
END Expr3.

*Parse und alle die Nonterminals repräsentierenden Prozeduren wurden um den VAR-Parameter at vom Typ Attribute erweitert.
 
*Da bei einem Taschenrechner nur die Ergebnisse interessant sind, kommen wir mit Attribute = INTEGER aus.
 

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