hi leute
hab heute angefangen die variablen erstellung in einem selbstgemachten compiler
mach das zum erstenmal
und bekomme schon beim testen nen programmabsturz(AcessViolation)
hier der code...
Delphi-Quellcode:
unit Parse;
interface
uses Sysutils;
type
TParse =
Class
constructor Create;
private
procedure CreateVar(varT : Variant);
public
s : ^
String;
c : ^char;
i : ^integer;
r : ^real;
b : ^boolean;
arr :
array of Variant;
procedure get_setTyp(command : char;value : Variant);
overload;
procedure get_setTyp(command : char;value : char);
overload;
procedure freeAll;
end;
implementation
constructor TParse.Create;
begin
new(i);
new(r);
new(b);
new(S);
new(c);
end;
procedure TParse.CreateVar(varT : Variant);
begin
setLength(arr, high(arr)+1);
arr[high(arr)] := varT;
end;
procedure TParse.freeAll;
begin
dispose(i);
dispose(r);
dispose(b);
dispose(S);
dispose(c);
end;
procedure TParse.get_setTyp(command : char; value : Variant);
begin
case command
of
'
s' :
begin
S^ := value;
CreateVar(S^);
end;
'
i' :
begin
i^ := value;
CreateVar(i^);
end;
'
r' :
begin
r^ := value;
CreateVar(r^);
end;
'
b' :
begin
b^ := value;
CreateVar(b^);
end;
end;
end;
procedure TParse.get_setTyp(command, value: char);
begin
c^ := value;
CreateVar(c^);
end;
end.
aufruf im testprogramm
Delphi-Quellcode:
unit Compiler;
interface
uses Parse, SysUtils;
implementation
var p : TParse;
begin
p := TParse.Create();
p.get_setTyp('
s', '
hiii');
p.freeAll;
end.
könnt ihr mir da helfen?
danke
Nicodius