Changeset 14 for branches/Void/UModel.pas
- Timestamp:
- Nov 10, 2009, 8:19:41 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Void/UModel.pas
r13 r14 9 9 10 10 type 11 TValueType = (vtVariable, vtNumber, vtString, vtFloat, vtChar); 12 11 13 TType = class 12 14 Name: string; … … 19 21 end; 20 22 23 TVariableValue = class 24 ValueType: TValueType; 25 VariableDef: TVariable; 26 StringConstant: string; 27 NumberConstant: Integer; 28 FloatConstant: Double; 29 CharConstant: Char; 30 end; 31 21 32 TCommand = class 22 33 Name: string; 23 Parameters: T StringList;34 Parameters: TList; 24 35 constructor Create; 25 36 destructor Destroy; override; … … 35 46 TProcedure = class 36 47 Name: string; 37 Parameters: T StringList;48 Parameters: TList; 38 49 BeginEnd: TBeginEnd; 39 50 constructor Create; 40 51 destructor Destroy; override; 41 52 end; 42 43 { TModule }44 53 45 54 TModule = class … … 119 128 constructor TCommand.Create; 120 129 begin 121 Parameters := T StringList.Create;130 Parameters := TList.Create; 122 131 end; 123 132 124 133 destructor TCommand.Destroy; 125 begin 134 var 135 I: Integer; 136 begin 137 for I := 0 to Parameters.Count - 1 do 138 TVariableValue(Parameters[I]).Destroy; 126 139 Parameters.Destroy; 127 140 inherited Destroy; … … 131 144 begin 132 145 BeginEnd := TBeginEnd.Create; 133 Parameters := T StringList.Create;146 Parameters := TList.Create; 134 147 end; 135 148 136 149 destructor TProcedure.Destroy; 137 begin 150 var 151 I: Integer; 152 begin 153 for I := 0 to Parameters.Count - 1 do 154 TVariableValue(Parameters[I]).Destroy; 138 155 Parameters.Destroy; 139 156 BeginEnd.Destroy; … … 173 190 begin 174 191 I := 0; 175 while (I < Variables.Count) and ( TVariable(Variables[I]).Name <> AName) do192 while (I < Variables.Count) and (LowerCase(TVariable(Variables[I]).Name) <> LowerCase(AName)) do 176 193 Inc(I); 177 194 if I < Variables.Count then Result := Variables[I] else Result := nil; … … 183 200 begin 184 201 I := 0; 185 while (I < Procedures.Count) and ( TProcedure(Procedures[I]).Name <> AName) do202 while (I < Procedures.Count) and (LowerCase(TProcedure(Procedures[I]).Name) <> LowerCase(AName)) do 186 203 Inc(I); 187 204 if I < Procedures.Count then Result := Procedures[I] else Result := nil; … … 211 228 with TProcedure(Procedures[Procedures.Add(TProcedure.Create)]) do begin 212 229 Name := 'WriteLn'; 230 with TVariable(Parameters[Parameters.Add(TVariable.Create)]) do begin 231 Name := 'Text'; 232 VarType := FindTypeByName('String'); 233 end; 213 234 end; 214 235 with TProcedure(Procedures[Procedures.Add(TProcedure.Create)]) do begin … … 236 257 begin 237 258 I := 0; 238 while (I < Types.Count) and ( TType(Types[I]).Name <> AName) do259 while (I < Types.Count) and (LowerCase(TType(Types[I]).Name) <> LowerCase(AName)) do 239 260 Inc(I); 240 261 if I < Types.Count then Result := Types[I] else Result := nil;
Note:
See TracChangeset
for help on using the changeset viewer.