HSG

Aktuelle Seite: HSG/Fächer/Informatik/Material

Beispiel für eine Delphi-Realisierung eines Akzeptors



Download

akzeptor.zip

zugehörige Automatenbeschreibung

const
  { 0. Automatenname eintragen                 }
  automatname = 'Fließkomma-Akzeptor';
type
  { 1. Zustandsmenge, Eingabealphabet anpassen }
  TZustand = (s0,v1,z1,p,z2,e,v2,z3,f);
  TEingabe = (pm,ziff,exp,punkt,sonst);
const
  { 2. jeder Eingabe eine Menge von Zeichen zuordnen }
  Zeichen : array[TEingabe] of set of char =
            ( ['+','-'],
              ['0'..'9'],
              ['e','E'],
              ['.'],
              [chr(0)..chr(255)]-['+','-']-['0'..'9']-['e','E']-['.']);
  { 3. Startzustand eintragen                  }
  startzustand = s0;
  { 4. Endzustände eintragen                   }
  Endzustaende : set of TZustand = [z1,z2,z3];
  { 5. Klartextentsprechungen eintragen        }
  zText : array[TZustand] of string =
          ('Start','Vorzeichen1','Ziffernblock1','Punkt',
           'Ziffernblock2','Exp','Vorzeichen2',
           'Ziffernblock3','Fehler');
  eText : array[TEingabe] of string =
          ('pm','ziff','exp','punkt','sonst');
  { 6. Automatentafel eingeben                 }
  fue   : array[TZustand,TEingabe] of TZustand =
          ((v1,z1,f,f,f),
           (f,z1,f,f,f),
           (f,z1,e,p,f),
           (f,z2,f,f,f),
           (f,z2,e,f,f),
           (v2,z3,f,f,f),
           (f,z3,f,f,f),
           (f,z3,f,f,f),
           (f,f,f,f,f));