Changeset 6
- Timestamp:
- Nov 5, 2010, 11:31:04 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Compiler/Analyze/UPascalParser.pas
r5 r6 27 27 Expressions: TListExpression): Boolean; 28 28 function ParseExpressionFunctionCall(SourceCode: TExpression; 29 Expressions: TListExpression; var Func: TFunction ): Boolean;29 Expressions: TListExpression; var Func: TFunctionCall): Boolean; 30 30 function ParseUses(SourceCode: TUsedModuleList; AExported: Boolean): Boolean; 31 31 function ParseModule(ProgramCode: TProgram): TModule; … … 225 225 UseConstant: TConstant; 226 226 UseFunction: TFunction; 227 FunctionCall: TFunctionCall; 227 228 NewExpression: TExpression; 228 229 Identifier: string; … … 236 237 if Assigned(UseType) then begin 237 238 ReadToken; 239 if NextToken = '(' then begin 240 Expect('('); 241 // Typecasting 242 NewExpression := TExpression.Create; 243 NewExpression.CommonBlock := SourceCode.CommonBlock; 244 NewExpression.NodeType := ntTypecast; 245 NewExpression.UseType := UseType; 246 ParseExpression(NewExpression); 247 Expect(')'); 248 end else 238 249 if (UseType is TTypeRecord) or (UseType is TTypeClass) then begin 239 // type.variable or type.function250 // Type context 240 251 Expect('.'); 241 252 Identifier := ReadToken; 242 253 UseVariable := TTypeRecord(UseType).CommonBlock.Variables.Search(Identifier); 243 254 if Assigned(UseVariable) then begin 255 // Record or class variable 244 256 NewExpression := TExpression.Create; 245 257 NewExpression.CommonBlock := SourceCode.CommonBlock; … … 250 262 UseFunction := TTypeRecord(UseType).CommonBlock.Functions.Search(Identifier); 251 263 if Assigned(UseFunction) then begin 264 // Record or class functions 265 ParseExpressionFunctionCall(SourceCode, Expressions, FunctionCall); 252 266 NewExpression := TExpression.Create; 253 267 NewExpression.CommonBlock := SourceCode.CommonBlock; 254 268 NewExpression.NodeType := ntFunction; 255 NewExpression.FunctionCall := UseFunction;269 NewExpression.FunctionCall := FunctionCall; 256 270 end; 257 271 end; … … 273 287 if not Assigned(NewExpression) then begin 274 288 // Function call 275 ParseExpressionFunctionCall(SourceCode, Expressions, UseFunction);276 if Assigned( UseFunction) then begin289 ParseExpressionFunctionCall(SourceCode, Expressions, FunctionCall); 290 if Assigned(FunctionCall) then begin 277 291 NewExpression := TExpression.Create; 278 292 NewExpression.CommonBlock := SourceCode.CommonBlock; 279 293 NewExpression.NodeType := ntFunction; 280 NewExpression.FunctionCall := UseFunction;294 NewExpression.FunctionCall := FunctionCall; 281 295 end; 282 296 end; … … 319 333 320 334 function TPascalParser.ParseExpressionFunctionCall(SourceCode: TExpression; 321 Expressions: TListExpression; var Func: TFunction ): Boolean;335 Expressions: TListExpression; var Func: TFunctionCall): Boolean; 322 336 var 323 337 UseFunction: TFunction; 338 NewExpression: TExpression; 339 I: Integer; 324 340 begin 325 341 Func := nil; … … 328 344 if Assigned(UseFunction) then begin 329 345 ReadToken; 330 Func := UseFunction; 346 Func := TFunctionCall.Create; 347 Func.CommonBlock := SourceCode.CommonBlock; 348 Func.FunctionRef := UseFunction; 331 349 if NextToken = '(' then begin 332 350 Expect('('); 333 while NextToken = ',' do begin 334 Expect(','); 335 Expect(')'); 336 end; 351 for I := 0 to Func.FunctionRef.Parameters.Count - 1 do begin 352 if I > 0 then Expect(','); 353 NewExpression := TExpression.Create; 354 NewExpression.CommonBlock := SourceCode.CommonBlock; 355 ParseExpression(NewExpression); 356 Func.ParameterExpression.Add(NewExpression); 357 end; 358 Expect(')'); 337 359 end; 338 360 Result := True; -
trunk/Compiler/Produce/UProducer.pas
r2 r6 10 10 type 11 11 TProducer = class 12 FileExtension: string;13 12 procedure AssignToStringList(Target: TStringList); virtual; abstract; 14 13 procedure Produce(Module: TModule); virtual; abstract; -
trunk/Compiler/Produce/UProducerAsm8051.pas
r2 r6 108 108 begin 109 109 AssemblyCode := TObjectList.Create; 110 FileExtension := '.asm';111 110 end; 112 111 … … 155 154 ntNone: ; 156 155 ntVariable: if Assigned(Variable) then AddInstruction('', 'GETVAR', Variable.Name, ''); 157 nTFunction: AddInstruction('', 'CALL', FunctionCall. Name, '');156 nTFunction: AddInstruction('', 'CALL', FunctionCall.FunctionRef.Name, ''); 158 157 ntConstant: AddInstruction('', 'CONST', '', ''); 159 158 ntOperator: begin … … 192 191 procedure TProducerAsm8051.GenerateModule(Module: TModule); 193 192 begin 194 193 Module.TargetFile := Module.Name + '.asm'; 195 194 end; 196 195 -
trunk/Compiler/Produce/UProducerDynamicC.pas
r5 r6 27 27 procedure GenerateProgram(ProgramBlock: TProgram); 28 28 procedure GenerateFunctions(Functions: TFunctionList; 29 Prefix: string = '' );29 Prefix: string = ''; HeaderOnly: Boolean = False); 30 30 procedure GenerateBeginEnd(BeginEnd: TBeginEnd); 31 31 procedure GenerateVariableList(VariableList: TVariableList); … … 36 36 procedure GenerateIfThenElse(IfThenElse: TIfThenElse); 37 37 procedure GenerateAssignment(Assignment: TAssignment); 38 procedure GenerateFunctionCall(FunctionCall: TFunctionCall);38 function GenerateFunctionCall(FunctionCall: TFunctionCall): string; 39 39 function GenerateExpression(Expression: TExpression): string; 40 40 public … … 55 55 begin 56 56 TextSource := TStringList.Create; 57 FileExtension := '.c';58 57 IndentationLength := 2; 59 58 end; … … 119 118 procedure TProducerDynamicC.GenerateModule(Module: TModule); 120 119 begin 121 EmitLn('#use "platform.lib"');122 EmitLn;123 120 if Module is TModuleProgram then begin 121 Module.TargetFile := Module.Name + '.c'; 122 EmitLn('#use "platform.lib"'); 123 EmitLn; 124 124 TModuleProgram(Module).Body.Name := 'main'; 125 125 GenerateUses(TModuleProgram(Module).UsedModules); … … 127 127 end else 128 128 if Module is TModuleUnit then begin 129 Module.TargetFile := 'Lib\' + Module.Name + '.lib'; 130 EmitLn('/*** BeginHeader */'); 131 EmitLn('#ifndef ' + UpperCase(Module.Name) + '_H'); 132 EmitLn('#define ' + UpperCase(Module.Name) + '_H'); 133 EmitLn; 134 EmitLn('#use "platform.lib"'); 129 135 GenerateUses(TModuleProgram(Module).UsedModules); 136 GenerateTypes(TModuleUnit(Module).Body.Types); 137 EmitLn('/*** EndHeader */'); 138 EmitLn; 139 EmitLn('/*** BeginHeader */'); 140 GenerateFunctions(TModuleUnit(Module).Body.Functions, '', True); 141 EmitLn('/*** EndHeader */'); 142 EmitLn; 143 144 GenerateFunctions(TModuleUnit(Module).Body.Functions); 145 130 146 GenerateCommonBlock(TModuleUnit(Module).Body, ''); 147 148 EmitLn; 149 EmitLn('/*** BeginHeader */'); 150 EmitLn('#endif'); 151 EmitLn('/*** EndHeader */'); 131 152 end; 132 153 end; … … 150 171 151 172 procedure TProducerDynamicC.GenerateFunctions(Functions: TFunctionList; 152 Prefix: string = '' );173 Prefix: string = ''; HeaderOnly: Boolean = False); 153 174 var 154 175 I: Integer; … … 171 192 Line := Line + ')'; 172 193 EmitLn(Line); 173 GenerateBeginEnd(Code);194 if not HeaderOnly then GenerateBeginEnd(Code); 174 195 EmitLn; 175 196 end; … … 218 239 else if Command is TIfThenElse then GenerateIfThenElse(TIfThenElse(Command)) 219 240 else if Command is TAssignment then GenerateAssignment(TAssignment(Command)) 220 else if Command is TFunctionCall then GenerateFunctionCall(TFunctionCall(Command));241 else if Command is TFunctionCall then EmitLn(GenerateFunctionCall(TFunctionCall(Command)) + ';'); 221 242 end; 222 243 … … 254 275 end; 255 276 256 procedure TProducerDynamicC.GenerateFunctionCall(FunctionCall: TFunctionCall);277 function TProducerDynamicC.GenerateFunctionCall(FunctionCall: TFunctionCall): string; 257 278 var 258 279 Line: string; … … 267 288 end; 268 289 end; 269 Line := Line + ') ;';270 EmitLn(Line);271 end;290 Line := Line + ')'; 291 end; 292 Result := Line; 272 293 end; 273 294 … … 285 306 end; 286 307 ntVariable: Result := Expression.Variable.Name; 287 ntFunction: Result := Expression.FunctionCall.Name;308 ntFunction: Result := GenerateFunctionCall(Expression.FunctionCall); 288 309 ntOperator: begin 289 310 Result := GenerateExpression(TExpression(Expression.SubItems.First)) … … 308 329 begin 309 330 with CommonBlock do begin 310 GenerateTypes(Types);311 GenerateFunctions(Functions);312 331 EmitLn('void ' + Name + '()'); 313 332 GenerateBeginEnd(Code); -
trunk/Compiler/Produce/UProducerGCCC.pas
r2 r6 55 55 begin 56 56 TextSource := TStringList.Create; 57 FileExtension := '.c';58 57 IndentationLength := 2; 59 58 end; … … 119 118 procedure TProducerGCCC.GenerateModule(Module: TModule); 120 119 begin 120 Module.TargetFile := Module.Name + '.c'; 121 121 EmitLn('#include "platform.h"'); 122 122 EmitLn; … … 281 281 end; 282 282 ntVariable: Result := Expression.Variable.Name; 283 ntFunction: Result := Expression.FunctionCall. Name;283 ntFunction: Result := Expression.FunctionCall.FunctionRef.Name; 284 284 ntOperator: begin 285 285 Result := GenerateExpression(TExpression(Expression.SubItems.First)) -
trunk/Compiler/Produce/UProducerPascal.pas
r5 r6 51 51 begin 52 52 IndentationLength := 2; 53 FileExtension := '.pas';54 53 TextSource := TStringList.Create; 55 54 end; … … 88 87 procedure TProducerPascal.GenerateModule(Module: TModule); 89 88 begin 89 Module.TargetFile := Module.Name + '.pas'; 90 90 if Module is TModuleProgram then 91 91 with TModuleProgram(Module) do begin … … 320 320 end; 321 321 ntVariable: Result := Expression.Variable.Name; 322 ntFunction: Result := Expression.FunctionCall. Name;322 ntFunction: Result := Expression.FunctionCall.FunctionRef.Name; 323 323 ntOperator: begin 324 324 Result := GenerateExpression(TExpression(Expression.SubItems.First)) -
trunk/Compiler/Produce/UProducerTreeView.pas
r2 r6 152 152 ntConstant: NewNode := TreeView.Items.AddChild(Node, Expression.Value); 153 153 ntVariable: NewNode := TreeView.Items.AddChild(Node, Expression.Variable.Name); 154 ntFunction: NewNode := TreeView.Items.AddChild(Node, Expression.FunctionCall. Name);154 ntFunction: NewNode := TreeView.Items.AddChild(Node, Expression.FunctionCall.FunctionRef.Name); 155 155 ntOperator: begin 156 156 NewNode := TreeView.Items.AddChild(Node, Expression.OperatorName); -
trunk/Compiler/UCompiler.pas
r2 r6 73 73 ProducedCode: TStringList; 74 74 I: Integer; 75 TargetFileName: string; 75 76 begin 76 77 try … … 81 82 //ShowMessage(IntToHex(Integer(Addr(Parser.OnGetSource)), 8)); 82 83 Parser.ParseModule(ProgramCode); 83 for I := 0 to ProgramCode.Modules.Count - 1 do begin 84 Producer.Produce(TModule(ProgramCode.Modules[I])); 84 with ProgramCode do 85 for I := 0 to Modules.Count - 1 do begin 86 Producer.Produce(TModule(Modules[I])); 85 87 Producer.AssignToStringList(ProducedCode); 86 ForceDirectories(TargetFolder + DirectorySeparator + 87 CompiledFolder + DirectorySeparator + Producer.ClassName); 88 ProducedCode.SaveToFile(TargetFolder + DirectorySeparator + 88 TargetFileName := TargetFolder + DirectorySeparator + 89 89 CompiledFolder + DirectorySeparator + Producer.ClassName + 90 DirectorySeparator + TModule(ProgramCode.Modules[I]).Name + Producer.FileExtension); 90 DirectorySeparator + TModule(Modules[I]).TargetFile; 91 ForceDirectories(ExtractFileDir(TargetFileName)); 92 ProducedCode.SaveToFile(TargetFileName); 91 93 end; 92 94 finally -
trunk/Compiler/USourceCode.pas
r5 r6 15 15 16 16 TNodeType = (ntNone, ntVariable, ntFunction, ntConstant, ntOperator, 17 ntValue );17 ntValue, ntTypecast); 18 18 19 19 TTypeVisibility = (tvPublic, tvPublished, tvPrivate, tvProtected); … … 329 329 Variable: TVariable; 330 330 Constant: TConstant; 331 FunctionCall: TFunction; 331 UseType: TType; 332 FunctionCall: TFunctionCall; 332 333 Value: TValue; 333 334 OperatorName: string; … … 396 397 ParentProgram: TProgram; 397 398 Name: string; 399 TargetFile: string; 398 400 UsedModules: TUsedModuleList; 399 401 Body: TCommonBlock; -
trunk/Forms/UProjectManager.pas
r2 r6 34 34 procedure TProjectManager.TreeViewProjectChange(Sender: TObject; Node: TTreeNode 35 35 ); 36 var37 FileName: string;38 36 begin 39 37 with MainForm, CodeForm do … … 41 39 if TProjectNode(Node.Data) is TProjectFile then begin 42 40 SynEditSource.Lines.Assign(TProjectFile(Node.Data).Source); 43 FileName := Compiler.TargetFolder + DirectorySeparator + 44 Compiler.CompiledFolder + DirectorySeparator + 45 Compiler.Producer.ClassName + DirectorySeparator + ExtractFileNameOnly(TProjectFile(Node.Data).Name) + Compiler.Producer.FileExtension; 46 if FileExists(FileName) then 41 (* if FileExists(TProjectFile(Node.Data).ProducedFileName) then 47 42 CompiledForm.SynEdit1.Lines.LoadFromFile(FileName) else 48 43 CompiledForm.SynEdit1.Lines.Clear; … … 55 50 if ComboBoxTargetSelection.ItemIndex = 3 then 56 51 CompiledForm.SynEdit1.Highlighter := CompiledForm.SynXMLSyn1; 57 52 *) 58 53 (*// Load code tree view 59 54 Compiler.Producer.Free; -
trunk/Transpascal.lpi
r5 r6 53 53 </Item5> 54 54 </RequiredPackages> 55 <Units Count="7 8">55 <Units Count="79"> 56 56 <Unit0> 57 57 <Filename Value="Transpascal.lpr"/> … … 181 181 <IsPartOfProject Value="True"/> 182 182 <UnitName Value="UProject"/> 183 <EditorIndex Value=" 8"/>184 <WindowIndex Value="0"/> 185 <TopLine Value=" 9"/>186 <CursorPos X=" 25" Y="17"/>183 <EditorIndex Value="14"/> 184 <WindowIndex Value="0"/> 185 <TopLine Value="2"/> 186 <CursorPos X="30" Y="18"/> 187 187 <UsageCount Value="223"/> 188 188 <Loaded Value="True"/> … … 202 202 <EditorIndex Value="3"/> 203 203 <WindowIndex Value="0"/> 204 <TopLine Value=" 120"/>205 <CursorPos X=" 1" Y="133"/>204 <TopLine Value="70"/> 205 <CursorPos X="53" Y="92"/> 206 206 <UsageCount Value="102"/> 207 207 <Loaded Value="True"/> … … 212 212 <EditorIndex Value="0"/> 213 213 <WindowIndex Value="0"/> 214 <TopLine Value=" 814"/>215 <CursorPos X="26" Y=" 825"/>214 <TopLine Value="58"/> 215 <CursorPos X="26" Y="73"/> 216 216 <UsageCount Value="103"/> 217 217 <Loaded Value="True"/> … … 233 233 <ResourceBaseClass Value="Form"/> 234 234 <UnitName Value="UProjectManager"/> 235 <WindowIndex Value="0"/> 236 <TopLine Value="1"/> 237 <CursorPos X="29" Y="44"/> 235 <EditorIndex Value="7"/> 236 <WindowIndex Value="0"/> 237 <TopLine Value="44"/> 238 <CursorPos X="39" Y="57"/> 238 239 <UsageCount Value="207"/> 240 <Loaded Value="True"/> 239 241 <DefaultSyntaxHighlighter Value="Delphi"/> 240 242 </Unit19> … … 291 293 <Filename Value="Compiler\Produce\UProducerTreeView.pas"/> 292 294 <UnitName Value="UProducerTreeView"/> 295 <EditorIndex Value="12"/> 293 296 <WindowIndex Value="0"/> 294 297 <TopLine Value="141"/> 295 <CursorPos X=" 81" Y="154"/>298 <CursorPos X="93" Y="154"/> 296 299 <UsageCount Value="14"/> 300 <Loaded Value="True"/> 297 301 </Unit24> 298 302 <Unit25> … … 344 348 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 345 349 <UnitName Value="UProducerDynamicC"/> 346 <EditorIndex Value="7"/> 347 <WindowIndex Value="0"/> 348 <TopLine Value="274"/> 349 <CursorPos X="13" Y="285"/> 350 <IsVisibleTab Value="True"/> 351 <EditorIndex Value="11"/> 352 <WindowIndex Value="0"/> 353 <TopLine Value="295"/> 354 <CursorPos X="49" Y="308"/> 350 355 <UsageCount Value="113"/> 351 356 <Loaded Value="True"/> … … 354 359 <Filename Value="Compiler\Produce\UProducerAsm8051.pas"/> 355 360 <UnitName Value="UProducerAsm8051"/> 356 <WindowIndex Value="0"/> 357 <TopLine Value="1"/> 358 <CursorPos X="56" Y="157"/> 359 <UsageCount Value="10"/> 361 <EditorIndex Value="13"/> 362 <WindowIndex Value="0"/> 363 <TopLine Value="143"/> 364 <CursorPos X="68" Y="156"/> 365 <UsageCount Value="11"/> 366 <Loaded Value="True"/> 360 367 </Unit31> 361 368 <Unit32> 362 369 <Filename Value="Compiler\Produce\UProducerPascal.pas"/> 363 370 <UnitName Value="UProducerPascal"/> 364 <IsVisibleTab Value="True"/> 365 <EditorIndex Value="5"/> 371 <EditorIndex Value="9"/> 366 372 <WindowIndex Value="0"/> 367 373 <TopLine Value="309"/> 368 <CursorPos X=" 50" Y="318"/>369 <UsageCount Value="4 2"/>374 <CursorPos X="64" Y="322"/> 375 <UsageCount Value="44"/> 370 376 <Loaded Value="True"/> 371 377 </Unit32> … … 373 379 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 374 380 <UnitName Value="UPascalParser"/> 375 <EditorIndex Value=" 4"/>376 <WindowIndex Value="0"/> 377 <TopLine Value="2 81"/>378 <CursorPos X=" 3" Y="287"/>381 <EditorIndex Value="8"/> 382 <WindowIndex Value="0"/> 383 <TopLine Value="269"/> 384 <CursorPos X="26" Y="289"/> 379 385 <UsageCount Value="110"/> 380 386 <Loaded Value="True"/> … … 419 425 <TopLine Value="1"/> 420 426 <CursorPos X="28" Y="22"/> 421 <UsageCount Value="19 3"/>427 <UsageCount Value="196"/> 422 428 <DefaultSyntaxHighlighter Value="Delphi"/> 423 429 </Unit38> … … 432 438 <Filename Value="Compiler\Produce\UProducerGCCC.pas"/> 433 439 <UnitName Value="UProducerGCCC"/> 434 <WindowIndex Value="0"/> 435 <TopLine Value="270"/> 436 <CursorPos X="30" Y="278"/> 437 <UsageCount Value="40"/> 440 <EditorIndex Value="6"/> 441 <WindowIndex Value="0"/> 442 <TopLine Value="26"/> 443 <CursorPos X="14" Y="39"/> 444 <UsageCount Value="41"/> 445 <Loaded Value="True"/> 438 446 </Unit40> 439 447 <Unit41> … … 442 450 <TopLine Value="1"/> 443 451 <CursorPos X="1" Y="1"/> 444 <UsageCount Value=" 68"/>452 <UsageCount Value="70"/> 445 453 <Loaded Value="True"/> 446 454 <DefaultSyntaxHighlighter Value="LFM"/> … … 720 728 <Unit75> 721 729 <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Generic\GenericList.inc"/> 722 <WindowIndex Value="0"/> 723 <TopLine Value="216"/> 724 <CursorPos X="1" Y="229"/> 725 <UsageCount Value="11"/> 730 <EditorIndex Value="5"/> 731 <WindowIndex Value="0"/> 732 <TopLine Value="71"/> 733 <CursorPos X="1" Y="85"/> 734 <UsageCount Value="12"/> 735 <Loaded Value="True"/> 726 736 </Unit75> 727 737 <Unit76> … … 734 744 <Unit77> 735 745 <Filename Value="E:\Programy\Lazarus\fpc\2.4.3\source\rtl\objpas\sysutils\sysstrh.inc"/> 736 <EditorIndex Value=" 6"/>746 <EditorIndex Value="10"/> 737 747 <WindowIndex Value="0"/> 738 748 <TopLine Value="107"/> 739 749 <CursorPos X="10" Y="120"/> 740 <UsageCount Value="1 0"/>750 <UsageCount Value="12"/> 741 751 <Loaded Value="True"/> 742 752 </Unit77> 753 <Unit78> 754 <Filename Value="Compiler\Produce\UProducer.pas"/> 755 <UnitName Value="UProducer"/> 756 <EditorIndex Value="4"/> 757 <WindowIndex Value="0"/> 758 <TopLine Value="1"/> 759 <CursorPos X="1" Y="12"/> 760 <UsageCount Value="11"/> 761 <Loaded Value="True"/> 762 </Unit78> 743 763 </Units> 744 <JumpHistory Count=" 30" HistoryIndex="28">764 <JumpHistory Count="29" HistoryIndex="28"> 745 765 <Position1> 746 <Filename Value="Compiler\Analyze\UPa rser.pas"/>747 <Caret Line=" 381" Column="1" TopLine="370"/>766 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 767 <Caret Line="149" Column="1" TopLine="136"/> 748 768 </Position1> 749 769 <Position2> 750 <Filename Value="Compiler\Analyze\UPa rser.pas"/>751 <Caret Line=" 84" Column="1" TopLine="71"/>770 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 771 <Caret Line="150" Column="1" TopLine="136"/> 752 772 </Position2> 753 773 <Position3> 754 <Filename Value="Compiler\Analyze\UPa rser.pas"/>755 <Caret Line=" 85" Column="1" TopLine="71"/>774 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 775 <Caret Line="151" Column="1" TopLine="136"/> 756 776 </Position3> 757 777 <Position4> 758 <Filename Value="Compiler\Analyze\UPa rser.pas"/>759 <Caret Line=" 86" Column="1" TopLine="71"/>778 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 779 <Caret Line="152" Column="1" TopLine="136"/> 760 780 </Position4> 761 781 <Position5> 762 <Filename Value="Compiler\Analyze\UPa rser.pas"/>763 <Caret Line=" 88" Column="1" TopLine="71"/>782 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 783 <Caret Line="231" Column="1" TopLine="218"/> 764 784 </Position5> 765 785 <Position6> 766 <Filename Value="Compiler\Analyze\UPa rser.pas"/>767 <Caret Line=" 89" Column="1" TopLine="71"/>786 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 787 <Caret Line="232" Column="1" TopLine="218"/> 768 788 </Position6> 769 789 <Position7> 770 <Filename Value="Compiler\Analyze\UPa rser.pas"/>771 <Caret Line=" 91" Column="1" TopLine="71"/>790 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 791 <Caret Line="236" Column="1" TopLine="218"/> 772 792 </Position7> 773 793 <Position8> 774 794 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 775 <Caret Line=" 363" Column="1" TopLine="347"/>795 <Caret Line="237" Column="1" TopLine="218"/> 776 796 </Position8> 777 797 <Position9> 778 798 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 779 <Caret Line=" 360" Column="1" TopLine="347"/>799 <Caret Line="276" Column="1" TopLine="263"/> 780 800 </Position9> 781 801 <Position10> 782 <Filename Value="Compiler\Analyze\UPa rser.pas"/>783 <Caret Line=" 375" Column="1" TopLine="362"/>802 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 803 <Caret Line="278" Column="1" TopLine="263"/> 784 804 </Position10> 785 805 <Position11> 786 <Filename Value="Compiler\Analyze\UPa rser.pas"/>787 <Caret Line=" 376" Column="1" TopLine="362"/>806 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 807 <Caret Line="279" Column="1" TopLine="263"/> 788 808 </Position11> 789 809 <Position12> 790 <Filename Value="Compiler\Analyze\UPa rser.pas"/>791 <Caret Line=" 377" Column="1" TopLine="362"/>810 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 811 <Caret Line="287" Column="1" TopLine="269"/> 792 812 </Position12> 793 813 <Position13> 794 <Filename Value="Compiler\Analyze\UPa rser.pas"/>795 <Caret Line=" 378" Column="1" TopLine="362"/>814 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 815 <Caret Line="289" Column="26" TopLine="269"/> 796 816 </Position13> 797 817 <Position14> 798 <Filename Value="Compiler\ Analyze\UParser.pas"/>799 <Caret Line="3 80" Column="1" TopLine="362"/>818 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 819 <Caret Line="305" Column="37" TopLine="287"/> 800 820 </Position14> 801 821 <Position15> 802 <Filename Value="Compiler\ Analyze\UParser.pas"/>803 <Caret Line="3 81" Column="1" TopLine="362"/>822 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 823 <Caret Line="308" Column="33" TopLine="295"/> 804 824 </Position15> 805 825 <Position16> 806 <Filename Value="Compiler\ Analyze\UParser.pas"/>807 <Caret Line=" 84" Column="1" TopLine="71"/>826 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 827 <Caret Line="38" Column="70" TopLine="25"/> 808 828 </Position16> 809 829 <Position17> 810 <Filename Value="Compiler\ Analyze\UParser.pas"/>811 <Caret Line=" 85" Column="1" TopLine="71"/>830 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 831 <Caret Line="286" Column="25" TopLine="277"/> 812 832 </Position17> 813 833 <Position18> 814 <Filename Value="Compiler\ Analyze\UParser.pas"/>815 <Caret Line=" 86" Column="1" TopLine="71"/>834 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 835 <Caret Line="281" Column="1" TopLine="276"/> 816 836 </Position18> 817 837 <Position19> 818 <Filename Value="Compiler\ Analyze\UParser.pas"/>819 <Caret Line=" 88" Column="1" TopLine="71"/>838 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 839 <Caret Line="283" Column="1" TopLine="276"/> 820 840 </Position19> 821 841 <Position20> 822 <Filename Value="Compiler\ UCompiler.pas"/>823 <Caret Line=" 133" Column="1" TopLine="120"/>842 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 843 <Caret Line="284" Column="1" TopLine="276"/> 824 844 </Position20> 825 845 <Position21> 826 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>827 <Caret Line=" 45" Column="14" TopLine="32"/>846 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 847 <Caret Line="290" Column="1" TopLine="276"/> 828 848 </Position21> 829 849 <Position22> 830 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>831 <Caret Line="2 20" Column="53" TopLine="211"/>850 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 851 <Caret Line="292" Column="1" TopLine="276"/> 832 852 </Position22> 833 853 <Position23> 834 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>835 <Caret Line="2 72" Column="12" TopLine="263"/>854 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 855 <Caret Line="293" Column="1" TopLine="276"/> 836 856 </Position23> 837 857 <Position24> 838 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>839 <Caret Line=" 266" Column="1" TopLine="235"/>858 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 859 <Caret Line="316" Column="1" TopLine="303"/> 840 860 </Position24> 841 861 <Position25> 842 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>843 <Caret Line=" 146" Column="27" TopLine="133"/>862 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 863 <Caret Line="281" Column="1" TopLine="268"/> 844 864 </Position25> 845 865 <Position26> 846 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>847 <Caret Line=" 125" Column="14" TopLine="112"/>866 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 867 <Caret Line="8" Column="69" TopLine="6"/> 848 868 </Position26> 849 869 <Position27> 850 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>851 <Caret Line=" 137" Column="58" TopLine="112"/>870 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 871 <Caret Line="38" Column="34" TopLine="25"/> 852 872 </Position27> 853 873 <Position28> 854 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>855 <Caret Line="2 32" Column="17" TopLine="226"/>874 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 875 <Caret Line="241" Column="68" TopLine="228"/> 856 876 </Position28> 857 877 <Position29> 858 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>859 <Caret Line=" 300" Column="15" TopLine="278"/>878 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 879 <Caret Line="277" Column="48" TopLine="264"/> 860 880 </Position29> 861 <Position30>862 <Filename Value="E:\Programy\Lazarus\fpc\2.4.3\source\rtl\objpas\sysutils\sysstrh.inc"/>863 <Caret Line="120" Column="10" TopLine="107"/>864 </Position30>865 881 </JumpHistory> 866 882 </ProjectOptions> … … 904 920 </CompilerOptions> 905 921 <Debugging> 922 <BreakPoints Count="1"> 923 <Item1> 924 <Source Value="Compiler\Produce\UProducerDynamicC.pas"/> 925 <Line Value="281"/> 926 </Item1> 927 </BreakPoints> 906 928 <Exceptions Count="3"> 907 929 <Item1> -
trunk/UProject.pas
r2 r6 16 16 Parent: TProjectNode; 17 17 Name: string; 18 ProducedFileName: string; 18 19 procedure SaveToXMLNode(Node: TDOMNode); virtual; 19 20 procedure LoadFromXMLNode(Node: TDOMNode); virtual;
Note:
See TracChangeset
for help on using the changeset viewer.