Hi,
der Code läuft zwar nicht könnte dir aber evtl. weiterhelfen
Delphi-Quellcode:
Symbol = class(TObject)
procedure Add( aStr: string; aID: integer); overload;
private
StringList: TStringList;
FList : TList;
end;
Lexer = class(TObject)
constructor Create;
private
FFileName : string;
FData : string;
FPos : integer;
Table : Symbol;
end;
{ ... }
// Parser
procedure Symbol.Add(aStr: string; aID: integer);
begin
StringList.Add(AnsiLowerCase(aStr));
FList.Add(Pointer(aID));
end;
// Lexer
constructor Lexer.Create;
begin
Table := Symbol.Create;
with Table do
begin
Add( s_tok_Programm, c_tok_Programm );
Add( s_tok_Unit, c_tok_Unit);
Add( s_tok_Interface, c_tok_Interface);
Add( s_tok_Implementation, c_tok_Implementation);
Add( s_tok_Begin, c_tok_Begin);
Add( s_tok_End, c_tok_End);
end;
end;
Der Codeschnipsel schon, du musst dir halt noch gedanken darüber machen wie du den Parser aufrufst.