Changeset 8 for branches/Void/UOutputGenerator.pas
- Timestamp:
- Nov 9, 2009, 9:47:57 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Void/UOutputGenerator.pas
r7 r8 54 54 procedure TPascalGenerator.Generate(Model: TModel); 55 55 var 56 I: Integer; 56 I, P: Integer; 57 ParameterText: string; 58 Row: string; 57 59 begin 58 60 inherited; … … 72 74 // Code block 73 75 Output.Add('begin'); 74 for I := 0 to Commands.Count - 1 do 75 with TCommand(Commands[I]) do 76 Output.Add(Text); 76 for I := 0 to BeginEnd.Commands.Count - 1 do 77 with TCommand(BeginEnd.Commands[I]) do begin 78 if Name = 'Assignment' then Output.Add(Parameters[0] + ' := ' + Parameters[1] + ';') 79 else begin 80 Row := Name; 81 if Parameters.Count > 0 then begin 82 ParameterText := ''; 83 for P := 0 to Parameters.Count - 1 do 84 ParameterText := ParameterText + Parameters[P] + ', '; 85 Row := Row + '(' + Copy(ParameterText, 1, Length(ParameterText) - 2) + ')'; 86 end; 87 Output.Add(Row + ';'); 88 end; 89 end; 77 90 Output.Add('end.'); 78 91 end; … … 82 95 83 96 procedure TCGenerator.Generate(Model: TModel); 84 begin 97 var 98 I, P: Integer; 99 Row: string; 100 ParameterText: string; 101 begin 85 102 inherited; 103 104 with Model do begin 105 // Prepare output 106 Output.Clear; 107 108 Output.Add('int main()'); 109 Output.Add('{'); 110 111 // variable section 112 for I := 0 to Variables.Count - 1 do 113 with TVariable(Variables[I]) do 114 Output.Add(' ' + VarType + ' ' + Name + ';'); 115 116 // Code block 117 for I := 0 to BeginEnd.Commands.Count - 1 do 118 with TCommand(BeginEnd.Commands[I]) do begin 119 if Name = 'Assignment' then Output.Add(Parameters[0] + ' = ' + Parameters[1] + ';') 120 else begin 121 Row := Name; 122 if Parameters.Count > 0 then begin 123 ParameterText := ''; 124 for P := 0 to Parameters.Count - 1 do 125 ParameterText := ParameterText + Parameters[P] + ', '; 126 Row := Row + '(' + Copy(ParameterText, 1, Length(ParameterText) - 2) + ')'; 127 end; 128 Output.Add(Row + ';'); 129 end; 130 end; 131 Output.Add('}'); 132 end; 86 133 end; 87 134
Note:
See TracChangeset
for help on using the changeset viewer.