Changeset 76
- Timestamp:
- Oct 21, 2010, 1:20:57 PM (14 years ago)
- Location:
- branches/Transpascal
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Transpascal/Compiler/Analyze/UParser.pas
r74 r76 10 10 11 11 type 12 TOnErrorMessage = procedure(Text: string; Position: TPoint; FileName: string) of object; 12 TErrorMessageEvent = procedure(Text: string; Position: TPoint; FileName: string) of object; 13 TDebugLogEvent = procedure(Text: string) of object; 13 14 14 15 TParserState = (psNone, psIdentifier, psConstantNumber, psConstantString, 15 16 psOperator, psEndOfFile, psLineComment, psBlockComment1, psBlockComment2, 16 psUnknown, psWhiteSpace, psConstantStringEnd); 17 psUnknown, psWhiteSpace, psConstantStringEnd, psBlockComment1First, 18 psCompilerDirective, psNoneShift, psConstantHexNumber); 17 19 18 20 TTokenType = (ttNone, ttIdentifier, ttConstantNumber, ttConstantString, 19 21 ttOperator, ttEndOfFile, ttLineComment, ttBlockComment1, ttBlockComment2, 20 ttUnknown, ttWhiteSpace );22 ttUnknown, ttWhiteSpace, ttCompilerDirective); 21 23 22 24 TToken = class … … 31 33 private 32 34 FFileName: string; 33 FOnErrorMessage: TOnErrorMessage; 35 FOnDebugLog: TDebugLogEvent; 36 FOnErrorMessage: TErrorMessageEvent; 34 37 FNextToken: string; 35 38 FNextTokenType: TTokenType; … … 49 52 destructor Destroy; override; 50 53 function IsAlphanumeric(Character: char): boolean; 54 function IsNumeric(Character: char): boolean; 55 function IsHex(Character: char): boolean; 51 56 function IsWhiteSpace(Character: char): boolean; 52 57 function IsAlphabetic(Character: char): boolean; … … 60 65 procedure ErrorMessage(const Text: string; const Arguments: array of const; 61 66 TokenOffset: Integer); 62 property OnErrorMessage: TOnErrorMessage read FOnErrorMessage write FOnErrorMessage; 67 property OnErrorMessage: TErrorMessageEvent read FOnErrorMessage write FOnErrorMessage; 68 property OnDebugLog: TDebugLogEvent read FOnDebugLog write FOnDebugLog; 63 69 procedure Process; 70 procedure Log(Text: string); 64 71 property FileName: string read FFileName write FFileName; 65 72 end; … … 84 91 procedure TBaseParser.Expect(Code: string); 85 92 begin 93 Log('Expect: ' + Code); 86 94 if NextToken <> Code then begin 87 95 ErrorMessage(SExpectedButFound, [Code, NextToken], 0); … … 112 120 function TBaseParser.IsAlphanumeric(Character: char): boolean; 113 121 begin 114 Result := IsAlphabetic(Character) or (Character in ['0'..'9']); 122 Result := IsAlphabetic(Character) or IsNumeric(Character); 123 end; 124 125 function TBaseParser.IsNumeric(Character: char): boolean; 126 begin 127 Result := Character in ['0'..'9']; 128 end; 129 130 function TBaseParser.IsHex(Character: char): boolean; 131 begin 132 Result := IsNumeric(Character) or (Character in ['A'..'F']); 115 133 end; 116 134 … … 179 197 end; 180 198 199 procedure TBaseParser.Log(Text: string); 200 begin 201 if Assigned(FOnDebugLog) then 202 FOnDebugLog(Text); 203 end; 204 181 205 procedure TBaseParser.GetNextToken; 182 206 var … … 204 228 end; 205 229 206 if FParserState = psNonethen begin230 if (FParserState = psNone) or (FParserState = psNoneShift) then begin 207 231 TokenCodePosition := CodePosition; 208 232 if IsWhiteSpace(CurrentChar) then … … 210 234 else 211 235 if CurrentChar = '{' then begin 212 FParserState := psBlockComment1 ;236 FParserState := psBlockComment1First; 213 237 end else 214 238 if CurrentChar = '''' then begin 215 239 FParserState := psConstantString; 240 end else 241 if CurrentChar = '$' then begin 242 FParserState := psConstantHexNumber; 216 243 end else 217 244 if CurrentChar in SpecChar then begin … … 219 246 FNextToken := FNextToken + CurrentChar; 220 247 end else 221 if IsAlpha numeric(CurrentChar) then begin248 if IsAlphabetic(CurrentChar) then begin 222 249 FParserState := psIdentifier; 223 250 FNextToken := FNextToken + CurrentChar; 251 end else 252 if IsNumeric(CurrentChar) then begin 253 FPArserSTate := psConstantNumber; 254 FNextToken := FNextToken + CurrentChar; 224 255 end else FParserState := psUnknown; 225 256 end else 226 257 if FParserState = psLineComment then begin 227 258 if (CurrentChar = #13) or (CurrentChar = #10) then 259 FParserState := psNoneShift; 260 end else 261 if FParserState = psBlockComment1First then begin 262 if CurrentChar = '$' then FParserState := psCompilerDirective 263 else FParserSTate := psBlockComment1; 264 end else 265 if FParserState = psBlockComment1 then begin 266 if (CurrentChar = '}') then begin 267 FParserState := psNoneShift; 268 end; 269 end else 270 if FParserState = psCompilerDirective then begin 271 if (CurrentChar = '}') then begin 228 272 FParserState := psNone; 229 end else 230 if FParserState = psBlockComment1 then begin 231 if (CurrentChar = '}') then 232 FParserState := psNone; 273 FNextTokenType := ttCompilerDirective; 274 Break; 275 end; 233 276 end else 234 277 if FParserState = psBlockComment2 then begin 235 278 if (PreviousChar = '*') and (CurrentChar = ')') then 236 FParserState := psNone ;279 FParserState := psNoneShift; 237 280 end else 238 281 if FParserState = psConstantString then … … 249 292 FNextTokenType := ttConstantString; 250 293 Break; 294 end else 295 if FParserState = psConstantHexNumber then 296 begin 297 if not IsHex(CurrentChar) then begin 298 FParserState := psNone; 299 FNextTokenType := ttConstantNumber; 300 Break; 301 end else FNextToken := FNextToken + CurrentChar; 302 end else 303 if FParserState = psConstantNumber then 304 begin 305 if not IsNumeric(CurrentChar) then begin 306 FParserState := psNone; 307 FNextTokenType := ttConstantNumber; 308 Break; 309 end else FNextToken := FNextToken + CurrentChar; 251 310 end else 252 311 if FParserState = psOperator then … … 281 340 if FParserState = psIdentifier then 282 341 begin 283 if not IsAlphanumeric(CurrentChar) then begin342 if (not IsAlphanumeric(CurrentChar)) and (CurrentChar <> '_') then begin 284 343 FNextTokenType := ttIdentifier; 285 344 Break; … … 311 370 Inc(TokenIndex); 312 371 end else Result := ''; 372 Log('ReadCode: ' + Result); 313 373 end; 314 374 … … 318 378 Result := TToken(Tokens[TokenIndex]).Token; 319 379 end else Result := ''; 380 Log('NextToken: ' + Result); 320 381 end; 321 382 -
branches/Transpascal/Compiler/Analyze/UPascalParser.pas
r75 r76 37 37 procedure ParseVariable(SourceCode: TVariable; Exported: Boolean = False); 38 38 procedure ParseConstantList(SourceCode: TConstantList; Exported: Boolean = False); 39 procedure ParseTypeList(SourceCode: TTypeList; Exported: Boolean = False); 39 procedure ParseTypeList(SourceCode: TTypeList; Exported: Boolean = False; 40 AssignSymbol: string = '='); 40 41 function ParseType(TypeList: TTypeList; ExpectName: Boolean = True; AssignSymbol: string = '='): TType; 41 42 function ParseTypeEnumeration(TypeList: TTypeList; Name: string): TType; … … 71 72 Parser := TPascalParser.Create; 72 73 Parser.SourceCodeText := TStringList.Create; 74 Parser.OnDebugLog := OnDebugLog; 73 75 Parser.ProgramCode := ProgramCode; 74 76 Parser.OnGetSource := OnGetSource; … … 224 226 // TExpression(SubItems[1]).Value[I - 1] := Byte(Identifier[I]); 225 227 end else begin 226 TExpression(SubItems[1]).Value := StrToInt(Identifier);228 TExpression(SubItems[1]).Value := Identifier; 227 229 end; 228 230 end; … … 330 332 end else 331 333 if NextToken = ';' then 334 Result := nil 332 335 else begin 333 336 Result := nil; … … 565 568 566 569 // Parse function result type 567 if HaveResult then 568 begin 570 if HaveResult then begin 569 571 Expect(':'); 570 572 TypeName := ReadCode; 571 573 NewValueType := Parent.Types.Search(TypeName); 572 574 if not Assigned(NewValueType) then 573 ErrorMessage(SUndefinedType, [TypeName], -1) 574 else575 ErrorMessage(SUndefinedType, [TypeName], -1); 576 (* else 575 577 begin 576 578 ResultType := NewValueType; … … 581 583 ValueType := NewValueType; 582 584 end; 583 end; 585 end; *) 584 586 end; 585 587 end; … … 723 725 end else 724 726 ErrorMessage(SRedefineIdentifier, [ConstantName], -1); 725 Expect(':'); 726 TypeName := ReadCode; 727 NewValueType := Parent.Types.Search(TypeName); 727 if NextToken = ':' then begin 728 Expect(':'); 729 TypeName := ReadCode; 730 NewValueType := Parent.Types.Search(TypeName); 731 end; 728 732 Expect('='); 729 733 ConstantValue := ReadCode; … … 747 751 { TParserTypeList } 748 752 749 procedure TPascalParser.ParseTypeList(SourceCode: TTypeList; Exported: Boolean = False); 753 procedure TPascalParser.ParseTypeList(SourceCode: TTypeList; 754 Exported: Boolean = False; AssignSymbol: string = '='); 750 755 var 751 756 NewType: TType; … … 754 759 begin 755 760 while IsIdentificator(NextToken) do begin 756 NewType := ParseType(SourceCode );761 NewType := ParseType(SourceCode, True, AssignSymbol); 757 762 if Assigned(NewType) then begin 758 763 NewType.Parent := SourceCode; … … 766 771 { TParserType } 767 772 768 function TPascalParser.ParseType(TypeList: TTypeList; ExpectName: Boolean = True; AssignSymbol: string = '='): TType; 773 function TPascalParser.ParseType(TypeList: TTypeList; ExpectName: Boolean = True; 774 AssignSymbol: string = '='): TType; 769 775 var 770 776 Name: string; … … 778 784 end; 779 785 if NextToken = '(' then begin 786 // Enumeration 780 787 Result := ParseTypeEnumeration(TypeList, Name); 781 788 end else … … 817 824 end else 818 825 if NextToken = '^' then begin 826 // Pointer 819 827 Expect('^'); 820 828 Result := TTypePointer.Create; … … 824 832 end else 825 833 if NextToken = 'type' then begin 834 // Buildin base type construction 826 835 Expect('type'); 827 836 Result := TTypeInherited.Create; … … 834 843 end else TTypeInherited(Result).UsedType := nil; 835 844 end else begin 845 // Use existed type 836 846 TypeName := ReadCode; 837 847 if ExpectName then begin … … 890 900 SectionType := stVar; 891 901 Visibility := tvPublic; 892 Expect('record'); 893 Result := TTypeRecord.Create; 894 TTypeRecord(Result).Parent := TypeList; 895 TTypeRecord(Result).CommonBlock.Parent := TypeList.Parent; 896 TType(Result).Name := Name; 897 while (NextToken <> 'end') and (NextTokenType <> ttEndOfFile) do 898 begin 899 if NextToken = 'public' then begin 900 Expect('public'); 901 Visibility := tvPublic; 902 end else 903 if NextToken = 'private' then begin 904 Expect('private'); 905 Visibility := tvPrivate; 906 end else 907 if NextToken = 'published' then begin 908 Expect('published'); 909 Visibility := tvPublished; 910 end else 911 if NextToken = 'protected' then begin 912 Expect('protected'); 913 Visibility := tvProtected; 914 end else 915 if NextToken = 'var' then begin 916 Expect('var'); 917 SectionType := stVar 918 end else 919 if NextToken = 'const' then begin 920 Expect('const'); 921 SectionType := stConst 922 end else 923 if NextToken = 'type' then begin 924 Expect('type'); 925 SectionType := stType; 926 end; 927 928 if SectionType = stVar then begin 929 if NextToken = 'procedure' then 930 ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True) 931 else if NextToken = 'function' then 932 ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True) 933 else begin 902 Expect('record'); 903 Result := TTypeRecord.Create; 904 TTypeRecord(Result).Parent := TypeList; 905 TTypeRecord(Result).CommonBlock.Parent := TypeList.Parent; 906 TType(Result).Name := Name; 907 while (NextToken <> 'end') and (NextTokenType <> ttEndOfFile) do begin 908 if NextToken = 'public' then begin 909 Expect('public'); 910 Visibility := tvPublic; 911 end else 912 if NextToken = 'private' then begin 913 Expect('private'); 914 Visibility := tvPrivate; 915 end else 916 if NextToken = 'published' then begin 917 Expect('published'); 918 Visibility := tvPublished; 919 end else 920 if NextToken = 'protected' then begin 921 Expect('protected'); 922 Visibility := tvProtected; 923 end else 924 if NextToken = 'var' then begin 925 Expect('var'); 926 SectionType := stVar 927 end else 928 if NextToken = 'const' then begin 929 Expect('const'); 930 SectionType := stConst 931 end else 932 if NextToken = 'type' then begin 933 Expect('type'); 934 SectionType := stType; 935 end else 936 if NextToken = 'procedure' then 937 ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True) 938 else if NextToken = 'function' then 939 ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True) 940 else begin 941 if SectionType = stVar then begin 942 if IsIdentificator(NextToken) then 934 943 ParseVariableList(TTypeRecord(Result).CommonBlock.Variables, True) 935 //TTypeRecord(Result).CommonBlock.Types.Add(ParseType(TypeList, True, ':')); 936 //TType(TTypeRecord(Result).CommonBlock.Types.Last).Visibility := Visibility; 937 end; ParseVariableList(TTypeRecord(Result).CommonBlock.Variables) 938 end 939 else if SectionType = stConst then 940 ParseConstantList(TTypeRecord(Result).CommonBlock.Constants, True) 941 else if SectionType = stType then 942 ParseTypeList(TTypeRecord(Result).CommonBlock.Types, True); 943 end; 944 Expect('end'); 944 else ReadCode; 945 //TTypeRecord(Result).CommonBlock.Types.Add(ParseType(TypeList, True, ':')); 946 //TType(TTypeRecord(Result).CommonBlock.Types.Last).Visibility := Visibility; 947 end 948 else if SectionType = stConst then 949 ParseConstantList(TTypeRecord(Result).CommonBlock.Constants, True) 950 else if SectionType = stType then 951 ParseTypeList(TTypeRecord(Result).CommonBlock.Types, True, '='); 952 end; 953 end; 954 Expect('end'); 945 955 end; 946 956 -
branches/Transpascal/Compiler/Produce/UProducerC.pas
r75 r76 19 19 function TranslateType(Name: string): string; 20 20 function TranslateOperator(Name: string): string; 21 procedure Emit(AText: string; NewLine: Boolean = True); 21 procedure Emit(AText: string); 22 procedure EmitLn(AText: string = ''); 22 23 procedure GenerateUses(UsedModules: TUsedModuleList); 23 24 procedure GenerateModule(Module: TModule); … … 27 28 procedure GenerateTypes(Types: TTypeList); 28 29 procedure GenerateProgram(ProgramBlock: TProgram); 29 procedure GenerateFunctions(Functions: TFunctionList); 30 procedure GenerateFunctions(Functions: TFunctionList; 31 Prefix: string = ''); 30 32 procedure GenerateBeginEnd(BeginEnd: TBeginEnd); 31 33 procedure GenerateVariableList(VariableList: TVariableList); … … 94 96 end; 95 97 96 procedure TProducerC.Emit(AText: string; NewLine: Boolean = True); 98 procedure TProducerC.EmitLn(AText: string = ''); 99 begin 100 Emit(AText); 101 TextSource.Add(''); 102 end; 103 104 procedure TProducerC.Emit(AText: string); 97 105 begin 98 106 with TextSource do begin … … 101 109 Strings[Count - 1] := Strings[Count - 1] + DupeString(' ', IndentationLength * Indetation); 102 110 Strings[Count - 1] := Strings[Count - 1] + AText; 103 if NewLine then Add('');104 111 end; 105 112 end; … … 111 118 for I := 0 to UsedModules.Count - 1 do 112 119 if Dialect = pdDynamicC then 113 Emit ('#use "' + TUsedModule(UsedModules[I]).Name + '.lib"')114 else Emit ('#include "' + TUsedModule(UsedModules[I]).Name + '.h"');115 Emit ('');120 EmitLn('#use "' + TUsedModule(UsedModules[I]).Name + '.lib"') 121 else EmitLn('#include "' + TUsedModule(UsedModules[I]).Name + '.h"'); 122 EmitLn; 116 123 end; 117 124 118 125 procedure TProducerC.GenerateModule(Module: TModule); 119 126 begin 120 if Dialect = pdDynamicC then Emit ('#use "platform.lib"')121 else Emit ('#include "platform.h"');122 Emit ('');127 if Dialect = pdDynamicC then EmitLn('#use "platform.lib"') 128 else EmitLn('#include "platform.h"'); 129 EmitLn; 123 130 if Module is TModuleProgram then begin 124 131 TModuleProgram(Module).Body.Name := 'main'; … … 149 156 end; 150 157 151 procedure TProducerC.GenerateFunctions(Functions: TFunctionList); 158 procedure TProducerC.GenerateFunctions(Functions: TFunctionList; 159 Prefix: string = ''); 152 160 var 153 161 I: Integer; … … 157 165 for I := 0 to Functions.Count - 1 do 158 166 with TFunction(Functions[I]) do 159 if not System then 160 begin 161 if HaveResult then Line := TranslateType(ResultType.Name) + ' ' 167 if not System then begin 168 if HaveResult and Assigned(ResultType) then Line := TranslateType(ResultType.Name) + ' ' 162 169 else Line := 'void '; 163 Line := Line + Name + '(';170 Line := Line + Prefix + Name + '('; 164 171 if Parameters.Count > 0 then 165 172 for J := 0 to Parameters.Count - 1 do begin … … 169 176 end; 170 177 Line := Line + ')'; 171 Emit (Line);178 EmitLn(Line); 172 179 GenerateBeginEnd(Code); 173 Emit ('');180 EmitLn; 174 181 end; 175 182 end; … … 179 186 I: Integer; 180 187 begin 181 Emit ('{');188 EmitLn('{'); 182 189 Inc(Indetation); 183 190 … … 192 199 193 200 Dec(Indetation); 194 Emit ('}');201 EmitLn('}'); 195 202 end; 196 203 … … 201 208 for I := 0 to VariableList.Count - 1 do 202 209 GenerateVariable(TVariable(VariableList[I])); 203 // Emit ('');210 // EmitLn; 204 211 end; 205 212 … … 207 214 begin 208 215 with Variable do 209 Emit (TranslateType(ValueType.Name) + ' ' + Name + ';');216 EmitLn(TranslateType(ValueType.Name) + ' ' + Name + ';'); 210 217 end; 211 218 … … 222 229 procedure TProducerC.GenerateWhileDo(WhileDo: TWhileDo); 223 230 begin 224 Emit ('while (' + GenerateExpression(WhileDo.Condition) + ')');225 GenerateCommand(WhileDo.Command);231 EmitLn('while (' + GenerateExpression(WhileDo.Condition) + ')'); 232 if Assigned(WhileDo.Command) then GenerateCommand(WhileDo.Command); 226 233 end; 227 234 … … 229 236 begin 230 237 with ForToDo do begin 231 Emit('for(' + ControlVariable.Name + ' = ' + 238 if Assigned(ControlVariable) then 239 EmitLn('for(' + ControlVariable.Name + ' = ' + 232 240 GenerateExpression(Start) + '; ' + ControlVariable.Name + ' < ' + 233 241 GenerateExpression(Stop) + '; ' + ControlVariable.Name + '++)'); … … 238 246 procedure TProducerC.GenerateIfThenElse(IfThenElse: TIfThenElse); 239 247 begin 240 Emit ('if(' + GenerateExpression(IfThenElse.Condition) + ')');248 EmitLn('if(' + GenerateExpression(IfThenElse.Condition) + ')'); 241 249 GenerateCommand(IfThenElse.Command); 242 250 if Assigned(IfThenElse.ElseCommand) then begin 243 Emit ('else ');251 EmitLn('else '); 244 252 GenerateCommand(IfThenElse.ElseCommand); 245 253 end; … … 248 256 procedure TProducerC.GenerateAssignment(Assignment: TAssignment); 249 257 begin 250 if Assignment.Target.Name = 'Result' then Emit ('return(' + GenerateExpression(Assignment.Source) + ');')251 else Emit (Assignment.Target.Name + ' = ' + GenerateExpression(Assignment.Source) + ';');258 if Assignment.Target.Name = 'Result' then EmitLn('return(' + GenerateExpression(Assignment.Source) + ');') 259 else EmitLn(Assignment.Target.Name + ' = ' + GenerateExpression(Assignment.Source) + ';'); 252 260 end; 253 261 … … 266 274 end; 267 275 Line := Line + ');'; 268 Emit (Line);276 EmitLn(Line); 269 277 end; 270 278 end; … … 302 310 GenerateTypes(Types); 303 311 GenerateFunctions(Functions); 304 Emit ('void ' + Name + '()');312 EmitLn('void ' + Name + '()'); 305 313 GenerateBeginEnd(Code); 306 314 end; … … 313 321 if Assigned(AType) then begin 314 322 if AType is TTypeRecord then begin 315 Emit ('struct');316 Emit ('{');323 EmitLn('struct'); 324 EmitLn('{'); 317 325 Inc(Indetation); 318 326 GenerateVariableList(TTypeRecord(AType).CommonBlock.Variables); 319 327 Dec(Indetation); 320 Emit('} ' + TranslateType(AType.Name), False); 328 EmitLn('} ' + TranslateType(AType.Name) + ';'); 329 EmitLn; 330 GenerateFunctions(TTypeRecord(AType).CommonBlock.Functions, AType.Name + '_'); 321 331 end else 322 332 if AType is TTypeArray then begin 323 333 GenerateType(TTypeArray(AType).ItemType); 324 Emit ('* ', False);334 EmitLn('* '); 325 335 326 336 (* if Assigned(TTypeArray(AType).IndexType) then begin 327 Emit(AType.Name + '[' , False);328 Emit('[' , False);337 Emit(AType.Name + '['); 338 Emit('['); 329 339 GenerateType(TTypeArray(AType).IndexType); 330 Emit(']' , False);331 end; 332 Emit(' of ' , False);340 Emit(']'); 341 end; 342 Emit(' of '); 333 343 if Assigned(TTypeArray(AType).ItemType) then*) 334 Emit(TranslateType(AType.Name), False); 344 Emit(TranslateType(AType.Name)); 345 end else 346 if AType is TTypePointer then begin 347 if Assigned(AType.UsedType) then begin 348 Emit(AType.UsedType.Name); 349 Emit(' *'); 350 end; 351 Emit(TranslateType(AType.Name)); 335 352 end else begin 336 353 if Assigned(AType.UsedType) then begin 337 354 //GenerateType(AType.UsedType); 338 Emit(AType.UsedType.Name , False);339 Emit(' ' , False);340 end; 341 Emit(TranslateType(AType.Name) , False);355 Emit(AType.UsedType.Name); 356 Emit(' '); 357 end; 358 Emit(TranslateType(AType.Name)); 342 359 end; 343 360 end; … … 353 370 with TType(Types[I]) do 354 371 if (not System) then begin 355 Emit('typedef ' , False);372 Emit('typedef '); 356 373 GenerateType(TType(Types[I])); 357 Emit (';');374 EmitLn(';'); 358 375 end; 359 376 Dec(Indetation); 360 Emit(''); 361 end; 362 end; 363 364 377 EmitLn(''); 378 end; 379 end; 365 380 366 381 end. -
branches/Transpascal/Compiler/UCompiler.pas
r75 r76 32 32 TCompiler = class 33 33 private 34 FOnErrorMessage: T OnErrorMessage;34 FOnErrorMessage: TErrorMessageEvent; 35 35 procedure ErrorMessage(Text: string; Position: TPoint; FileName: string); 36 36 public … … 47 47 procedure Init; 48 48 procedure Compile(ModuleName: string; Source: TStringList); 49 property OnErrorMessage: T OnErrorMessageread FOnErrorMessage49 property OnErrorMessage: TErrorMessageEvent read FOnErrorMessage 50 50 write FOnErrorMessage; 51 51 end; -
branches/Transpascal/Compiler/USourceCode.pas
r73 r76 770 770 with TUsedModule(UsedModules[I]) do 771 771 with Module do 772 Result := SearchType(AName, False);772 Result := SearchType(AName, False); 773 773 Inc(I); 774 774 end; -
branches/Transpascal/Forms/UMainForm.pas
r74 r76 10 10 UProducerC, ComCtrls, ExtCtrls, SynEdit, SynHighlighterPas, UProducerTreeView, 11 11 UProducerPascal, Contnrs, UProject, FileUtil, Menus, ActnList, UCoolDocking, 12 UCompiledForm, UCodeTreeForm, URegistry, ULastOpenedList, UApplicationInfo; 12 UCompiledForm, UCodeTreeForm, URegistry, ULastOpenedList, UApplicationInfo, 13 UDebugLog; 13 14 14 15 const … … 58 59 LastOpenedFiles: TLastOpenedList; 59 60 ReopenLastOpenedFile: Boolean; 61 procedure CompilerDebugLog(Text: string); 60 62 procedure OpenRecentClick(Sender: TObject); 61 63 procedure DockInit; … … 208 210 procedure TMainForm.FormCreate(Sender: TObject); 209 211 begin 212 DebugLog.FileName := 'DebugLog.txt'; 213 DeleteFile(DebugLog.FileName); 210 214 Compiler := TCompiler.Create; 215 Compiler.Parser.OnDebugLog := CompilerDebugLog; 211 216 Project := TProject.Create; 212 217 LastOpenedFiles := TLastOpenedList.Create; … … 222 227 end; 223 228 229 procedure TMainForm.CompilerDebugLog(Text: string); 230 begin 231 DebugLog.Add('', Text); 232 end; 233 224 234 procedure TMainForm.OpenRecentClick(Sender: TObject); 225 235 begin -
branches/Transpascal/Transpascal.lpi
r75 r76 46 46 </Item4> 47 47 </RequiredPackages> 48 <Units Count="4 3">48 <Units Count="46"> 49 49 <Unit0> 50 50 <Filename Value="Transpascal.lpr"/> 51 51 <IsPartOfProject Value="True"/> 52 52 <UnitName Value="Transpascal"/> 53 <EditorIndex Value=" 11"/>53 <EditorIndex Value="0"/> 54 54 <WindowIndex Value="0"/> 55 55 <TopLine Value="7"/> 56 <CursorPos X=" 35" Y="23"/>56 <CursorPos X="45" Y="18"/> 57 57 <UsageCount Value="215"/> 58 58 <Loaded Value="True"/> … … 68 68 <EditorIndex Value="9"/> 69 69 <WindowIndex Value="0"/> 70 <TopLine Value=" 97"/>71 <CursorPos X=" 43" Y="112"/>70 <TopLine Value="210"/> 71 <CursorPos X="31" Y="213"/> 72 72 <UsageCount Value="215"/> 73 73 <Loaded Value="True"/> 74 <LoadedDesigner Value="True"/>75 74 <DefaultSyntaxHighlighter Value="Delphi"/> 76 75 </Unit1> … … 91 90 <TopLine Value="745"/> 92 91 <CursorPos X="46" Y="759"/> 93 <UsageCount Value="1 50"/>92 <UsageCount Value="149"/> 94 93 <DefaultSyntaxHighlighter Value="Delphi"/> 95 94 </Unit3> … … 100 99 <TopLine Value="1"/> 101 100 <CursorPos X="40" Y="11"/> 102 <UsageCount Value="1 50"/>101 <UsageCount Value="149"/> 103 102 <DefaultSyntaxHighlighter Value="Delphi"/> 104 103 </Unit4> … … 109 108 <TopLine Value="187"/> 110 109 <CursorPos X="34" Y="201"/> 111 <UsageCount Value="1 50"/>110 <UsageCount Value="149"/> 112 111 </Unit5> 113 112 <Unit6> … … 117 116 <TopLine Value="1"/> 118 117 <CursorPos X="1" Y="14"/> 119 <UsageCount Value="1 50"/>118 <UsageCount Value="149"/> 120 119 </Unit6> 121 120 <Unit7> … … 125 124 <TopLine Value="124"/> 126 125 <CursorPos X="42" Y="136"/> 127 <UsageCount Value="1 50"/>126 <UsageCount Value="149"/> 128 127 </Unit7> 129 128 <Unit8> … … 133 132 <TopLine Value="442"/> 134 133 <CursorPos X="47" Y="455"/> 135 <UsageCount Value="1 50"/>134 <UsageCount Value="149"/> 136 135 </Unit8> 137 136 <Unit9> … … 141 140 <TopLine Value="78"/> 142 141 <CursorPos X="27" Y="86"/> 143 <UsageCount Value="4 2"/>142 <UsageCount Value="41"/> 144 143 </Unit9> 145 144 <Unit10> … … 148 147 <TopLine Value="61"/> 149 148 <CursorPos X="7" Y="68"/> 150 <UsageCount Value="5 2"/>149 <UsageCount Value="51"/> 151 150 </Unit10> 152 151 <Unit11> … … 155 154 <TopLine Value="139"/> 156 155 <CursorPos X="16" Y="146"/> 157 <UsageCount Value="5 2"/>156 <UsageCount Value="51"/> 158 157 </Unit11> 159 158 <Unit12> … … 163 162 <TopLine Value="69"/> 164 163 <CursorPos X="1" Y="82"/> 165 <UsageCount Value="11 2"/>164 <UsageCount Value="111"/> 166 165 </Unit12> 167 166 <Unit13> 168 167 <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\classes\classesh.inc"/> 169 <WindowIndex Value="0"/> 170 <TopLine Value="19"/> 171 <CursorPos X="4" Y="32"/> 172 <UsageCount Value="9"/> 168 <EditorIndex Value="3"/> 169 <WindowIndex Value="0"/> 170 <TopLine Value="724"/> 171 <CursorPos X="15" Y="743"/> 172 <UsageCount Value="12"/> 173 <Loaded Value="True"/> 173 174 </Unit13> 174 175 <Unit14> … … 178 179 <TopLine Value="320"/> 179 180 <CursorPos X="1" Y="327"/> 180 <UsageCount Value="6 6"/>181 <UsageCount Value="65"/> 181 182 </Unit14> 182 183 <Unit15> … … 184 185 <IsPartOfProject Value="True"/> 185 186 <UnitName Value="UProject"/> 186 <EditorIndex Value="8"/>187 187 <WindowIndex Value="0"/> 188 188 <TopLine Value="3"/> 189 189 <CursorPos X="50" Y="10"/> 190 <UsageCount Value="178"/> 191 <Loaded Value="True"/> 190 <UsageCount Value="187"/> 192 191 <DefaultSyntaxHighlighter Value="Delphi"/> 193 192 </Unit15> … … 197 196 <TopLine Value="17"/> 198 197 <CursorPos X="11" Y="30"/> 199 <UsageCount Value=" 5"/>198 <UsageCount Value="4"/> 200 199 </Unit16> 201 200 <Unit17> … … 205 204 <TopLine Value="1"/> 206 205 <CursorPos X="33" Y="1"/> 207 <UsageCount Value=" 30"/>206 <UsageCount Value="29"/> 208 207 </Unit17> 209 208 <Unit18> 210 209 <Filename Value="Compiler\UCompiler.pas"/> 211 210 <UnitName Value="UCompiler"/> 212 <EditorIndex Value="1 "/>213 <WindowIndex Value="0"/> 214 <TopLine Value=" 92"/>215 <CursorPos X=" 15" Y="98"/>216 <UsageCount Value="8 0"/>211 <EditorIndex Value="10"/> 212 <WindowIndex Value="0"/> 213 <TopLine Value="28"/> 214 <CursorPos X="8" Y="28"/> 215 <UsageCount Value="85"/> 217 216 <Loaded Value="True"/> 218 217 </Unit18> … … 220 219 <Filename Value="Compiler\USourceCode.pas"/> 221 220 <UnitName Value="USourceCode"/> 222 <EditorIndex Value="10"/> 223 <WindowIndex Value="0"/> 224 <TopLine Value="144"/> 225 <CursorPos X="38" Y="158"/> 226 <UsageCount Value="79"/> 221 <IsVisibleTab Value="True"/> 222 <EditorIndex Value="8"/> 223 <WindowIndex Value="0"/> 224 <TopLine Value="759"/> 225 <CursorPos X="63" Y="764"/> 226 <UsageCount Value="81"/> 227 227 <Loaded Value="True"/> 228 228 </Unit19> … … 230 230 <Filename Value="Compiler\Analyze\UParser.pas"/> 231 231 <UnitName Value="UParser"/> 232 <EditorIndex Value=" 4"/>233 <WindowIndex Value="0"/> 234 <TopLine Value=" 79"/>235 <CursorPos X=" 23" Y="88"/>236 <UsageCount Value="8 0"/>232 <EditorIndex Value="1"/> 233 <WindowIndex Value="0"/> 234 <TopLine Value="365"/> 235 <CursorPos X="48" Y="377"/> 236 <UsageCount Value="85"/> 237 237 <Loaded Value="True"/> 238 238 </Unit20> … … 243 243 <ResourceBaseClass Value="Form"/> 244 244 <UnitName Value="UProjectManager"/> 245 <EditorIndex Value="3"/>246 245 <WindowIndex Value="0"/> 247 246 <TopLine Value="33"/> 248 247 <CursorPos X="29" Y="44"/> 249 <UsageCount Value="162"/> 250 <Loaded Value="True"/> 248 <UsageCount Value="171"/> 251 249 <DefaultSyntaxHighlighter Value="Delphi"/> 252 250 </Unit21> … … 257 255 <ResourceBaseClass Value="Form"/> 258 256 <UnitName Value="UCodeForm"/> 259 <EditorIndex Value="0"/>260 257 <WindowIndex Value="0"/> 261 258 <TopLine Value="1"/> 262 259 <CursorPos X="26" Y="17"/> 263 <UsageCount Value="162"/> 264 <Loaded Value="True"/> 265 <LoadedDesigner Value="True"/> 260 <UsageCount Value="171"/> 266 261 <DefaultSyntaxHighlighter Value="Delphi"/> 267 262 </Unit22> … … 272 267 <ResourceBaseClass Value="Form"/> 273 268 <UnitName Value="UMessagesForm"/> 274 <EditorIndex Value="5"/>275 269 <WindowIndex Value="0"/> 276 270 <TopLine Value="11"/> 277 271 <CursorPos X="38" Y="76"/> 278 <UsageCount Value="162"/> 279 <Loaded Value="True"/> 272 <UsageCount Value="171"/> 280 273 <DefaultSyntaxHighlighter Value="Delphi"/> 281 274 </Unit23> … … 287 280 <ResourceBaseClass Value="Form"/> 288 281 <UnitName Value="UCompiledForm"/> 282 <EditorIndex Value="5"/> 289 283 <WindowIndex Value="0"/> 290 284 <TopLine Value="5"/> 291 285 <CursorPos X="28" Y="21"/> 292 <UsageCount Value="161"/> 286 <UsageCount Value="170"/> 287 <Loaded Value="True"/> 293 288 <DefaultSyntaxHighlighter Value="Delphi"/> 294 289 </Unit24> … … 302 297 <TopLine Value="1"/> 303 298 <CursorPos X="1" Y="1"/> 304 <UsageCount Value="1 61"/>299 <UsageCount Value="170"/> 305 300 <DefaultSyntaxHighlighter Value="Delphi"/> 306 301 </Unit25> … … 311 306 <TopLine Value="291"/> 312 307 <CursorPos X="54" Y="304"/> 313 <UsageCount Value="2 8"/>308 <UsageCount Value="27"/> 314 309 </Unit26> 315 310 <Unit27> … … 319 314 <TopLine Value="316"/> 320 315 <CursorPos X="14" Y="329"/> 321 <UsageCount Value="2 8"/>316 <UsageCount Value="27"/> 322 317 </Unit27> 323 318 <Unit28> … … 326 321 <TopLine Value="1756"/> 327 322 <CursorPos X="31" Y="1770"/> 328 <UsageCount Value="2 5"/>323 <UsageCount Value="24"/> 329 324 </Unit28> 330 325 <Unit29> … … 332 327 <IsPartOfProject Value="True"/> 333 328 <UnitName Value="URegistry"/> 334 <UsageCount Value="1 54"/>329 <UsageCount Value="163"/> 335 330 <DefaultSyntaxHighlighter Value="Delphi"/> 336 331 </Unit29> … … 339 334 <IsPartOfProject Value="True"/> 340 335 <UnitName Value="ULastOpenedList"/> 341 <UsageCount Value="1 54"/>336 <UsageCount Value="163"/> 342 337 <DefaultSyntaxHighlighter Value="Delphi"/> 343 338 </Unit30> … … 346 341 <IsPartOfProject Value="True"/> 347 342 <UnitName Value="UApplicationInfo"/> 348 <UsageCount Value="1 53"/>343 <UsageCount Value="162"/> 349 344 <DefaultSyntaxHighlighter Value="Delphi"/> 350 345 </Unit31> … … 352 347 <Filename Value="Compiler\Produce\UProducerC.pas"/> 353 348 <UnitName Value="UProducerC"/> 354 <IsVisibleTab Value="True"/>355 349 <EditorIndex Value="7"/> 356 350 <WindowIndex Value="0"/> 357 <TopLine Value=" 197"/>358 <CursorPos X=" 3" Y="203"/>359 <UsageCount Value=" 76"/>351 <TopLine Value="227"/> 352 <CursorPos X="22" Y="240"/> 353 <UsageCount Value="80"/> 360 354 <Loaded Value="True"/> 361 355 </Unit32> … … 366 360 <TopLine Value="1"/> 367 361 <CursorPos X="1" Y="1"/> 368 <UsageCount Value="2 4"/>362 <UsageCount Value="23"/> 369 363 </Unit33> 370 364 <Unit34> … … 374 368 <TopLine Value="99"/> 375 369 <CursorPos X="57" Y="112"/> 376 <UsageCount Value="2 1"/>370 <UsageCount Value="20"/> 377 371 </Unit34> 378 372 <Unit35> 379 373 <Filename Value=""/> 380 <UsageCount Value=" 1"/>374 <UsageCount Value="0"/> 381 375 <DefaultSyntaxHighlighter Value="None"/> 382 376 </Unit35> … … 384 378 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 385 379 <UnitName Value="UPascalParser"/> 386 <EditorIndex Value=" 2"/>387 <WindowIndex Value="0"/> 388 <TopLine Value=" 715"/>389 <CursorPos X="2 6" Y="735"/>390 <UsageCount Value="5 5"/>380 <EditorIndex Value="6"/> 381 <WindowIndex Value="0"/> 382 <TopLine Value="298"/> 383 <CursorPos X="20" Y="334"/> 384 <UsageCount Value="59"/> 391 385 <Loaded Value="True"/> 392 386 </Unit36> … … 394 388 <Filename Value="Compiler\Analyze\UGrammer.pas"/> 395 389 <UnitName Value="UGrammer"/> 396 <EditorIndex Value="12"/>397 390 <WindowIndex Value="0"/> 398 391 <TopLine Value="15"/> 399 392 <CursorPos X="1" Y="28"/> 400 <UsageCount Value="53"/> 401 <Loaded Value="True"/> 393 <UsageCount Value="54"/> 402 394 </Unit37> 403 395 <Unit38> 404 396 <Filename Value="E:\Programy\Lazarus\components\synedit\synedit.pp"/> 405 397 <UnitName Value="SynEdit"/> 406 <EditorIndex Value="6"/>407 398 <WindowIndex Value="0"/> 408 399 <TopLine Value="828"/> 409 400 <CursorPos X="27" Y="841"/> 410 <UsageCount Value="31"/> 411 <Loaded Value="True"/> 401 <UsageCount Value="30"/> 412 402 </Unit38> 413 403 <Unit39> … … 417 407 <TopLine Value="56"/> 418 408 <CursorPos X="3" Y="69"/> 419 <UsageCount Value=" 5"/>409 <UsageCount Value="4"/> 420 410 </Unit39> 421 411 <Unit40> … … 425 415 <TopLine Value="113"/> 426 416 <CursorPos X="3" Y="120"/> 427 <UsageCount Value=" 5"/>417 <UsageCount Value="4"/> 428 418 </Unit40> 429 419 <Unit41> … … 432 422 <TopLine Value="1"/> 433 423 <CursorPos X="24" Y="11"/> 434 <UsageCount Value=" 5"/>424 <UsageCount Value="4"/> 435 425 </Unit41> 436 426 <Unit42> 437 427 <Filename Value="Compiler\Analyze\x.sss"/> 438 <UnitName Value="Unit1"/>439 428 <WindowIndex Value="0"/> 440 429 <TopLine Value="1"/> 441 430 <CursorPos X="17" Y="5"/> 442 <UsageCount Value=" 20"/>431 <UsageCount Value="19"/> 443 432 <DefaultSyntaxHighlighter Value="None"/> 444 433 </Unit42> 434 <Unit43> 435 <Filename Value="Compiler\Analyze\System.pas"/> 436 <UnitName Value="System"/> 437 <WindowIndex Value="0"/> 438 <TopLine Value="1"/> 439 <CursorPos X="8" Y="8"/> 440 <UsageCount Value="19"/> 441 </Unit43> 442 <Unit44> 443 <Filename Value="Common\UDebugLog.pas"/> 444 <IsPartOfProject Value="True"/> 445 <UnitName Value="UDebugLog"/> 446 <EditorIndex Value="2"/> 447 <WindowIndex Value="0"/> 448 <TopLine Value="42"/> 449 <CursorPos X="42" Y="55"/> 450 <UsageCount Value="24"/> 451 <Loaded Value="True"/> 452 <DefaultSyntaxHighlighter Value="Delphi"/> 453 </Unit44> 454 <Unit45> 455 <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\classes\streams.inc"/> 456 <EditorIndex Value="4"/> 457 <WindowIndex Value="0"/> 458 <TopLine Value="365"/> 459 <CursorPos X="5" Y="370"/> 460 <UsageCount Value="12"/> 461 <Loaded Value="True"/> 462 </Unit45> 445 463 </Units> 446 464 <JumpHistory Count="30" HistoryIndex="29"> 447 465 <Position1> 448 <Filename Value="Com piler\Produce\UProducerC.pas"/>449 <Caret Line=" 132" Column="15" TopLine="128"/>466 <Filename Value="Common\UDebugLog.pas"/> 467 <Caret Line="48" Column="1" TopLine="41"/> 450 468 </Position1> 451 469 <Position2> 452 <Filename Value="Com piler\Produce\UProducerC.pas"/>453 <Caret Line=" 128" Column="18" TopLine="116"/>470 <Filename Value="Common\UDebugLog.pas"/> 471 <Caret Line="49" Column="1" TopLine="41"/> 454 472 </Position2> 455 473 <Position3> 456 <Filename Value="Com piler\Produce\UProducerC.pas"/>457 <Caret Line=" 290" Column="19" TopLine="283"/>474 <Filename Value="Common\UDebugLog.pas"/> 475 <Caret Line="51" Column="1" TopLine="41"/> 458 476 </Position3> 459 477 <Position4> 460 <Filename Value="Com piler\Analyze\UPascalParser.pas"/>461 <Caret Line=" 634" Column="25" TopLine="621"/>478 <Filename Value="Common\UDebugLog.pas"/> 479 <Caret Line="52" Column="1" TopLine="41"/> 462 480 </Position4> 463 481 <Position5> 464 <Filename Value="Com piler\Analyze\UPascalParser.pas"/>465 <Caret Line="4 38" Column="30" TopLine="415"/>482 <Filename Value="Common\UDebugLog.pas"/> 483 <Caret Line="47" Column="1" TopLine="41"/> 466 484 </Position5> 467 485 <Position6> 468 <Filename Value="Com piler\Analyze\UPascalParser.pas"/>469 <Caret Line=" 439" Column="7" TopLine="415"/>486 <Filename Value="Common\UDebugLog.pas"/> 487 <Caret Line="53" Column="1" TopLine="41"/> 470 488 </Position6> 471 489 <Position7> 472 <Filename Value="Com piler\Analyze\UPascalParser.pas"/>473 <Caret Line=" 452" Column="1" TopLine="439"/>490 <Filename Value="Common\UDebugLog.pas"/> 491 <Caret Line="52" Column="1" TopLine="41"/> 474 492 </Position7> 475 493 <Position8> 476 <Filename Value="Com piler\Analyze\UPascalParser.pas"/>477 <Caret Line=" 428" Column="23" TopLine="416"/>494 <Filename Value="Common\UDebugLog.pas"/> 495 <Caret Line="55" Column="1" TopLine="41"/> 478 496 </Position8> 479 497 <Position9> 480 <Filename Value="Com piler\Analyze\UPascalParser.pas"/>481 <Caret Line=" 458" Column="9" TopLine="445"/>498 <Filename Value="Common\UDebugLog.pas"/> 499 <Caret Line="53" Column="27" TopLine="41"/> 482 500 </Position9> 483 501 <Position10> 484 502 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 485 <Caret Line="9 30" Column="13" TopLine="917"/>503 <Caret Line="940" Column="1" TopLine="927"/> 486 504 </Position10> 487 505 <Position11> 488 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>489 <Caret Line=" 933" Column="89" TopLine="917"/>506 <Filename Value="Compiler\Produce\UProducerC.pas"/> 507 <Caret Line="221" Column="1" TopLine="208"/> 490 508 </Position11> 491 509 <Position12> 492 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>493 <Caret Line=" 459" Column="26" TopLine="445"/>510 <Filename Value="Compiler\Produce\UProducerC.pas"/> 511 <Caret Line="222" Column="1" TopLine="208"/> 494 512 </Position12> 495 513 <Position13> 496 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>497 <Caret Line=" 942" Column="25" TopLine="923"/>514 <Filename Value="Compiler\Produce\UProducerC.pas"/> 515 <Caret Line="232" Column="1" TopLine="211"/> 498 516 </Position13> 499 517 <Position14> 500 518 <Filename Value="Compiler\Produce\UProducerC.pas"/> 501 <Caret Line=" 310" Column="39" TopLine="296"/>519 <Caret Line="222" Column="1" TopLine="211"/> 502 520 </Position14> 503 521 <Position15> 504 522 <Filename Value="Compiler\Produce\UProducerC.pas"/> 505 <Caret Line=" 306" Column="12" TopLine="296"/>523 <Caret Line="198" Column="1" TopLine="185"/> 506 524 </Position15> 507 525 <Position16> 508 526 <Filename Value="Compiler\Produce\UProducerC.pas"/> 509 <Caret Line=" 329" Column="10" TopLine="308"/>527 <Caret Line="222" Column="1" TopLine="209"/> 510 528 </Position16> 511 529 <Position17> 512 530 <Filename Value="Compiler\Produce\UProducerC.pas"/> 513 <Caret Line=" 345" Column="16" TopLine="330"/>531 <Caret Line="232" Column="1" TopLine="211"/> 514 532 </Position17> 515 533 <Position18> 516 534 <Filename Value="Compiler\Produce\UProducerC.pas"/> 517 <Caret Line=" 313" Column="14" TopLine="311"/>535 <Caret Line="221" Column="1" TopLine="211"/> 518 536 </Position18> 519 537 <Position19> 520 538 <Filename Value="Compiler\Produce\UProducerC.pas"/> 521 <Caret Line=" 345" Column="29" TopLine="330"/>539 <Caret Line="232" Column="37" TopLine="211"/> 522 540 </Position19> 523 541 <Position20> 524 542 <Filename Value="Compiler\Produce\UProducerC.pas"/> 525 <Caret Line=" 346" Column="18" TopLine="330"/>543 <Caret Line="221" Column="1" TopLine="211"/> 526 544 </Position20> 527 545 <Position21> 528 546 <Filename Value="Compiler\Produce\UProducerC.pas"/> 529 <Caret Line="2 92" Column="18" TopLine="283"/>547 <Caret Line="232" Column="1" TopLine="211"/> 530 548 </Position21> 531 549 <Position22> 532 550 <Filename Value="Compiler\Produce\UProducerC.pas"/> 533 <Caret Line=" 31" Column="53" TopLine="17"/>551 <Caret Line="222" Column="1" TopLine="211"/> 534 552 </Position22> 535 553 <Position23> 536 <Filename Value="Compiler\ Produce\UProducerC.pas"/>537 <Caret Line="1 87" Column="16" TopLine="176"/>554 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 555 <Caret Line="101" Column="28" TopLine="93"/> 538 556 </Position23> 539 557 <Position24> 540 <Filename Value="Compiler\ Produce\UProducerC.pas"/>541 <Caret Line="3 1" Column="65" TopLine="17"/>558 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 559 <Caret Line="334" Column="20" TopLine="298"/> 542 560 </Position24> 543 561 <Position25> 544 562 <Filename Value="Compiler\Produce\UProducerC.pas"/> 545 <Caret Line=" 186" Column="11" TopLine="177"/>563 <Caret Line="240" Column="22" TopLine="227"/> 546 564 </Position25> 547 565 <Position26> 548 <Filename Value="Compiler\ Produce\UProducerC.pas"/>549 <Caret Line=" 318" Column="12" TopLine="309"/>566 <Filename Value="Compiler\USourceCode.pas"/> 567 <Caret Line="772" Column="1" TopLine="759"/> 550 568 </Position26> 551 569 <Position27> 552 <Filename Value="Compiler\ Produce\UProducerC.pas"/>553 <Caret Line=" 202" Column="17" TopLine="197"/>570 <Filename Value="Compiler\USourceCode.pas"/> 571 <Caret Line="481" Column="1" TopLine="468"/> 554 572 </Position27> 555 573 <Position28> 556 <Filename Value="Compiler\ Produce\UProducerC.pas"/>557 <Caret Line=" 208" Column="3" TopLine="206"/>574 <Filename Value="Compiler\USourceCode.pas"/> 575 <Caret Line="485" Column="1" TopLine="468"/> 558 576 </Position28> 559 577 <Position29> 560 <Filename Value="Compiler\ Produce\UProducerC.pas"/>561 <Caret Line=" 202" Column="44" TopLine="188"/>578 <Filename Value="Compiler\Analyze\UParser.pas"/> 579 <Caret Line="99" Column="12" TopLine="91"/> 562 580 </Position29> 563 581 <Position30> 564 <Filename Value="Compiler\ Produce\UProducerC.pas"/>565 <Caret Line="3 18" Column="14" TopLine="305"/>582 <Filename Value="Compiler\Analyze\UParser.pas"/> 583 <Caret Line="377" Column="48" TopLine="365"/> 566 584 </Position30> 567 585 </JumpHistory> -
branches/Transpascal/Transpascal.lpr
r70 r76 10 10 UMainForm in 'UMainForm.pas' {MainForm}, 11 11 UTextSource in 'UTextSource.pas', UProject, UApplicationInfo, URegistry, 12 ULastOpenedList, TranspascalCompiler, UProjectManager, UCodeForm,12 ULastOpenedList, UDebugLog, TranspascalCompiler, UProjectManager, UCodeForm, 13 13 UMessagesForm, UCompiledForm, UCodeTreeForm; 14 14
Note:
See TracChangeset
for help on using the changeset viewer.