Changeset 9 for branches/Void/UModel.pas
- Timestamp:
- Nov 9, 2009, 10:15:36 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Void/UModel.pas
r8 r9 21 21 end; 22 22 23 { TBeginEnd }24 25 23 TBeginEnd = class 26 24 Commands: TList; … … 28 26 destructor Destroy; override; 29 27 procedure Clear; 28 end; 29 30 TProcedure = class 31 Name: string; 32 Parameters: TStringList; 33 BeginEnd: TBeginEnd; 34 constructor Create; 35 destructor Destroy; override; 30 36 end; 31 37 … … 36 42 public 37 43 Variables: TList; 44 Procedures: TList; 38 45 BeginEnd: TBeginEnd; 39 46 function FindVariableByName(AName: string): TVariable; 47 function FindProcedureByName(AName: string): TProcedure; 48 procedure Init; 40 49 procedure Clear; 41 50 constructor Create; … … 51 60 Variables := TList.Create; 52 61 BeginEnd := TBeginEnd.Create; 62 Procedures := TList.Create; 53 63 end; 54 64 … … 60 70 TVariable(Variables[I]).Destroy; 61 71 Variables.Destroy; 72 for I := 0 to Procedures.Count - 1 do 73 TProcedure(Procedures[I]).Destroy; 74 Procedures.Destroy; 62 75 BeginEnd.Destroy; 63 76 inherited Destroy; … … 74 87 end; 75 88 89 function TModel.FindProcedureByName(AName: string): TProcedure; 90 var 91 I: Integer; 92 begin 93 I := 0; 94 while (I < Procedures.Count) and (TProcedure(Procedures[I]).Name <> AName) do 95 Inc(I); 96 if I < Procedures.Count then Result := Procedures[I] else Result := nil; 97 end; 98 99 procedure TModel.Init; 100 begin 101 with TProcedure(Procedures[Procedures.Add(TProcedure.Create)]) do begin 102 Name := 'WriteLn'; 103 end; 104 with TProcedure(Procedures[Procedures.Add(TProcedure.Create)]) do begin 105 Name := 'Exit'; 106 end; 107 with TProcedure(Procedures[Procedures.Add(TProcedure.Create)]) do begin 108 Name := 'ReadLn'; 109 end; 110 end; 111 76 112 procedure TModel.Clear; 77 113 var … … 82 118 Variables.Clear; 83 119 BeginEnd.Clear; 120 Init; 84 121 end; 85 122 … … 124 161 end; 125 162 163 constructor TProcedure.Create; 164 begin 165 BeginEnd := TBeginEnd.Create; 166 Parameters := TStringList.Create; 167 end; 168 169 destructor TProcedure.Destroy; 170 begin 171 Parameters.Destroy; 172 BeginEnd.Destroy; 173 inherited Destroy; 174 end; 175 126 176 end. 127 177
Note:
See TracChangeset
for help on using the changeset viewer.