Changeset 26 for trunk


Ignore:
Timestamp:
Dec 8, 2010, 10:00:30 AM (14 years ago)
Author:
george
Message:
  • Removed: Generic template usage form project code. Replaced by TListObject descendants.
Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Compiler/Analyze/UAnalyzer.pas

    r25 r26  
    88uses
    99  SysUtils, Variants, Classes, Contnrs,
    10   Dialogs, USourceCode, FileUtil;
     10  Dialogs, USourceCode, FileUtil, SpecializedObjectList;
    1111
    1212type
     
    8282
    8383  // TListAnalyzer = TGObjectList<Integer, TAnalyzer>
    84   {$DEFINE TGObjectListIndex := Integer}
    85   {$DEFINE TGObjectListItem := TAnalyzer}
    86   {$DEFINE TGObjectListList := TObjectListAnalyzer}
    87   {$DEFINE TGObjectList := TListAnalyzer}
    88   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareAnalyzer}
    89   {$DEFINE TGObjectListStringConverter := TObjectListStringConverterAnalyzer}
    90   {$DEFINE INTERFACE}
    91   {$I 'GenericObjectList.inc'}
     84  TListAnalyzer = class(TListObject);
    9285
    9386resourcestring
     
    9588
    9689implementation
    97 
    98 {$DEFINE IMPLEMENTATION_USES}
    99 {$I 'GenericObjectList.inc'}
    100 
    101 // TListAnalyzer = TGObjectList<Integer, TAnalyzer>
    102 {$DEFINE TGObjectListIndex := Integer}
    103 {$DEFINE TGObjectListItem := TAnalyzer}
    104 {$DEFINE TGObjectListList := TObjectListAnalyzer}
    105 {$DEFINE TGObjectList := TListAnalyzer}
    106 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareAnalyzer}
    107 {$DEFINE TGObjectListStringConverter := TObjectListStringConverterAnalyzer}
    108 {$DEFINE IMPLEMENTATION}
    109 {$I 'GenericObjectList.inc'}
    11090
    11191{ TAnalyzer }
  • trunk/Compiler/Analyze/UAnalyzerPascal.pas

    r24 r26  
    156156        I := 1;
    157157        while (I < Expressions.Count - 1) do begin
    158           if not Expressions[I].Associated and
    159             (Expressions[I].OperatorName = Operators[II]) then
     158          if not TExpression(Expressions[I]).Associated and
     159            (TExpression(Expressions[I]).OperatorName = Operators[II]) then
    160160          begin
    161             Expressions[I].Associated := True;
    162             Expressions[I - 1].SubItems.Last := Expressions[I];
    163             Expressions[I + 1].SubItems.First := Expressions[I];
     161            TExpression(Expressions[I]).Associated := True;
     162            TExpression(Expressions[I - 1]).SubItems.Last := Expressions[I];
     163            TExpression(Expressions[I + 1]).SubItems.First := Expressions[I];
    164164            Expressions.Delete(I);
    165165          end else Inc(I);
    166166        end;
    167167      end;
    168       if Assigned(Expressions.First.SubItems.Last) then
    169         Assign(Expressions.First.SubItems.Last);
    170       Expressions.First.SubItems.Last := nil;
     168      if Assigned(TExpression(Expressions.First).SubItems.Last) then
     169        Assign(TExpression(TExpression(Expressions.First).SubItems.Last));
     170      TExpression(Expressions.First).SubItems.Last := nil;
    171171      //ShowMessage(IntToStr(Expressions.Count));
    172172      if Expressions.Count > 1 then
    173         Expressions[1].SubItems.First := nil;
     173        TExpression(Expressions[1]).SubItems.First := nil;
    174174    end;
    175175  finally
     
    191191    ParseExpression(NewExpression);
    192192
    193     Expressions.Last.SubItems.Last := NewExpression;
    194     with Expressions.Items[Expressions.Add(TExpression.Create)] do
     193    TExpression(Expressions.Last).SubItems.Last := NewExpression;
     194    with TExpression(Expressions.Items[Expressions.Add(TExpression.Create)]) do
    195195    begin
    196196      CommonBlock := SourceCode.CommonBlock;
     
    207207  if IsOperator(NextToken) then begin
    208208    // Operator
    209     Expressions.Last.OperatorName := ReadToken;
    210     Expressions.Last.NodeType := ntOperator;
     209    TExpression(Expressions.Last).OperatorName := ReadToken;
     210    TExpression(Expressions.Last).NodeType := ntOperator;
    211211    Result := True;
    212212  end else Result := False;
     
    320320    end;
    321321    if Assigned(NewExpression) then begin
    322       Expressions.Last.SubItems.Last := NewExpression;
     322      TExpression(Expressions.Last).SubItems.Last := NewExpression;
    323323      with Expressions.Items[Expressions.Add(TExpression.Create)] do
    324324      begin
     
    672672      if UseType is TTypeRecord then begin
    673673        UseFunction := TTypeRecord(UseType).CommonBlock.Functions.Search(UseName);
     674        if not Assigned(UseFunction) then begin
     675          ErrorMessage(SFunctionNotDeclared, [UseName]);
     676          Exit;
     677        end;
     678      end else
     679      if UseType is TTypeClass then begin
     680        UseFunction := TTypeClass(UseType).CommonBlock.Functions.Search(UseName);
    674681        if not Assigned(UseFunction) then begin
    675682          ErrorMessage(SFunctionNotDeclared, [UseName]);
     
    880887        with Call do begin
    881888          ParameterExpression.Add(TExpression.Create);
    882           ParameterExpression.Last.CommonBlock := SourceCode;
    883           ParseExpression(ParameterExpression.Last);
     889          TExpression(ParameterExpression.Last).CommonBlock := SourceCode;
     890          ParseExpression(TExpression(ParameterExpression.Last));
    884891        end;
    885892        Expect(')');
     
    12461253  ): Boolean;
    12471254var
     1255  Visibility: TTypeVisibility;
     1256  SectionType: TCommonBlockSection;
    12481257  NewType2: TType;
    12491258  TempType: TType;
     
    12511260  if NextToken = 'class' then begin
    12521261    Expect('class');
     1262    SectionType := cbsVariable;
     1263    Visibility := tvPublic;
    12531264    TempType := NewType;
    12541265    NewType := TTypeClass.Create;
    12551266    NewType.Assign(TempType);
    12561267    TempType.Free;
    1257     if NextToken <> ';' then begin
    1258       while (NextToken <> 'end') and (NextTokenType <> ttEndOfFile) do
    1259       begin
    1260         if ParseType(NewType.Parent, NewType2, True, ':') then begin
    1261           NewType2.Parent := NewType.Parent;
    1262           TTypeClass(NewType).Items.Add(NewType2);
    1263         end;
    1264         Expect(';');
    1265       end;
    1266       Expect('end');
    1267     end;
     1268    TTypeClass(NewType).CommonBlock.Parent := NewType.Parent.Parent;
     1269    while (NextToken <> 'end') and (NextTokenType <> ttEndOfFile) do begin
     1270      // Visibility sections
     1271      if NextToken = 'public' then begin
     1272        Expect('public');
     1273        Visibility := tvPublic;
     1274      end else
     1275      if NextToken = 'private' then begin
     1276        Expect('private');
     1277        Visibility := tvPrivate;
     1278      end else
     1279      if NextToken = 'published' then begin
     1280        Expect('published');
     1281        Visibility := tvPublished;
     1282      end else
     1283      if NextToken = 'protected' then begin
     1284        Expect('protected');
     1285        Visibility := tvProtected;
     1286      end else
     1287
     1288      // Definition sections
     1289      if NextToken = 'var' then begin
     1290        Expect('var');
     1291        SectionType := cbsVariable;
     1292      end else
     1293      if NextToken = 'const' then begin
     1294        Expect('const');
     1295        SectionType := cbsConstant;
     1296      end else
     1297      if NextToken = 'type' then begin
     1298        Expect('type');
     1299        SectionType := cbsType;
     1300      end;
     1301
     1302      if NextToken = 'procedure' then
     1303        ParseFunction(TTypeClass(NewType).CommonBlock.Functions, True)
     1304      else if NextToken = 'function' then
     1305        ParseFunction(TTypeClass(NewType).CommonBlock.Functions, True)
     1306      else
     1307      if SectionType = cbsConstant then begin
     1308        ParseConstant(TTypeClass(NewType).CommonBlock.Constants, True)
     1309      end else
     1310      if SectionType = cbsVariable then begin
     1311        ParseVariable(TTypeClass(NewType).CommonBlock.Variables, True);
     1312      end else
     1313      if SectionType = cbsType then
     1314      with TTypeClass(NewType).CommonBlock do begin
     1315        if ParseType(Types, NewType2, True, '=') then begin
     1316          Types.Add(NewType2);
     1317          NewType2.Parent := Types;
     1318        end;
     1319      end;
     1320    end;
     1321    Expect('end');
    12681322    Result := True;
    12691323  end else Result := False;
  • trunk/Compiler/Produce/UProducer.pas

    r17 r26  
    77
    88uses
    9   USourceCode, Classes, SysUtils, StrUtils;
     9  USourceCode, Classes, SysUtils, StrUtils, SpecializedObjectList;
    1010
    1111type
     
    2727
    2828  // TListProducer = TGObjectList<Integer, TProducer>
    29   {$DEFINE TGObjectListIndex := Integer}
    30   {$DEFINE TGObjectListItem := TProducer}
    31   {$DEFINE TGObjectListList := TObjectListProducer}
    32   {$DEFINE TGObjectList := TListProducer}
    33   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareProducer}
    34   {$DEFINE TGObjectListStringConverter := TObjectListStringConverterProducer}
    35   {$DEFINE INTERFACE}
    36   {$I 'GenericObjectList.inc'}
     29  TListProducer = class(TListObject);
    3730
    3831implementation
    39 
    40 {$DEFINE IMPLEMENTATION_USES}
    41 {$I 'GenericObjectList.inc'}
    42 
    43 // TListProducer = TGObjectList<Integer, TProducer>
    44 {$DEFINE TGObjectListIndex := Integer}
    45 {$DEFINE TGObjectListItem := TProducer}
    46 {$DEFINE TGObjectListList := TObjectListProducer}
    47 {$DEFINE TGObjectList := TListProducer}
    48 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareProducer}
    49 {$DEFINE TGObjectListStringConverter := TObjectListStringConverterProducer}
    50 {$DEFINE IMPLEMENTATION}
    51 {$I 'GenericObjectList.inc'}
    5232
    5333{ TProducer }
  • trunk/Compiler/Produce/UProducerPascal.pas

    r21 r26  
    137137    with TTypeRecord(AType).CommonBlock do
    138138    for I := 0 to Variables.Count - 1 do begin
    139       Emit(Variables[I].Name + ': ');
    140       GenerateType(Variables[I].ValueType);
     139      Emit(TVariable(Variables[I]).Name + ': ');
     140      GenerateType(TVariable(Variables[I]).ValueType);
    141141      EmitLn(';');
    142142    end;
     
    259259    Inc(Indetation);
    260260    for I := 0 to Constants.Count - 1 do
    261       GenerateConstant(Constants[I]);
     261      GenerateConstant(TConstant(Constants[I]));
    262262    Dec(Indetation);
    263263    Emit('');
  • trunk/Compiler/TranspascalCompiler.lpk

    r17 r26  
    1212      </SearchPaths>
    1313      <Other>
     14        <CompilerMessages>
     15          <IgnoredMessages idx5023="True" idx5024="True" idx5025="True" idx5026="True" idx5027="True" idx5028="True" idx5029="True" idx5030="True" idx5031="True"/>
     16        </CompilerMessages>
    1417        <CustomOptions Value="-dSINGLE_PRODUCER_"/>
    1518        <CompilerPath Value="$(CompPath)"/>
  • trunk/Compiler/USourceCode.pas

    r25 r26  
    5858
    5959  // TListExpression = TGObjectList<Integer, TExpression>
    60   {$DEFINE TGObjectListIndex := Integer}
    61   {$DEFINE TGObjectListItem := TExpression}
    62   {$DEFINE TGObjectListList := TObjectListExpression}
    63   {$DEFINE TGObjectList := TListExpression}
    64   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareExpression}
    65   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterExpression}
    66   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterExpression}
    67   {$DEFINE INTERFACE}
    68   {$I 'GenericObjectList.inc'}
     60  TListExpression = class(TListObject);
    6961
    7062  { TFunctionCall }
     
    129121
    130122  // TListCaseOfEndBranche = TGObjectList<Integer, TCaseOfEndBranche>
    131   {$DEFINE TGObjectListIndex := Integer}
    132   {$DEFINE TGObjectListItem := TCaseOfEndBranche}
    133   {$DEFINE TGObjectListList := TObjectListCaseOfEndBranche}
    134   {$DEFINE TGObjectList := TListCaseOfEndBranche}
    135   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareCaseOfEndBranche}
    136   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterCaseOfEndBranche}
    137   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterCaseOfEndBranche}
    138   {$DEFINE INTERFACE}
    139   {$I 'GenericObjectList.inc'}
     123  TListCaseOfEndBranche = class(TListObject);
    140124
    141125  TCaseOfEnd = class(TCommand)
     
    158142
    159143  // TCommandList = TGObjectList<Integer, TCommand>
    160   {$DEFINE TGObjectListIndex := Integer}
    161   {$DEFINE TGObjectListItem := TCommand}
    162   {$DEFINE TGObjectListList := TObjectListCommand}
    163   {$DEFINE TGObjectList := TCommandList}
    164   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareCommand}
    165   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterCommand}
    166   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterCommand}
    167   {$DEFINE INTERFACE}
    168   {$I 'GenericObjectList.inc'}
     144  TCommandList = class(TListObject);
    169145
    170146  TCommonBlockSection = (cbsVariable, cbsType, cbsConstant);
     
    203179
    204180  // TListType = TGObjectList<Integer, TType>
    205   {$DEFINE TGObjectListIndex := Integer}
    206   {$DEFINE TGObjectListItem := TType}
    207   {$DEFINE TGObjectListList := TObjectListType}
    208   {$DEFINE TGObjectList := TListType}
    209   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareType}
    210   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterType}
    211   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterType}
    212   {$DEFINE INTERFACE}
    213   {$I 'GenericObjectList.inc'}
     181  TListType = class(TListObject);
    214182
    215183  TTypeList = class(TListType)
     
    247215
    248216  // TListEnumItem = TGObjectList<Integer, TEnumItem>
    249   {$DEFINE TGObjectListIndex := Integer}
    250   {$DEFINE TGObjectListItem := TEnumItem}
    251   {$DEFINE TGObjectListList := TObjectListEnumItem}
    252   {$DEFINE TGObjectList := TListEnumItem}
    253   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareEnumItem}
    254   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterEnumItem}
    255   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterEnumItem}
    256   {$DEFINE INTERFACE}
    257   {$I 'GenericObjectList.inc'}
     217  TListEnumItem = class(TListObject);
    258218
    259219  TTypeEnumeration = class(TType)
     
    266226
    267227  TTypeClass = class(TType)
    268     Items: TListType;
     228    CommonBlock: TCommonBlock;
    269229    constructor Create;
    270230    destructor Destroy; override;
     
    280240
    281241  // TListConstant = TGObjectList<Integer, TConstant>
    282   {$DEFINE TGObjectListIndex := Integer}
    283   {$DEFINE TGObjectListItem := TConstant}
    284   {$DEFINE TGObjectListList := TObjectListConstant}
    285   {$DEFINE TGObjectList := TListConstant}
    286   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareConstant}
    287   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterConstant}
    288   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterConstant}
    289   {$DEFINE INTERFACE}
    290   {$I 'GenericObjectList.inc'}
     242  TListConstant = class(TListObject);
    291243
    292244  TConstantList = class(TListConstant)
     
    304256
    305257  // TListVariable = TGObjectList<Integer, TVariable>
    306   {$DEFINE TGObjectListIndex := Integer}
    307   {$DEFINE TGObjectListItem := TVariable}
    308   {$DEFINE TGObjectListList := TObjectListVariable}
    309   {$DEFINE TGObjectList := TListVariable}
    310   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareVariable}
    311   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterVariable}
    312   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterVariable}
    313   {$DEFINE INTERFACE}
    314   {$I 'GenericObjectList.inc'}
     258  TListVariable = class(TListObject);
    315259
    316260  TVariableList = class(TListVariable)
     
    324268
    325269  // TListParameter = TGObjectList<Integer, TParameter>
    326   {$DEFINE TGObjectListIndex := Integer}
    327   {$DEFINE TGObjectListItem := TParameter}
    328   {$DEFINE TGObjectListList := TObjectListParameter}
    329   {$DEFINE TGObjectList := TListParameter}
    330   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareParameter}
    331   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterParameter}
    332   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterParameter}
    333   {$DEFINE INTERFACE}
    334   {$I 'GenericObjectList.inc'}
     270  TListParameter = class(TListObject);
    335271
    336272  TParameterList = class(TListParameter)
     
    373309
    374310  // TListFunction = TGObjectList<Integer, TFunction>
    375   {$DEFINE TGObjectListIndex := Integer}
    376   {$DEFINE TGObjectListItem := TFunction}
    377   {$DEFINE TGObjectListList := TObjectListFunction}
    378   {$DEFINE TGObjectList := TListFunction}
    379   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareFunction}
    380   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterFunction}
    381   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterFunction}
    382   {$DEFINE INTERFACE}
    383   {$I 'GenericObjectList.inc'}
     311  TListFunction = class(TListObject);
    384312
    385313  TFunctionList = class(TListFunction)
     
    397325
    398326  // TListUsedModule = TGObjectList<Integer, TUsedModule>
    399   {$DEFINE TGObjectListIndex := Integer}
    400   {$DEFINE TGObjectListItem := TUsedModule}
    401   {$DEFINE TGObjectListList := TObjectListUsedModule}
    402   {$DEFINE TGObjectList := TListUsedModule}
    403   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareUsedModule}
    404   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterUsedModule}
    405   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterUsedModule}
    406   {$DEFINE INTERFACE}
    407   {$I 'GenericObjectList.inc'}
     327  TListUsedModule = class(TListObject);
    408328
    409329  TUsedModuleList = class(TListUsedModule)
     
    452372
    453373  // TListModule = TGObjectList<Integer, TModule>
    454   {$DEFINE TGObjectListIndex := Integer}
    455   {$DEFINE TGObjectListItem := TModule}
    456   {$DEFINE TGObjectListList := TObjectListModule}
    457   {$DEFINE TGObjectList := TListModule}
    458   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareModule}
    459   {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterModule}
    460   {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterModule}
    461   {$DEFINE INTERFACE}
    462   {$I 'GenericObjectList.inc'}
     374  TListModule = class(TListObject);
    463375
    464376  { TModuleList }
     
    491403implementation
    492404
    493 {$DEFINE IMPLEMENTATION_USES}
    494 {$I 'GenericObjectList.inc'}
    495 
    496 // TListExpression = TGObjectList<Integer, TExpression>
    497 {$DEFINE TGObjectListIndex := Integer}
    498 {$DEFINE TGObjectListItem := TExpression}
    499 {$DEFINE TGObjectListList := TObjectListExpression}
    500 {$DEFINE TGObjectList := TListExpression}
    501 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareExpression}
    502 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterExpression}
    503 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterExpression}
    504 {$DEFINE IMPLEMENTATION}
    505 {$I 'GenericObjectList.inc'}
    506 
    507 // TListCaseOfEndBranche = TGObjectList<Integer, TCaseOfEndBranche>
    508 {$DEFINE TGObjectListIndex := Integer}
    509 {$DEFINE TGObjectListItem := TCaseOfEndBranche}
    510 {$DEFINE TGObjectListList := TObjectListCaseOfEndBranche}
    511 {$DEFINE TGObjectList := TListCaseOfEndBranche}
    512 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareCaseOfEndBranche}
    513 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterCaseOfEndBranche}
    514 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterCaseOfEndBranche}
    515 {$DEFINE IMPLEMENTATION}
    516 {$I 'GenericObjectList.inc'}
    517 
    518 // TCommandList = TGObjectList<Integer, TCommand>
    519 {$DEFINE TGObjectListIndex := Integer}
    520 {$DEFINE TGObjectListItem := TCommand}
    521 {$DEFINE TGObjectListList := TObjectListCommand}
    522 {$DEFINE TGObjectList := TCommandList}
    523 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareCommand}
    524 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterCommand}
    525 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterCommand}
    526 {$DEFINE IMPLEMENTATION}
    527 {$I 'GenericObjectList.inc'}
    528 
    529 // TListEnumItem = TGObjectList<Integer, TEnumItem>
    530 {$DEFINE TGObjectListIndex := Integer}
    531 {$DEFINE TGObjectListItem := TEnumItem}
    532 {$DEFINE TGObjectListList := TObjectListEnumItem}
    533 {$DEFINE TGObjectList := TListEnumItem}
    534 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareEnumItem}
    535 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterEnumItem}
    536 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterEnumItem}
    537 {$DEFINE IMPLEMENTATION}
    538 {$I 'GenericObjectList.inc'}
    539 
    540 // TListType = TGObjectList<Integer, TType>
    541 {$DEFINE TGObjectListIndex := Integer}
    542 {$DEFINE TGObjectListItem := TType}
    543 {$DEFINE TGObjectListList := TObjectListType}
    544 {$DEFINE TGObjectList := TListType}
    545 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareType}
    546 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterType}
    547 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterType}
    548 {$DEFINE IMPLEMENTATION}
    549 {$I 'GenericObjectList.inc'}
    550 
    551 // TListConstant = TGObjectList<Integer, TConstant>
    552 {$DEFINE TGObjectListIndex := Integer}
    553 {$DEFINE TGObjectListItem := TConstant}
    554 {$DEFINE TGObjectListList := TObjectListConstant}
    555 {$DEFINE TGObjectList := TListConstant}
    556 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareConstant}
    557 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterConstant}
    558 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterConstant}
    559 {$DEFINE IMPLEMENTATION}
    560 {$I 'GenericObjectList.inc'}
    561 
    562 // TListVariable = TGObjectList<Integer, TVariable>
    563 {$DEFINE TGObjectListIndex := Integer}
    564 {$DEFINE TGObjectListItem := TVariable}
    565 {$DEFINE TGObjectListList := TObjectListVariable}
    566 {$DEFINE TGObjectList := TListVariable}
    567 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareVariable}
    568 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterVariable}
    569 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterVariable}
    570 {$DEFINE IMPLEMENTATION}
    571 {$I 'GenericObjectList.inc'}
    572 
    573 // TListParameter = TGObjectList<Integer, TParameter>
    574 {$DEFINE TGObjectListIndex := Integer}
    575 {$DEFINE TGObjectListItem := TParameter}
    576 {$DEFINE TGObjectListList := TObjectListParameter}
    577 {$DEFINE TGObjectList := TListParameter}
    578 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareParameter}
    579 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterParameter}
    580 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterParameter}
    581 {$DEFINE IMPLEMENTATION}
    582 {$I 'GenericObjectList.inc'}
    583 
    584 // TListFunction = TGObjectList<Integer, TFunction>
    585 {$DEFINE TGObjectListIndex := Integer}
    586 {$DEFINE TGObjectListItem := TFunction}
    587 {$DEFINE TGObjectListList := TObjectListFunction}
    588 {$DEFINE TGObjectList := TListFunction}
    589 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareFunction}
    590 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterFunction}
    591 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterFunction}
    592 {$DEFINE IMPLEMENTATION}
    593 {$I 'GenericObjectList.inc'}
    594 
    595 // TListUsedModule = TGObjectList<Integer, TUsedModule>
    596 {$DEFINE TGObjectListIndex := Integer}
    597 {$DEFINE TGObjectListItem := TUsedModule}
    598 {$DEFINE TGObjectListList := TObjectListUsedModule}
    599 {$DEFINE TGObjectList := TListUsedModule}
    600 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareUsedModule}
    601 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterUsedModule}
    602 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterUsedModule}
    603 {$DEFINE IMPLEMENTATION}
    604 {$I 'GenericObjectList.inc'}
    605 
    606 // TListModule = TGObjectList<Integer, TModule>
    607 {$DEFINE TGObjectListIndex := Integer}
    608 {$DEFINE TGObjectListItem := TModule}
    609 {$DEFINE TGObjectListList := TObjectListModule}
    610 {$DEFINE TGObjectList := TListModule}
    611 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareModule}
    612 {$DEFINE TGObjectListToStringConverter := TObjectListToStringConverterModule}
    613 {$DEFINE TGObjectListFromStringConverter := TObjectListFromStringConverterModule}
    614 {$DEFINE IMPLEMENTATION}
    615 {$I 'GenericObjectList.inc'}
    616 
    617405{ TFunction }
    618406
     
    661449begin
    662450  I := 0;
    663   while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I);
    664   if I < Count then Result := Items[I] else begin
     451  while (I < Count) and (LowerCase(TConstant(Items[I]).Name) <> LowerCase(Name)) do Inc(I);
     452  if I < Count then Result := TConstant(Items[I]) else begin
    665453    if Assigned(Parent.Parent) then Result := Parent.Parent.Constants.Search(Name)
    666454      else begin
     
    742530  // Search in own list
    743531  I := 0;
    744   while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I);
    745   if I < Count then Result := Items[I]
     532  while (I < Count) and (LowerCase(TType(Items[I]).Name) <> LowerCase(Name)) do Inc(I);
     533  if I < Count then Result := TType(Items[I])
    746534    else Result := nil;
    747535
     
    769557  // Search in own list
    770558  I := 0;
    771   while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I);
     559  while (I < Count) and (LowerCase(TVariable(Items[I]).Name) <> LowerCase(Name)) do Inc(I);
    772560  if I < Count then Result := TVariable(Items[I]) else Result := nil;
    773561
     
    814602  // Search in own list
    815603  I := 0;
    816   while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I);
    817   if I < Count then Result := Items[I] else Result := nil;
     604  while (I < Count) and (LowerCase(TFunction(Items[I]).Name) <> LowerCase(Name)) do Inc(I);
     605  if I < Count then Result := TFunction(Items[I]) else Result := nil;
    818606
    819607  // Search parent block list
     
    865653begin
    866654  I := 0;
    867   while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I);
    868   if I < Count then Result := Items[I]
     655  while (I < Count) and (LowerCase(TParameter(Items[I]).Name) <> LowerCase(Name)) do Inc(I);
     656  if I < Count then Result := TParameter(Items[I])
    869657    else Result := nil;
    870658end;
     
    995783begin
    996784  I := 0;
    997   while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I);
    998   if I < Count then Result := Items[I] else Result := nil;
     785  while (I < Count) and (LowerCase(TModule(Items[I]).Name) <> LowerCase(Name)) do Inc(I);
     786  if I < Count then Result := TModule(Items[I])
     787    else Result := nil;
    999788end;
    1000789
     
    1010799    I := 0;
    1011800    while (I < UsedModules.Count) and (not Assigned(Result)) do begin
    1012       Result := UsedModules[I].Module.SearchVariable(Name, False);
     801      Result := TUsedModule(UsedModules[I]).Module.SearchVariable(Name, False);
    1013802      Inc(I);
    1014803    end;
     
    1030819    I := 0;
    1031820    while (I < UsedModules.Count) and (not Assigned(Result)) do begin
    1032       with UsedModules[I] do
     821      with TUsedModule(UsedModules[I]) do
    1033822        if Assigned(Module) then
    1034823        with Module do
     
    1048837    I := 0;
    1049838    while (I < UsedModules.Count) and (not Assigned(Result)) do begin
    1050     if Assigned(UsedModules[I].Module) then
    1051       Result := UsedModules[I].Module.SearchFunction(Name, False);
     839    if Assigned(TUsedModule(UsedModules[I]).Module) then
     840      Result := TUsedModule(UsedModules[I]).Module.SearchFunction(Name, False);
    1052841      Inc(I);
    1053842    end;
     
    1103892begin
    1104893  inherited;
    1105   Items := TListType.Create;
     894  CommonBlock := TCommonBlock.Create;
    1106895end;
    1107896
    1108897destructor TTypeClass.Destroy;
    1109898begin
    1110   Items.Free;
     899  CommonBlock.Free;
    1111900  inherited Destroy;
    1112901end;
     
    1125914      NewType := TType.Create;
    1126915      //NewType := TType(Source.Parameters[I].ClassType.Create);
    1127       NewType.Assign(Source.Parameters[I]);
     916      NewType.Assign(TType(Source.Parameters[I]));
    1128917      Parameters.Add(NewType);
    1129918    end;
  • trunk/IDE/Forms/UMainForm.pas

    r25 r26  
    1111  UProject, FileUtil, Menus, ActnList, UCoolDocking,
    1212  UCompiledForm, UCodeTreeForm, URegistry, ULastOpenedList, UApplicationInfo,
    13   UDebugLog;
     13  UDebugLog, UAnalyzer, UProducer;
    1414
    1515const
     
    9797  if (ComboBoxAnalyzer.Items.Count > 0) and (ComboBoxAnalyzer.ItemIndex <> -1) and
    9898    (ComboBoxProducer.Items.Count > 0) and (ComboBoxProducer.ItemIndex <> -1) then begin
    99     Compiler.Producer := Compiler.Producers[ComboBoxProducer.ItemIndex];
    100     Compiler.Analyzer := Compiler.Analyzers[ComboBoxAnalyzer.ItemIndex];
     99    Compiler.Producer := TProducer(Compiler.Producers[ComboBoxProducer.ItemIndex]);
     100    Compiler.Analyzer := TAnalyzer(Compiler.Analyzers[ComboBoxAnalyzer.ItemIndex]);
    101101    Compiler.Analyzer.OnGetSource := GetSource;
    102102    Compiler.Init;
     
    237237  ComboBoxProducer.Clear;
    238238  for I := 0 to Compiler.Producers.Count - 1 do
    239     ComboBoxProducer.AddItem(Compiler.Producers[I].Name, nil);
     239    ComboBoxProducer.AddItem(TProducer(Compiler.Producers[I]).Name, nil);
    240240
    241241  ComboBoxAnalyzer.Clear;
    242242  for I := 0 to Compiler.Analyzers.Count - 1 do
    243     ComboBoxAnalyzer.AddItem(Compiler.Analyzers[I].Name, nil);
     243    ComboBoxAnalyzer.AddItem(TAnalyzer(Compiler.Analyzers[I]).Name, nil);
    244244end;
    245245
  • trunk/IDE/Transpascal.lpi

    r24 r26  
    5353      </Item5>
    5454    </RequiredPackages>
    55     <Units Count="74">
     55    <Units Count="75">
    5656      <Unit0>
    5757        <Filename Value="Transpascal.lpr"/>
     
    7171        <ResourceBaseClass Value="Form"/>
    7272        <UnitName Value="UMainForm"/>
     73        <IsVisibleTab Value="True"/>
    7374        <EditorIndex Value="0"/>
    7475        <WindowIndex Value="0"/>
    75         <TopLine Value="1"/>
    76         <CursorPos X="49" Y="9"/>
     76        <TopLine Value="226"/>
     77        <CursorPos X="40" Y="239"/>
    7778        <UsageCount Value="215"/>
    7879        <Loaded Value="True"/>
     
    184185        <EditorIndex Value="6"/>
    185186        <WindowIndex Value="0"/>
    186         <TopLine Value="7"/>
    187         <CursorPos X="30" Y="25"/>
     187        <TopLine Value="1"/>
     188        <CursorPos X="24" Y="10"/>
    188189        <UsageCount Value="223"/>
    189190        <Loaded Value="True"/>
     
    220221        <ResourceBaseClass Value="Form"/>
    221222        <UnitName Value="UProjectManager"/>
    222         <EditorIndex Value="18"/>
     223        <EditorIndex Value="20"/>
    223224        <WindowIndex Value="0"/>
    224225        <TopLine Value="68"/>
     
    235236        <ResourceBaseClass Value="Form"/>
    236237        <UnitName Value="UCodeForm"/>
    237         <EditorIndex Value="7"/>
     238        <EditorIndex Value="8"/>
    238239        <WindowIndex Value="0"/>
    239240        <TopLine Value="36"/>
     
    250251        <ResourceBaseClass Value="Form"/>
    251252        <UnitName Value="UMessagesForm"/>
    252         <EditorIndex Value="10"/>
     253        <EditorIndex Value="11"/>
    253254        <WindowIndex Value="0"/>
    254255        <TopLine Value="47"/>
     
    457458        <EditorIndex Value="16"/>
    458459        <WindowIndex Value="0"/>
    459         <TopLine Value="71"/>
    460         <CursorPos X="1" Y="85"/>
     460        <TopLine Value="26"/>
     461        <CursorPos X="14" Y="54"/>
    461462        <UsageCount Value="82"/>
    462463        <Loaded Value="True"/>
     
    480481        <Filename Value="..\Compiler\UCompiler.pas"/>
    481482        <UnitName Value="UCompiler"/>
    482         <EditorIndex Value="11"/>
    483         <WindowIndex Value="0"/>
    484         <TopLine Value="60"/>
    485         <CursorPos X="45" Y="68"/>
     483        <EditorIndex Value="12"/>
     484        <WindowIndex Value="0"/>
     485        <TopLine Value="43"/>
     486        <CursorPos X="31" Y="56"/>
    486487        <UsageCount Value="40"/>
    487488        <Loaded Value="True"/>
     
    490491        <Filename Value="..\Compiler\Produce\UProducer.pas"/>
    491492        <UnitName Value="UProducer"/>
    492         <WindowIndex Value="0"/>
    493         <TopLine Value="58"/>
    494         <CursorPos X="1" Y="79"/>
     493        <EditorIndex Value="7"/>
     494        <WindowIndex Value="0"/>
     495        <TopLine Value="1"/>
     496        <CursorPos X="66" Y="9"/>
    495497        <UsageCount Value="30"/>
     498        <Loaded Value="True"/>
    496499      </Unit47>
    497500      <Unit48>
    498501        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
    499502        <UnitName Value="UAnalyzer"/>
    500         <EditorIndex Value="12"/>
    501         <WindowIndex Value="0"/>
    502         <TopLine Value="36"/>
    503         <CursorPos X="5" Y="49"/>
     503        <EditorIndex Value="13"/>
     504        <WindowIndex Value="0"/>
     505        <TopLine Value="22"/>
     506        <CursorPos X="3" Y="35"/>
    504507        <UsageCount Value="39"/>
    505508        <Loaded Value="True"/>
     
    508511        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    509512        <UnitName Value="UAnalyzerPascal"/>
    510         <EditorIndex Value="17"/>
    511         <WindowIndex Value="0"/>
    512         <TopLine Value="1239"/>
    513         <CursorPos X="1" Y="1255"/>
     513        <EditorIndex Value="19"/>
     514        <WindowIndex Value="0"/>
     515        <TopLine Value="877"/>
     516        <CursorPos X="65" Y="890"/>
    514517        <UsageCount Value="39"/>
    515518        <Loaded Value="True"/>
     
    518521        <Filename Value="..\Compiler\Produce\UProducerPascal.pas"/>
    519522        <UnitName Value="UProducerPascal"/>
    520         <EditorIndex Value="13"/>
    521         <WindowIndex Value="0"/>
    522         <TopLine Value="164"/>
    523         <CursorPos X="52" Y="171"/>
     523        <EditorIndex Value="14"/>
     524        <WindowIndex Value="0"/>
     525        <TopLine Value="248"/>
     526        <CursorPos X="37" Y="261"/>
    524527        <UsageCount Value="39"/>
    525528        <Loaded Value="True"/>
     
    552555        <Filename Value="..\Compiler\USourceCode.pas"/>
    553556        <UnitName Value="USourceCode"/>
    554         <IsVisibleTab Value="True"/>
    555         <EditorIndex Value="14"/>
    556         <WindowIndex Value="0"/>
    557         <TopLine Value="1090"/>
    558         <CursorPos X="30" Y="1103"/>
     557        <EditorIndex Value="15"/>
     558        <WindowIndex Value="0"/>
     559        <TopLine Value="903"/>
     560        <CursorPos X="50" Y="916"/>
    559561        <UsageCount Value="39"/>
    560562        <Loaded Value="True"/>
     
    611613      <Unit61>
    612614        <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Generic\GenericObjectList.inc"/>
    613         <EditorIndex Value="15"/>
    614         <WindowIndex Value="0"/>
    615         <TopLine Value="65"/>
     615        <EditorIndex Value="18"/>
     616        <WindowIndex Value="0"/>
     617        <TopLine Value="70"/>
    616618        <CursorPos X="1" Y="78"/>
    617619        <UsageCount Value="12"/>
     
    645647        <Filename Value="E:\Programy\Lazarus\components\synedit\synedit.pp"/>
    646648        <UnitName Value="SynEdit"/>
    647         <EditorIndex Value="8"/>
     649        <EditorIndex Value="9"/>
    648650        <WindowIndex Value="0"/>
    649651        <TopLine Value="4144"/>
     
    655657        <Filename Value="E:\Programy\Lazarus\components\synedit\syneditmiscclasses.pp"/>
    656658        <UnitName Value="SynEditMiscClasses"/>
    657         <EditorIndex Value="9"/>
     659        <EditorIndex Value="10"/>
    658660        <WindowIndex Value="0"/>
    659661        <TopLine Value="93"/>
     
    717719        <Loaded Value="True"/>
    718720      </Unit73>
     721      <Unit74>
     722        <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Specialized\SpecializedList.pas"/>
     723        <UnitName Value="SpecializedList"/>
     724        <EditorIndex Value="17"/>
     725        <WindowIndex Value="0"/>
     726        <TopLine Value="28"/>
     727        <CursorPos X="1" Y="1"/>
     728        <UsageCount Value="10"/>
     729        <Loaded Value="True"/>
     730      </Unit74>
    719731    </Units>
    720     <JumpHistory Count="29" HistoryIndex="28">
     732    <JumpHistory Count="30" HistoryIndex="29">
    721733      <Position1>
    722734        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    723         <Caret Line="1252" Column="1" TopLine="1239"/>
     735        <Caret Line="702" Column="26" TopLine="59"/>
    724736      </Position1>
    725737      <Position2>
    726738        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    727         <Caret Line="1253" Column="1" TopLine="1239"/>
     739        <Caret Line="158" Column="18" TopLine="145"/>
    728740      </Position2>
    729741      <Position3>
    730742        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    731         <Caret Line="1254" Column="1" TopLine="1239"/>
     743        <Caret Line="159" Column="41" TopLine="146"/>
    732744      </Position3>
    733745      <Position4>
    734746        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    735         <Caret Line="1255" Column="1" TopLine="1239"/>
     747        <Caret Line="161" Column="40" TopLine="148"/>
    736748      </Position4>
    737749      <Position5>
    738         <Filename Value="..\Compiler\USourceCode.pas"/>
    739         <Caret Line="1099" Column="1" TopLine="1094"/>
     750        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     751        <Caret Line="163" Column="25" TopLine="149"/>
    740752      </Position5>
    741753      <Position6>
    742         <Filename Value="..\Compiler\USourceCode.pas"/>
    743         <Caret Line="1100" Column="1" TopLine="1094"/>
     754        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     755        <Caret Line="168" Column="31" TopLine="155"/>
    744756      </Position6>
    745757      <Position7>
    746         <Filename Value="..\Compiler\USourceCode.pas"/>
    747         <Caret Line="1101" Column="1" TopLine="1094"/>
     758        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     759        <Caret Line="169" Column="28" TopLine="156"/>
    748760      </Position7>
    749761      <Position8>
    750         <Filename Value="..\Compiler\USourceCode.pas"/>
    751         <Caret Line="1102" Column="1" TopLine="1094"/>
     762        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     763        <Caret Line="170" Column="19" TopLine="157"/>
    752764      </Position8>
    753765      <Position9>
    754         <Filename Value="..\Compiler\USourceCode.pas"/>
    755         <Caret Line="1103" Column="1" TopLine="1094"/>
     766        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     767        <Caret Line="173" Column="21" TopLine="160"/>
    756768      </Position9>
    757769      <Position10>
    758         <Filename Value="..\Compiler\USourceCode.pas"/>
    759         <Caret Line="1104" Column="1" TopLine="1094"/>
     770        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     771        <Caret Line="193" Column="17" TopLine="180"/>
    760772      </Position10>
    761773      <Position11>
    762         <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Generic\GenericList.inc"/>
    763         <Caret Line="84" Column="1" TopLine="71"/>
     774        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     775        <Caret Line="196" Column="58" TopLine="183"/>
    764776      </Position11>
    765777      <Position12>
    766         <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Generic\GenericList.inc"/>
    767         <Caret Line="85" Column="1" TopLine="71"/>
     778        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     779        <Caret Line="194" Column="77" TopLine="183"/>
    768780      </Position12>
    769781      <Position13>
    770         <Filename Value="..\Compiler\USourceCode.pas"/>
    771         <Caret Line="1099" Column="1" TopLine="1094"/>
     782        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     783        <Caret Line="209" Column="17" TopLine="196"/>
    772784      </Position13>
    773785      <Position14>
    774         <Filename Value="..\Compiler\USourceCode.pas"/>
    775         <Caret Line="1100" Column="1" TopLine="1094"/>
     786        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     787        <Caret Line="210" Column="17" TopLine="197"/>
    776788      </Position14>
    777789      <Position15>
    778         <Filename Value="..\Compiler\USourceCode.pas"/>
    779         <Caret Line="1101" Column="1" TopLine="1094"/>
     790        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     791        <Caret Line="322" Column="19" TopLine="309"/>
    780792      </Position15>
    781793      <Position16>
    782794        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    783         <Caret Line="1252" Column="1" TopLine="1239"/>
     795        <Caret Line="889" Column="23" TopLine="876"/>
    784796      </Position16>
    785797      <Position17>
    786         <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    787         <Caret Line="1059" Column="1" TopLine="1046"/>
     798        <Filename Value="..\Compiler\Produce\UProducerPascal.pas"/>
     799        <Caret Line="171" Column="52" TopLine="164"/>
    788800      </Position17>
    789801      <Position18>
    790         <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    791         <Caret Line="1252" Column="1" TopLine="1239"/>
     802        <Filename Value="..\Compiler\Produce\UProducerPascal.pas"/>
     803        <Caret Line="139" Column="12" TopLine="126"/>
    792804      </Position18>
    793805      <Position19>
    794         <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    795         <Caret Line="1253" Column="1" TopLine="1239"/>
     806        <Filename Value="..\Compiler\Produce\UProducerPascal.pas"/>
     807        <Caret Line="140" Column="43" TopLine="127"/>
    796808      </Position19>
    797809      <Position20>
    798         <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    799         <Caret Line="1254" Column="1" TopLine="1239"/>
     810        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     811        <Caret Line="91" Column="1" TopLine="79"/>
    800812      </Position20>
    801813      <Position21>
    802         <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    803         <Caret Line="1255" Column="1" TopLine="1239"/>
     814        <Filename Value="Forms\UMainForm.pas"/>
     815        <Caret Line="9" Column="49" TopLine="1"/>
    804816      </Position21>
    805817      <Position22>
    806         <Filename Value="..\Compiler\USourceCode.pas"/>
    807         <Caret Line="1099" Column="1" TopLine="1094"/>
     818        <Filename Value="Forms\UMainForm.pas"/>
     819        <Caret Line="100" Column="20" TopLine="87"/>
    808820      </Position22>
    809821      <Position23>
    810         <Filename Value="..\Compiler\USourceCode.pas"/>
    811         <Caret Line="1100" Column="1" TopLine="1094"/>
     822        <Filename Value="..\Compiler\UCompiler.pas"/>
     823        <Caret Line="56" Column="31" TopLine="43"/>
    812824      </Position23>
    813825      <Position24>
    814         <Filename Value="..\Compiler\USourceCode.pas"/>
    815         <Caret Line="1101" Column="1" TopLine="1094"/>
     826        <Filename Value="Forms\UMainForm.pas"/>
     827        <Caret Line="100" Column="20" TopLine="87"/>
    816828      </Position24>
    817829      <Position25>
    818         <Filename Value="..\Compiler\USourceCode.pas"/>
    819         <Caret Line="1102" Column="1" TopLine="1094"/>
     830        <Filename Value="Forms\UMainForm.pas"/>
     831        <Caret Line="13" Column="23" TopLine="1"/>
    820832      </Position25>
    821833      <Position26>
    822         <Filename Value="..\Compiler\USourceCode.pas"/>
    823         <Caret Line="1103" Column="1" TopLine="1094"/>
     834        <Filename Value="UProject.pas"/>
     835        <Caret Line="75" Column="1" TopLine="74"/>
    824836      </Position26>
    825837      <Position27>
    826         <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Generic\GenericList.inc"/>
    827         <Caret Line="84" Column="1" TopLine="71"/>
     838        <Filename Value="..\Compiler\Produce\UProducer.pas"/>
     839        <Caret Line="29" Column="38" TopLine="24"/>
    828840      </Position27>
    829841      <Position28>
    830         <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Generic\GenericList.inc"/>
    831         <Caret Line="85" Column="1" TopLine="71"/>
     842        <Filename Value="Forms\UMainForm.pas"/>
     843        <Caret Line="243" Column="40" TopLine="230"/>
    832844      </Position28>
    833845      <Position29>
    834         <Filename Value="..\Compiler\USourceCode.pas"/>
    835         <Caret Line="1103" Column="30" TopLine="1094"/>
     846        <Filename Value="Forms\UMainForm.pas"/>
     847        <Caret Line="99" Column="1" TopLine="86"/>
    836848      </Position29>
     849      <Position30>
     850        <Filename Value="Forms\UMainForm.pas"/>
     851        <Caret Line="13" Column="34" TopLine="8"/>
     852      </Position30>
    837853    </JumpHistory>
    838854  </ProjectOptions>
     
    872888    </Linking>
    873889    <Other>
    874       <CompilerMessages>
    875         <IgnoredMessages idx5023="True" idx5024="True" idx5025="True" idx5026="True" idx5027="True" idx5028="True" idx5029="True" idx5030="True" idx5031="True"/>
    876         <UseMsgFile Value="True"/>
    877       </CompilerMessages>
    878890      <CompilerPath Value="$(CompPath)"/>
    879891    </Other>
    880892  </CompilerOptions>
    881893  <Debugging>
    882     <BreakPoints Count="2">
    883       <Item1>
    884         <Source Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    885         <Line Value="1252"/>
    886       </Item1>
    887       <Item2>
    888         <Source Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
    889         <Line Value="1059"/>
    890       </Item2>
    891     </BreakPoints>
    892894    <Exceptions Count="3">
    893895      <Item1>
  • trunk/IDE/UProject.pas

    r24 r26  
    77
    88uses
    9   Classes, SysUtils, Dialogs, DOM, XMLWrite, XMLRead, FileUtil;
     9  Classes, SysUtils, Dialogs, DOM, XMLWrite, XMLRead, FileUtil,
     10  SpecializedObjectList;
    1011
    1112type
     
    3132
    3233  // TListProjectNode = TGObjectList<Integer, TProjectNode>
    33   {$DEFINE TGObjectListIndex := Integer}
    34   {$DEFINE TGObjectListItem := TProjectNode}
    35   {$DEFINE TGObjectListList := TObjectListProjectNode}
    36   {$DEFINE TGObjectList := TListProjectNode}
    37   {$DEFINE TGObjectListSortCompare := TObjectListSortCompareProjectNode}
    38   {$DEFINE TGObjectListStringConverter := TObjectListStringConverterProjectNode}
    39   {$DEFINE INTERFACE}
    40   {$I 'GenericObjectList.inc'}
     34  TListProjectNode = class(TListObject);
    4135
    4236  { TProjectFile }
     
    8074
    8175
    82 {$DEFINE IMPLEMENTATION_USES}
    83 {$INCLUDE 'GenericObjectList.inc'}
    84 
    85 // TListProjectNode = TGObjectList<Integer, TProjectNode>
    86 {$DEFINE TGObjectListIndex := Integer}
    87 {$DEFINE TGObjectListItem := TProjectNode}
    88 {$DEFINE TGObjectListList := TObjectListProjectNode}
    89 {$DEFINE TGObjectList := TListProjectNode}
    90 {$DEFINE TGObjectListSortCompare := TObjectListSortCompareProjectNode}
    91 {$DEFINE TGObjectListStringConverter := TObjectListStringConverterProjectNode}
    92 {$DEFINE IMPLEMENTATION}
    93 {$INCLUDE 'GenericObjectList.inc'}
    9476
    9577{ TProjectGroup }
Note: See TracChangeset for help on using the changeset viewer.