Thema: Delphi Zuweisungsscanner????

Einzelnen Beitrag anzeigen

Feechan

Registriert seit: 15. Feb 2005
17 Beiträge
 
#1

Zuweisungsscanner????

  Alt 26. Apr 2005, 20:05
Hallo!
Ich hänge seit einer Woche an diesem blöden Zuweisungsscanner und weiß echt nicht weiter, das ist die Aufgabe:
Ich soll eine Art Zuweisungsscanner implementieren, der aus einem edit-feld die einzelnen Bestandteile rauszieht, in einem Array in einer zweiten Unit speichert und dass ganze dann in einer Listbox wiedergibt. Dabei soll das ganze ungefähr so aussehen:

Eingetippt: a:=b;
Ausgabe:
a
:=
b
;

oder:

anna:=34 + jojo;

=>
anna
:=
34
+
jojo
;

Hier ist schon etwas quelltext:
Delphi-Quellcode:
unit zScanclss;

interface

type tTokenfolge=array[1..100] of string;
type tOperatormenge = set of '*'..'/'; //Menge von Zeichen (=char) von .. bis
                                       // bezogen auf den ASCII-Code
type tZuweisungsScanner = class
    private
      Tokenfolge: tTokenfolge;
      index : integer; // Aktueller Tokenfolgenindex
      Operatormenge: tOperatormenge;
    public
      constructor create;
      function isOperator(c: char): boolean;
      procedure makeTokenfolge(quelle : string);
      function getTokenfolge: tTokenfolge;
end;

implementation

constructor tZuweisungsScanner.create;
begin
 Operatormenge := ['*','+','-','/'];
 index:=0; // Noch kein Token ermittelt.
end;

function tZuweisungsScanner.isOperator(c: char): boolean;
begin
  result := (c in Operatormenge); // Ist c in der Menge enthalten?
end;

procedure tZuweisungsScanner.makeTokenfolge(quelle : string);
var l,x:integer;
begin
l:=length(quelle);
for x:=1 to l do begin
Tokenfolge[x]:=quelle[x];
end;
end;

function tZuweisungsScanner.getTokenfolge: tTokenfolge;
var i:integer;
begin
result[1]:=tokenfolge[1];
i:=1;
while tokenfolge[i+1]<>':do begin
result[1]:=result[i];
inc(i);
end;
result[2]:=':=';
//while
end;

end.
Da stellt sich mir immer die Frage:
Könnt ihr mir da helfen? Wär echt super!
Bye!
Fee
  Mit Zitat antworten Zitat