- Timestamp:
- Oct 22, 2010, 3:39:58 PM (14 years ago)
- Location:
- branches/Transpascal
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Transpascal/Compiler/Analyze/UParser.pas
r78 r80 146 146 function TBaseParser.IsString(Text: string): Boolean; 147 147 begin 148 148 raise Exception.Create('Not implemented'); 149 149 end; 150 150 … … 267 267 if FParserState = psBlockComment1First then begin 268 268 if CurrentChar = '$' then FParserState := psCompilerDirective 269 else FParserSTate := psBlockComment1;269 else FParserSTate := psBlockComment1; 270 270 end else 271 271 if FParserState = psBlockComment1 then begin … … 276 276 if FParserState = psCompilerDirective then begin 277 277 if (CurrentChar = '}') then begin 278 FParserState := psNone ;278 FParserState := psNoneShift; 279 279 FNextTokenType := ttCompilerDirective; 280 Break; 281 end; 280 FNextToken := ''; 281 //Break; 282 end else FNextToken := FNextToken + CurrentChar; 282 283 end else 283 284 if FParserState = psBlockComment2 then begin -
branches/Transpascal/Compiler/Analyze/UPascalParser.pas
r79 r80 20 20 procedure ParseWhileDo(SourceCode: TWhileDo); 21 21 procedure ParseExpression(SourceCode: TExpression); 22 function ParseRightValue(SourceCode: TExpression): TObject; 23 function ParseFunctionCall(SourceCode: TExpression): TObject; 22 24 procedure ParseUses(SourceCode: TUsedModuleList; AExported: Boolean); 23 25 function ParseModule(ProgramCode: TProgram): TModule; … … 32 34 procedure ParseBeginEnd(SourceCode: TBeginEnd); 33 35 function ParseFunctionList(SourceCode: TFunctionList; Exported: Boolean = False): Boolean; 34 procedure ParseFunctionParameters(SourceCode: TFunction );36 procedure ParseFunctionParameters(SourceCode: TFunction; ValidateParams: Boolean = False); 35 37 procedure ParseIfThenElse(SourceCode: TIfThenElse); 36 38 procedure ParseForToDo(SourceCode: TForToDo); … … 70 72 SUnknownModuleType = 'Unknown module name "%s".'; 71 73 SInvalidConstruction = 'Invalid construction.'; 74 SInvalidAssignmentValue = 'Invalid assignment "%s".'; 75 SParamDiffers = 'Declaration of parametr "%s" differs.'; 72 76 73 77 implementation … … 125 129 NewMethod: TFunction; 126 130 Constant: TConstant; 131 UseType: TType; 127 132 // Brackets: Integer; 128 133 Expressions: TExpressionList; 129 134 I: integer; 130 135 II: integer; 136 RightValue: TObject; 131 137 begin 132 138 Expressions := TExpressionList.Create; … … 136 142 (((NextToken = ')') or (NextToken = ']'))) and not (NextTokenType = ttEndOfFile) do begin 137 143 IdentifierType := NextTokenType; 138 Identifier := ReadToken;139 if Identifier = '(' then begin144 if NextToken = '(' then begin 145 Expect('('); 140 146 // Subexpression 141 147 with TExpression(Expressions.Last) do begin … … 151 157 Expect(')'); 152 158 end else 153 if IsOperator( Identifier) then begin159 if IsOperator(NextToken) then begin 154 160 // Operator 155 TExpression(Expressions.Last).OperatorName := Identifier;161 TExpression(Expressions.Last).OperatorName := ReadToken; 156 162 TExpression(Expressions.Last).NodeType := ntOperator; 157 end else 158 if IsIdentificator(Identifier) then begin 159 // Reference to identificator 160 NewVariable := CommonBlock.Variables.Search(Identifier); 161 if Assigned(NewVariable) then begin 162 // Referenced variable 163 end else begin 164 RightValue := ParseRightValue(SourceCode); 165 if Assigned(RightValue) then begin 163 166 with TExpression(Expressions.Last) do begin 164 167 SubItems[1] := TExpression.Create; 165 168 TExpression(SubItems[1]).CommonBlock := SourceCode.CommonBlock; 166 TExpression(SubItems[1]).NodeType := ntVariable; 167 TExpression(SubItems[1]).Variable := NewVariable; 169 if RightValue is TVariable then begin 170 TExpression(SubItems[1]).NodeType := ntVariable; 171 TExpression(SubItems[1]).Variable := TVariable(RightValue); 172 end; 173 if RightValue is TConstant then begin 174 TExpression(SubItems[1]).NodeType := ntConstant; 175 TExpression(SubItems[1]).Constant := TConstant(RightValue); 176 end; 177 if RightValue is TFunctionCall then begin 178 TExpression(SubItems[1]).NodeType := ntFunction; 179 TExpression(SubItems[1]).FunctionCall := TFunction(RightValue); 180 end; 168 181 end; 169 182 with TExpression(Expressions.Items[Expressions.Add(TExpression.Create)]) do … … 173 186 end; 174 187 end else begin 175 NewMethod := CommonBlock.Functions.Search(Identifier); 176 if Assigned(NewMethod) then begin 177 // Referenced method 178 with TExpression(Expressions.Last) do begin 179 SubItems[1] := TExpression.Create; 180 TExpression(SubItems[1]).CommonBlock := SourceCode.CommonBlock; 181 if NextToken = '(' then // Method with parameters 182 with TExpression(SubItems[1]) do begin 183 Expect('('); 184 NewExpression := TExpression.Create; 185 NewExpression.CommonBlock := CommonBlock; 186 ParseExpression(NewExpression); 187 SubItems.Add(NewExpression); 188 while NextToken = ',' do begin 189 Expect(','); 190 NewExpression := TExpression.Create; 191 NewExpression.CommonBlock := CommonBlock; 192 ParseExpression(NewExpression); 193 SubItems.Add(NewExpression); 194 end; 195 Expect(')'); 196 end; 197 TExpression(SubItems[1]).NodeType := ntFunction; 198 TExpression(SubItems[1]).Method := NewMethod; 199 end; 200 with TExpression(Expressions.Items[Expressions.Add(TExpression.Create)]) do 201 begin 202 CommonBlock := SourceCode.CommonBlock; 203 SubItems[0] := 204 TExpression(Expressions[Expressions.Count - 2]).SubItems[1]; 205 end; 206 end else begin 207 Constant := CommonBlock.Constants.Search(Identifier); 208 if Assigned(Constant) then begin 209 // Referenced constant 210 with TExpression(Expressions.Last) do begin 211 SubItems[1] := TExpression.Create; 212 TExpression(SubItems[1]).CommonBlock := SourceCode.CommonBlock; 213 TExpression(SubItems[1]).NodeType := ntConstant; 214 TExpression(SubItems[1]).Value := Constant.Value; 215 end; 216 with TExpression(Expressions.Items[Expressions.Add( 217 TExpression.Create)]) do begin 218 CommonBlock := SourceCode.CommonBlock; 219 SubItems[0] := 220 TExpression(Expressions[Expressions.Count - 2]).SubItems[1]; 221 end; 222 end else begin 223 ErrorMessage(SUnknownIdentifier, [Identifier], -1); 224 end; 225 end; 226 end; 227 end else begin 228 // Constant value 229 with TExpression(Expressions.Last) do begin 230 SubItems[1] := TExpression.Create; 231 TExpression(SubItems[1]).CommonBlock := SourceCode.CommonBlock; 232 TExpression(SubItems[1]).NodeType := ntConstant; 233 234 if IdentifierType = ttConstantString then begin 235 TExpression(SubItems[1]).Value := Identifier; 236 //SetLength(TExpression(SubItems[1]).Value, Length(Identifier)); 237 //for I := 1 to Length(Identifier) do 238 // TExpression(SubItems[1]).Value[I - 1] := Byte(Identifier[I]); 239 end else begin 240 TExpression(SubItems[1]).Value := Identifier; 241 end; 242 end; 243 //ShowMessage(IntToStr(Expressions.Count)); 244 with TExpression(Expressions.Items[Expressions.Add(TExpression.Create)]) do 245 begin 246 CommonBlock := SourceCode.CommonBlock; 247 SubItems[0] := TExpression(Expressions[Expressions.Count - 2]).SubItems[1]; 188 ErrorMessage(SInvalidAssignmentValue, [NextToken]); 189 ReadToken; 248 190 end; 249 191 end; … … 271 213 TExpression(Expressions[1]).SubItems[0] := nil; 272 214 Expressions.Free; 215 end; 216 end; 217 218 function TPascalParser.ParseRightValue(SourceCode: TExpression): TObject; 219 var 220 UseType: TType; 221 UseVariable: TVariable; 222 UseConstant: TConstant; 223 UseFunction: TFunction; 224 Identifier: string; 225 begin 226 Result := nil; 227 with SourceCode do 228 if IsIdentificator(NextToken) then begin 229 // Start with type 230 UseType := CommonBlock.Types.Search(NextToken); 231 if Assigned(UseType) then begin 232 ReadToken; 233 if (UseType is TTypeRecord) or (UseType is TTypeClass) then begin 234 Expect('.'); 235 Identifier := ReadToken; 236 UseVariable := TTypeRecord(UseType).CommonBlock.Variables.Search(Identifier); 237 if Assigned(UseVariable) then begin 238 Result := UseVariable; 239 end; 240 if not Assigned(Result) then begin 241 UseFunction := TTypeRecord(UseType).CommonBlock.Functions.Search(Identifier); 242 if Assigned(UseFunction) then begin 243 Result := UseFunction; 244 end; 245 end; 246 if not Assigned(Result) then 247 ErrorMessage(SUndefinedVariable, [Identifier]); 248 end else ErrorMessage(SIllegalExpression, [Identifier]); 249 end; 250 if not Assigned(Result) then begin 251 UseVariable := CommonBlock.Variables.Search(Identifier); 252 if Assigned(UseVariable) then begin 253 // Referenced variable 254 ReadToken; 255 Result := UseVariable; 256 end; 257 end; 258 if not Assigned(Result) then begin 259 Result := ParseFunctionCall(SourceCode); 260 end; 261 if not Assigned(Result) then begin 262 UseConstant := CommonBlock.Constants.Search(NextToken); 263 if Assigned(UseConstant) then begin 264 ReadToken; 265 Result := UseConstant; 266 end; 267 end; 268 if not Assigned(Result) then begin 269 // Constant value 270 Result := TConstant.Create; 271 TConstant(Result).Value := ReadToken; 272 end; 273 if not Assigned(Result) then begin 274 ErrorMessage(SUnknownIdentifier, [ReadToken]); 275 end; 276 end else Result := nil; 277 end; 278 279 function TPascalParser.ParseFunctionCall(SourceCode: TExpression): TObject; 280 var 281 UseFunction: TFunction; 282 begin 283 Result := nil; 284 with SourceCode do begin 285 UseFunction := CommonBlock.Functions.Search(NextToken); 286 if Assigned(UseFunction) then begin 287 ReadToken; 288 Result := UseFunction; 289 if NextToken = '(' then begin 290 Expect('('); 291 while NextToken = ',' do begin 292 Expect(','); 293 Expect(')'); 294 end; 295 end; 296 end; 273 297 end; 274 298 end; … … 505 529 UseFunction: TFunction; 506 530 FunctionType: TFunctionType; 531 ValidParams: Boolean; 507 532 begin 508 533 if (NextToken = 'procedure') or (NextToken = 'function') then begin … … 531 556 (UseType is TTypeClass)) then begin 532 557 Expect('.'); 558 ValidParams := True; 533 559 UseName := ReadToken; 534 560 if UseType is TTypeRecord then begin … … 546 572 UseFunction.FunctionType := FunctionType; 547 573 Add(UseFunction); 574 ValidParams := False; 548 575 end; 549 576 with UseFunction do begin 550 577 // Parse parameters 551 578 if NextToken = '(' then 552 ParseFunctionParameters(UseFunction );579 ParseFunctionParameters(UseFunction, ValidParams); 553 580 554 581 // Parse function result type … … 587 614 end; 588 615 589 procedure TPascalParser.ParseFunctionParameters(SourceCode: TFunction); 616 procedure TPascalParser.ParseFunctionParameters(SourceCode: TFunction; 617 ValidateParams: Boolean = False); 590 618 var 591 619 Identifiers: TStringList; … … 600 628 Identifiers := TStringList.Create; 601 629 Expect('('); 602 while NextToken <> ')'do begin630 while (NextToken <> ')') and (NextTokenType <> ttEndOfFile) do begin 603 631 // while IsIdentificator(NextCode) do begin 604 632 with TParameterList(Parameters) do begin … … 616 644 end; 617 645 end else 618 ErrorMessage(SRedefineIdentifier, [VariableName], -1); 646 if not ValidateParams then 647 ErrorMessage(SRedefineIdentifier, [VariableName], -1); 619 648 Expect(':'); 620 649 TypeName := ReadToken; … … 623 652 ErrorMessage(SUndefinedType, [TypeName], -1) 624 653 else 625 for I := 0 to Identifiers.Count - 1 do 626 with TParameter(Items[Add(TParameter.Create)]) do 627 begin 628 Name := Identifiers[I]; 629 ValueType := UseType; 654 if ValidateParams then begin 655 for I := 0 to Identifiers.Count - 1 do begin 656 UseVariable := Parameters.Search(Identifiers[I]); 657 if Assigned(UseVariable) then 658 if UseVariable.ValueType <> UseType then ; 659 ErrorMessage(SParamDiffers, [Identifiers[I]]); 630 660 end; 661 end else begin 662 for I := 0 to Identifiers.Count - 1 do 663 with TParameter(Items[Add(TParameter.Create)]) do 664 begin 665 Name := Identifiers[I]; 666 ValueType := UseType; 667 end; 668 669 end; 631 670 end; 632 671 end; … … 643 682 procedure TPascalParser.ParseIfThenElse(SourceCode: TIfThenElse); 644 683 begin 645 with Sourcecode do 646 begin 684 with SourceCode do begin 647 685 Expect('if'); 648 686 Condition.CommonBlock := CommonBlock; -
branches/Transpascal/Compiler/Produce/UProducerAsm8051.pas
r60 r80 155 155 ntNone: ; 156 156 ntVariable: if Assigned(Variable) then AddInstruction('', 'GETVAR', Variable.Name, ''); 157 nTFunction: AddInstruction('', 'CALL', Method.Name, '');157 nTFunction: AddInstruction('', 'CALL', FunctionCall.Name, ''); 158 158 ntConstant: AddInstruction('', 'CONST', '', ''); 159 159 ntOperator: begin -
branches/Transpascal/Compiler/Produce/UProducerDynamicC.pas
r77 r80 281 281 end; 282 282 ntVariable: Result := Expression.Variable.Name; 283 ntFunction: Result := Expression. Method.Name;283 ntFunction: Result := Expression.FunctionCall.Name; 284 284 ntOperator: begin 285 285 Result := GenerateExpression(TExpression(Expression.SubItems.First)) -
branches/Transpascal/Compiler/Produce/UProducerGCCC.pas
r77 r80 281 281 end; 282 282 ntVariable: Result := Expression.Variable.Name; 283 ntFunction: Result := Expression. Method.Name;283 ntFunction: Result := Expression.FunctionCall.Name; 284 284 ntOperator: begin 285 285 Result := GenerateExpression(TExpression(Expression.SubItems.First)) -
branches/Transpascal/Compiler/Produce/UProducerPascal.pas
r77 r80 312 312 ntConstant: Result := Expression.Value; 313 313 ntVariable: Result := Expression.Variable.Name; 314 ntFunction: Result := Expression. Method.Name;314 ntFunction: Result := Expression.FunctionCall.Name; 315 315 ntOperator: begin 316 316 Result := GenerateExpression(TExpression(Expression.SubItems.First)) -
branches/Transpascal/Compiler/Produce/UProducerTreeView.pas
r77 r80 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. Method.Name);154 ntFunction: NewNode := TreeView.Items.AddChild(Node, Expression.FunctionCall.Name); 155 155 ntOperator: begin 156 156 NewNode := TreeView.Items.AddChild(Node, Expression.OperatorName); -
branches/Transpascal/Compiler/USourceCode.pas
r78 r80 250 250 NodeType: TNodeType; 251 251 Variable: TVariable; 252 Method: TFunction; 252 Constant: TConstant; 253 FunctionCall: TFunction; 253 254 Value: TValue; 254 255 OperatorName: string; … … 583 584 CommonBlock := Source.CommonBlock; 584 585 NodeType := Source.NodeType; 585 Method := Source.Method;586 FunctionCall := Source.FunctionCall; 586 587 Value := Source.Value; 587 588 Associated := Source.Associated; -
branches/Transpascal/Transpascal.lpi
r79 r80 49 49 </Item4> 50 50 </RequiredPackages> 51 <Units Count="4 7">51 <Units Count="48"> 52 52 <Unit0> 53 53 <Filename Value="Transpascal.lpr"/> 54 54 <IsPartOfProject Value="True"/> 55 55 <UnitName Value="Transpascal"/> 56 <EditorIndex Value=" 7"/>56 <EditorIndex Value="11"/> 57 57 <WindowIndex Value="0"/> 58 58 <TopLine Value="1"/> … … 69 69 <ResourceBaseClass Value="Form"/> 70 70 <UnitName Value="UMainForm"/> 71 <EditorIndex Value=" 6"/>71 <EditorIndex Value="10"/> 72 72 <WindowIndex Value="0"/> 73 73 <TopLine Value="255"/> … … 94 94 <TopLine Value="745"/> 95 95 <CursorPos X="46" Y="759"/> 96 <UsageCount Value="14 6"/>96 <UsageCount Value="145"/> 97 97 <DefaultSyntaxHighlighter Value="Delphi"/> 98 98 </Unit3> … … 103 103 <TopLine Value="1"/> 104 104 <CursorPos X="40" Y="11"/> 105 <UsageCount Value="14 6"/>105 <UsageCount Value="145"/> 106 106 <DefaultSyntaxHighlighter Value="Delphi"/> 107 107 </Unit4> … … 112 112 <TopLine Value="187"/> 113 113 <CursorPos X="34" Y="201"/> 114 <UsageCount Value="14 6"/>114 <UsageCount Value="145"/> 115 115 </Unit5> 116 116 <Unit6> … … 120 120 <TopLine Value="1"/> 121 121 <CursorPos X="1" Y="14"/> 122 <UsageCount Value="14 6"/>122 <UsageCount Value="145"/> 123 123 </Unit6> 124 124 <Unit7> … … 128 128 <TopLine Value="124"/> 129 129 <CursorPos X="42" Y="136"/> 130 <UsageCount Value="14 6"/>130 <UsageCount Value="145"/> 131 131 </Unit7> 132 132 <Unit8> … … 136 136 <TopLine Value="442"/> 137 137 <CursorPos X="47" Y="455"/> 138 <UsageCount Value="14 6"/>138 <UsageCount Value="145"/> 139 139 </Unit8> 140 140 <Unit9> … … 144 144 <TopLine Value="78"/> 145 145 <CursorPos X="27" Y="86"/> 146 <UsageCount Value="3 8"/>146 <UsageCount Value="37"/> 147 147 </Unit9> 148 148 <Unit10> … … 151 151 <TopLine Value="61"/> 152 152 <CursorPos X="7" Y="68"/> 153 <UsageCount Value="4 8"/>153 <UsageCount Value="47"/> 154 154 </Unit10> 155 155 <Unit11> … … 158 158 <TopLine Value="139"/> 159 159 <CursorPos X="16" Y="146"/> 160 <UsageCount Value="4 8"/>160 <UsageCount Value="47"/> 161 161 </Unit11> 162 162 <Unit12> … … 166 166 <TopLine Value="69"/> 167 167 <CursorPos X="1" Y="82"/> 168 <UsageCount Value="10 8"/>168 <UsageCount Value="107"/> 169 169 </Unit12> 170 170 <Unit13> … … 173 173 <TopLine Value="591"/> 174 174 <CursorPos X="3" Y="604"/> 175 <UsageCount Value=" 10"/>175 <UsageCount Value="9"/> 176 176 </Unit13> 177 177 <Unit14> … … 181 181 <TopLine Value="320"/> 182 182 <CursorPos X="1" Y="327"/> 183 <UsageCount Value="6 2"/>183 <UsageCount Value="61"/> 184 184 </Unit14> 185 185 <Unit15> … … 198 198 <TopLine Value="17"/> 199 199 <CursorPos X="11" Y="30"/> 200 <UsageCount Value=" 1"/>200 <UsageCount Value="0"/> 201 201 </Unit16> 202 202 <Unit17> … … 206 206 <TopLine Value="1"/> 207 207 <CursorPos X="33" Y="1"/> 208 <UsageCount Value="2 6"/>208 <UsageCount Value="25"/> 209 209 </Unit17> 210 210 <Unit18> 211 211 <Filename Value="Compiler\UCompiler.pas"/> 212 212 <UnitName Value="UCompiler"/> 213 <EditorIndex Value=" 3"/>213 <EditorIndex Value="7"/> 214 214 <WindowIndex Value="0"/> 215 215 <TopLine Value="1"/> … … 221 221 <Filename Value="Compiler\USourceCode.pas"/> 222 222 <UnitName Value="USourceCode"/> 223 <EditorIndex Value=" 8"/>224 <WindowIndex Value="0"/> 225 <TopLine Value=" 164"/>226 <CursorPos X=" 14" Y="178"/>223 <EditorIndex Value="12"/> 224 <WindowIndex Value="0"/> 225 <TopLine Value="211"/> 226 <CursorPos X="3" Y="224"/> 227 227 <UsageCount Value="100"/> 228 228 <Loaded Value="True"/> … … 231 231 <Filename Value="Compiler\Analyze\UParser.pas"/> 232 232 <UnitName Value="UParser"/> 233 <EditorIndex Value=" 4"/>234 <WindowIndex Value="0"/> 235 <TopLine Value=" 369"/>236 <CursorPos X="1" Y=" 387"/>233 <EditorIndex Value="8"/> 234 <WindowIndex Value="0"/> 235 <TopLine Value="75"/> 236 <CursorPos X="1" Y="88"/> 237 237 <UsageCount Value="103"/> 238 238 <Loaded Value="True"/> … … 302 302 <Filename Value="Compiler\Produce\UProducerTreeView.pas"/> 303 303 <UnitName Value="UProducerTreeView"/> 304 <WindowIndex Value="0"/> 305 <TopLine Value="255"/> 306 <CursorPos X="66" Y="271"/> 307 <UsageCount Value="24"/> 304 <EditorIndex Value="4"/> 305 <WindowIndex Value="0"/> 306 <TopLine Value="141"/> 307 <CursorPos X="81" Y="154"/> 308 <UsageCount Value="25"/> 309 <Loaded Value="True"/> 308 310 </Unit26> 309 311 <Unit27> … … 313 315 <TopLine Value="316"/> 314 316 <CursorPos X="14" Y="329"/> 315 <UsageCount Value="2 4"/>317 <UsageCount Value="23"/> 316 318 </Unit27> 317 319 <Unit28> … … 349 351 <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/> 350 352 <UnitName Value="UProducerDynamicC"/> 351 <EditorIndex Value=" 2"/>352 <WindowIndex Value="0"/> 353 <TopLine Value="2 91"/>354 <CursorPos X=" 27" Y="298"/>353 <EditorIndex Value="3"/> 354 <WindowIndex Value="0"/> 355 <TopLine Value="270"/> 356 <CursorPos X="50" Y="283"/> 355 357 <UsageCount Value="100"/> 356 358 <Loaded Value="True"/> … … 359 361 <Filename Value="Compiler\Produce\UProducerAsm8051.pas"/> 360 362 <UnitName Value="UProducerAsm8051"/> 361 <WindowIndex Value="0"/> 362 <TopLine Value="1"/> 363 <CursorPos X="1" Y="1"/> 364 <UsageCount Value="20"/> 363 <EditorIndex Value="5"/> 364 <WindowIndex Value="0"/> 365 <TopLine Value="144"/> 366 <CursorPos X="56" Y="157"/> 367 <UsageCount Value="21"/> 368 <Loaded Value="True"/> 365 369 </Unit33> 366 370 <Unit34> 367 371 <Filename Value="Compiler\Produce\UProducerPascal.pas"/> 368 372 <UnitName Value="UProducerPascal"/> 369 <WindowIndex Value="0"/> 370 <TopLine Value="181"/> 371 <CursorPos X="9" Y="194"/> 372 <UsageCount Value="17"/> 373 <EditorIndex Value="6"/> 374 <WindowIndex Value="0"/> 375 <TopLine Value="301"/> 376 <CursorPos X="50" Y="314"/> 377 <UsageCount Value="18"/> 378 <Loaded Value="True"/> 373 379 </Unit34> 374 380 <Unit35> … … 378 384 <EditorIndex Value="0"/> 379 385 <WindowIndex Value="0"/> 380 <TopLine Value=" 1034"/>381 <CursorPos X=" 28" Y="1047"/>382 <UsageCount Value="8 2"/>386 <TopLine Value="571"/> 387 <CursorPos X="57" Y="579"/> 388 <UsageCount Value="84"/> 383 389 <Loaded Value="True"/> 384 390 </Unit35> … … 389 395 <TopLine Value="15"/> 390 396 <CursorPos X="1" Y="28"/> 391 <UsageCount Value="5 1"/>397 <UsageCount Value="50"/> 392 398 </Unit36> 393 399 <Unit37> … … 397 403 <TopLine Value="828"/> 398 404 <CursorPos X="27" Y="841"/> 399 <UsageCount Value="2 7"/>405 <UsageCount Value="26"/> 400 406 </Unit37> 401 407 <Unit38> … … 405 411 <TopLine Value="56"/> 406 412 <CursorPos X="3" Y="69"/> 407 <UsageCount Value=" 1"/>413 <UsageCount Value="0"/> 408 414 </Unit38> 409 415 <Unit39> … … 413 419 <TopLine Value="113"/> 414 420 <CursorPos X="3" Y="120"/> 415 <UsageCount Value=" 1"/>421 <UsageCount Value="0"/> 416 422 </Unit39> 417 423 <Unit40> … … 420 426 <TopLine Value="1"/> 421 427 <CursorPos X="24" Y="11"/> 422 <UsageCount Value=" 1"/>428 <UsageCount Value="0"/> 423 429 </Unit40> 424 430 <Unit41> … … 427 433 <TopLine Value="1"/> 428 434 <CursorPos X="17" Y="5"/> 429 <UsageCount Value="1 6"/>435 <UsageCount Value="15"/> 430 436 <DefaultSyntaxHighlighter Value="None"/> 431 437 </Unit41> … … 436 442 <TopLine Value="1"/> 437 443 <CursorPos X="8" Y="8"/> 438 <UsageCount Value="1 6"/>444 <UsageCount Value="15"/> 439 445 </Unit42> 440 446 <Unit43> … … 442 448 <IsPartOfProject Value="True"/> 443 449 <UnitName Value="UDebugLog"/> 444 <EditorIndex Value=" 1"/>450 <EditorIndex Value="2"/> 445 451 <WindowIndex Value="0"/> 446 452 <TopLine Value="36"/> 447 <CursorPos X=" 63" Y="47"/>448 <UsageCount Value="7 1"/>453 <CursorPos X="30" Y="50"/> 454 <UsageCount Value="75"/> 449 455 <Loaded Value="True"/> 450 456 <DefaultSyntaxHighlighter Value="Delphi"/> … … 455 461 <TopLine Value="365"/> 456 462 <CursorPos X="5" Y="370"/> 457 <UsageCount Value="3 1"/>463 <UsageCount Value="30"/> 458 464 </Unit44> 459 465 <Unit45> … … 463 469 <TopLine Value="3"/> 464 470 <CursorPos X="6" Y="16"/> 465 <UsageCount Value=" 10"/>471 <UsageCount Value="9"/> 466 472 </Unit45> 467 473 <Unit46> 468 474 <Filename Value="Compiler\Produce\UProducerGCCC.pas"/> 469 475 <UnitName Value="UProducerGCCC"/> 470 <EditorIndex Value=" 5"/>471 <WindowIndex Value="0"/> 472 <TopLine Value=" 108"/>473 <CursorPos X="3 " Y="121"/>474 <UsageCount Value="1 3"/>476 <EditorIndex Value="9"/> 477 <WindowIndex Value="0"/> 478 <TopLine Value="270"/> 479 <CursorPos X="30" Y="278"/> 480 <UsageCount Value="15"/> 475 481 <Loaded Value="True"/> 476 482 </Unit46> 483 <Unit47> 484 <Filename Value="E:\Programy\Lazarus\fpc\2.4.3\source\packages\fcl-base\src\contnrs.pp"/> 485 <UnitName Value="contnrs"/> 486 <EditorIndex Value="1"/> 487 <WindowIndex Value="0"/> 488 <TopLine Value="66"/> 489 <CursorPos X="14" Y="91"/> 490 <UsageCount Value="10"/> 491 <Loaded Value="True"/> 492 </Unit47> 477 493 </Units> 478 494 <JumpHistory Count="30" HistoryIndex="29"> 479 495 <Position1> 480 496 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 481 <Caret Line=" 974" Column="1" TopLine="953"/>497 <Caret Line="240" Column="1" TopLine="230"/> 482 498 </Position1> 483 499 <Position2> 484 500 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 485 <Caret Line=" 976" Column="1" TopLine="955"/>501 <Caret Line="241" Column="1" TopLine="230"/> 486 502 </Position2> 487 503 <Position3> 488 504 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 489 <Caret Line=" 979" Column="1" TopLine="958"/>505 <Caret Line="14" Column="12" TopLine="1"/> 490 506 </Position3> 491 507 <Position4> 492 508 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 493 <Caret Line=" 980" Column="1" TopLine="959"/>509 <Caret Line="17" Column="4" TopLine="1"/> 494 510 </Position4> 495 511 <Position5> 496 512 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 497 <Caret Line=" 981" Column="24" TopLine="960"/>513 <Caret Line="16" Column="15" TopLine="1"/> 498 514 </Position5> 499 515 <Position6> 500 516 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 501 <Caret Line=" 698" Column="18" TopLine="687"/>517 <Caret Line="14" Column="13" TopLine="1"/> 502 518 </Position6> 503 519 <Position7> 504 520 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 505 <Caret Line=" 696" Column="16" TopLine="687"/>521 <Caret Line="13" Column="17" TopLine="1"/> 506 522 </Position7> 507 523 <Position8> 508 524 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 509 <Caret Line=" 739" Column="1" TopLine="718"/>525 <Caret Line="14" Column="1" TopLine="1"/> 510 526 </Position8> 511 527 <Position9> 512 528 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 513 <Caret Line=" 696" Column="36" TopLine="683"/>529 <Caret Line="13" Column="22" TopLine="1"/> 514 530 </Position9> 515 531 <Position10> 516 532 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 517 <Caret Line=" 695" Column="19" TopLine="683"/>533 <Caret Line="575" Column="24" TopLine="559"/> 518 534 </Position10> 519 535 <Position11> 520 536 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 521 <Caret Line=" 708" Column="1" TopLine="704"/>537 <Caret Line="668" Column="6" TopLine="648"/> 522 538 </Position11> 523 539 <Position12> 524 540 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 525 <Caret Line=" 693" Column="19" TopLine="683"/>541 <Caret Line="446" Column="24" TopLine="439"/> 526 542 </Position12> 527 543 <Position13> 528 544 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 529 <Caret Line=" 38" Column="54" TopLine="25"/>545 <Caret Line="487" Column="28" TopLine="480"/> 530 546 </Position13> 531 547 <Position14> 532 548 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 533 <Caret Line=" 702" Column="64" TopLine="702"/>549 <Caret Line="575" Column="27" TopLine="560"/> 534 550 </Position14> 535 551 <Position15> 536 552 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 537 <Caret Line="6 95" Column="58" TopLine="680"/>553 <Caret Line="624" Column="29" TopLine="615"/> 538 554 </Position15> 539 555 <Position16> 540 556 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 541 <Caret Line=" 706" Column="20" TopLine="698"/>557 <Caret Line="612" Column="70" TopLine="599"/> 542 558 </Position16> 543 559 <Position17> 544 560 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 545 <Caret Line=" 707" Column="23" TopLine="688"/>561 <Caret Line="649" Column="38" TopLine="635"/> 546 562 </Position17> 547 563 <Position18> 548 564 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 549 <Caret Line=" 984" Column="32" TopLine="967"/>565 <Caret Line="627" Column="27" TopLine="623"/> 550 566 </Position18> 551 567 <Position19> 552 568 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 553 <Caret Line=" 991" Column="18" TopLine="967"/>569 <Caret Line="612" Column="63" TopLine="611"/> 554 570 </Position19> 555 571 <Position20> 556 572 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 557 <Caret Line=" 989" Column="74" TopLine="976"/>573 <Caret Line="36" Column="87" TopLine="24"/> 558 574 </Position20> 559 575 <Position21> 560 576 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 561 <Caret Line=" 40" Column="27" TopLine="34"/>577 <Caret Line="575" Column="24" TopLine="562"/> 562 578 </Position21> 563 579 <Position22> 564 580 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 565 <Caret Line=" 762" Column="20" TopLine="739"/>581 <Caret Line="613" Column="17" TopLine="609"/> 566 582 </Position22> 567 583 <Position23> 568 584 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 569 <Caret Line=" 760" Column="17" TopLine="745"/>585 <Caret Line="652" Column="41" TopLine="638"/> 570 586 </Position23> 571 587 <Position24> 572 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>573 <Caret Line=" 752" Column="19" TopLine="746"/>588 <Filename Value="Compiler\USourceCode.pas"/> 589 <Caret Line="273" Column="27" TopLine="260"/> 574 590 </Position24> 575 591 <Position25> 576 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>577 <Caret Line=" 769" Column="1" TopLine="759"/>592 <Filename Value="Compiler\USourceCode.pas"/> 593 <Caret Line="242" Column="37" TopLine="227"/> 578 594 </Position25> 579 595 <Position26> 580 <Filename Value="Compiler\ Analyze\UPascalParser.pas"/>581 <Caret Line=" 770" Column="21" TopLine="760"/>596 <Filename Value="Compiler\USourceCode.pas"/> 597 <Caret Line="237" Column="26" TopLine="224"/> 582 598 </Position26> 583 599 <Position27> 584 600 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 585 <Caret Line=" 1041" Column="28" TopLine="1025"/>601 <Caret Line="652" Column="41" TopLine="638"/> 586 602 </Position27> 587 603 <Position28> 588 604 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 589 <Caret Line=" 1039" Column="9" TopLine="1025"/>605 <Caret Line="656" Column="71" TopLine="641"/> 590 606 </Position28> 591 607 <Position29> 592 608 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 593 <Caret Line=" 1046" Column="35" TopLine="1027"/>609 <Caret Line="619" Column="1" TopLine="600"/> 594 610 </Position29> 595 611 <Position30> 596 612 <Filename Value="Compiler\Analyze\UPascalParser.pas"/> 597 <Caret Line=" 51" Column="14" TopLine="38"/>613 <Caret Line="471" Column="27" TopLine="463"/> 598 614 </Position30> 599 615 </JumpHistory> … … 642 658 </CompilerOptions> 643 659 <Debugging> 644 <BreakPoints Count="1">645 <Item1>646 <Source Value="Compiler\Analyze\UPascalParser.pas"/>647 <Line Value="1036"/>648 </Item1>649 </BreakPoints>650 660 <Exceptions Count="3"> 651 661 <Item1>
Note:
See TracChangeset
for help on using the changeset viewer.