Changeset 75


Ignore:
Timestamp:
Oct 21, 2010, 7:56:25 AM (14 years ago)
Author:
george
Message:
  • Modified: Parsing sections in record type.
Location:
branches/Transpascal
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • branches/Transpascal/Compiler/Analyze/UPascalParser.pas

    r74 r75  
    2626    procedure ParseUnitImplementation(SourceCode: TModuleUnit);
    2727    procedure ParseProgram(SourceCode: TModuleProgram);
    28     procedure ParseCommonBlock(SourceCode: TCommonBlock; EndSymbol: char = ';');
     28    procedure ParseCommonBlock(SourceCode: TCommonBlock; EndSymbol: char = ';';
     29      WithBody: Boolean = True);
    2930    procedure ParseCommonBlockInterface(SourceCode: TCommonBlock);
    3031    function ParseCommand(SourceCode: TCommonBlock): TCommand;
     
    368369
    369370    ParseCommonBlock(Body, '.');
     371    SourceCode.ParentProgram.Modules.Add(SourceCode);
    370372  end;
    371373end;
     
    384386  if NextToken = 'implementation' then
    385387    ParseUnitImplementation(SourceCode);
     388
     389  SourceCode.ParentProgram.Modules.Add(SourceCode);
    386390
    387391  if NextToken = 'initialization' then begin
     
    411415    ParseUses(SourceCode.UsedModules, False);
    412416
    413   ParseCommonBlock(SourceCode.Body, '.');
     417  ParseCommonBlock(SourceCode.Body, '.', False);
    414418end;
    415419
     
    417421
    418422procedure TPascalParser.ParseCommonBlock(SourceCode: TCommonBlock;
    419   EndSymbol: char = ';');
     423  EndSymbol: char = ';'; WithBody: Boolean = True);
    420424begin
    421425  with SourceCode do begin
    422426    while (NextToken <> EndSymbol) do begin
    423       if NextToken = 'var' then
     427      if NextToken = 'var' then begin
     428        Expect('var');
    424429        ParseVariableList(Variables)
    425       else if NextToken = 'const' then
     430      end else
     431      if NextToken = 'const' then begin
     432        Expect('const');
    426433        ParseConstantList(Constants)
    427       else if NextToken = 'type' then
    428         ParseTypeList(Types)
    429       else if NextToken = 'procedure' then
     434      end else
     435      if NextToken = 'type' then begin
     436        Expect('type');
     437        ParseTypeList(Types);
     438      end else
     439      if NextToken = 'procedure' then
    430440        ParseFunctionList(Functions)
    431441      else if NextToken = 'function' then
    432442        ParseFunctionList(Functions)
    433443      else begin
    434         ParseBeginEnd(Code);
     444        if WithBody then
     445          ParseBeginEnd(Code);
    435446        Break;
    436447      end;
    437448    end;
    438     Expect(EndSymbol);
     449    if WithBody then Expect(EndSymbol);
    439450  end;
    440451end;
     
    444455  with SourceCode do begin
    445456    while (NextToken <> 'implementation') and (NextTokenType <> ttEndOfFile) do begin
    446       if NextToken = 'var' then
    447         ParseVariableList(Variables)
    448       else if NextToken = 'const' then
    449         ParseConstantList(Constants, True)
    450       else if NextToken = 'type' then
    451         ParseTypeList(Types, True)
    452       else if NextToken = 'procedure' then
     457      if NextToken = 'var' then begin
     458        Expect('var');
     459        ParseVariableList(Variables);
     460      end else
     461      if NextToken = 'const' then begin
     462        Expect('const');
     463        ParseConstantList(Constants, True);
     464      end else
     465      if NextToken = 'type' then begin
     466        Expect('type');
     467        ParseTypeList(Types, True);
     468      end else
     469      if NextToken = 'procedure' then
    453470        ParseFunctionList(Functions, True)
    454471      else if NextToken = 'function' then
     
    496513  I: integer;
    497514begin
     515  try
    498516  Identifiers := TStringList.Create;
    499517  with SourceCode do begin
    500518    with TFunction(Items[Add(TFunction.Create)]) do begin
    501519      Parent := SourceCode.Parent;
    502       if NextToken = 'procedure' then
    503       begin
     520      if NextToken = 'procedure' then begin
    504521        Expect('procedure');
    505522        HaveResult := False;
    506       end
    507       else
    508       begin
     523      end else begin
    509524        Expect('function');
    510525        HaveResult := True;
     
    545560            end;
    546561          end;
     562          if NextToken = ';' then Expect(';');
    547563        end;
    548564        Expect(')');
     
    580596    if not Exported then ParseCommonBlock(TFunction(Last));
    581597  end;
    582   Identifiers.Destroy;
     598  finally
     599    Identifiers.Free;
     600  end;
    583601end;
    584602
     
    638656  Identifiers := TStringList.Create;
    639657  with SourceCode do begin
    640     Expect('var');
    641658    while IsIdentificator(NextToken) and (NextTokenType <> ttEndOfFile) do begin
    642659      Identifiers.Clear;
     
    694711begin
    695712  Identifiers := TStringList.Create;
    696   with SourceCode do
    697   begin
    698     Expect('const');
    699     while IsIdentificator(NextToken) do
    700     begin
     713  with SourceCode do begin
     714    while IsIdentificator(NextToken) do begin
    701715      ConstantName := ReadCode;
    702716      Constant := Search(ConstantName);
    703       if not Assigned(Constant) then
    704       begin
     717      if not Assigned(Constant) then begin
    705718        Identifiers.Add(ConstantName);
    706         while NextToken = ',' do
    707         begin
     719        while NextToken = ',' do begin
    708720          Expect(',');
    709721          Identifiers.Add(ReadCode);
    710722        end;
    711       end
    712       else
     723      end else
    713724        ErrorMessage(SRedefineIdentifier, [ConstantName], -1);
    714725      Expect(':');
     
    742753  with SourceCode do
    743754  begin
    744     Expect('type');
    745755    while IsIdentificator(NextToken) do begin
    746756      NewType := ParseType(SourceCode);
     
    872882function TPascalParser.ParseTypeRecord(TypeList: TTypeList; Name: string
    873883  ): TType;
     884type
     885  TSectionType = (stVar, stType, stConst);
    874886var
    875887  Visibility: TTypeVisibility;
    876 begin
     888  SectionType: TSectionType;
     889begin
     890  SectionType := stVar;
    877891  Visibility := tvPublic;
    878892      Expect('record');
    879893      Result := TTypeRecord.Create;
    880894      TTypeRecord(Result).Parent := TypeList;
     895      TTypeRecord(Result).CommonBlock.Parent := TypeList.Parent;
    881896      TType(Result).Name := Name;
    882897      while (NextToken <> 'end') and (NextTokenType <> ttEndOfFile) do
     
    898913          Visibility := tvProtected;
    899914        end else
    900         if NextToken = 'var' then
    901           ParseVariableList(TTypeRecord(Result).CommonBlock.Variables)
    902         else if NextToken = 'const' then
     915        if NextToken = 'var' then begin
     916          Expect('var');
     917          SectionType := stVar
     918        end else
     919        if NextToken = 'const' then begin
     920          Expect('const');
     921          SectionType := stConst
     922        end else
     923        if NextToken = 'type' then begin
     924          Expect('type');
     925          SectionType := stType;
     926        end;
     927
     928        if SectionType = stVar then begin
     929          if NextToken = 'procedure' then
     930            ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True)
     931          else if NextToken = 'function' then
     932            ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True)
     933          else begin
     934            ParseVariableList(TTypeRecord(Result).CommonBlock.Variables, True)
     935            //TTypeRecord(Result).CommonBlock.Types.Add(ParseType(TypeList, True, ':'));
     936            //TType(TTypeRecord(Result).CommonBlock.Types.Last).Visibility := Visibility;
     937          end;                                                                          ParseVariableList(TTypeRecord(Result).CommonBlock.Variables)
     938        end
     939        else if SectionType = stConst then
    903940          ParseConstantList(TTypeRecord(Result).CommonBlock.Constants, True)
    904         else if NextToken = 'type' then
    905           ParseTypeList(TTypeRecord(Result).CommonBlock.Types, True)
    906         else if NextToken = 'procedure' then
    907           ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True)
    908         else if NextToken = 'function' then
    909           ParseFunctionList(TTypeRecord(Result).CommonBlock.Functions, True)
    910         else begin
    911           TTypeRecord(Result).CommonBlock.Types.Add(ParseType(TypeList, True, ':'));
    912           TType(TTypeRecord(Result).CommonBlock.Types.Last).Visibility := Visibility;
    913         end;
    914         Expect(';');
     941        else if SectionType = stType then
     942          ParseTypeList(TTypeRecord(Result).CommonBlock.Types, True);
    915943      end;
    916944      Expect('end');
  • branches/Transpascal/Compiler/Produce/UProducerC.pas

    r68 r75  
    2929    procedure GenerateFunctions(Functions: TFunctionList);
    3030    procedure GenerateBeginEnd(BeginEnd: TBeginEnd);
     31    procedure GenerateVariableList(VariableList: TVariableList);
     32    procedure GenerateVariable(Variable: TVariable);
    3133    procedure GenerateCommand(Command: TCommand);
    3234    procedure GenerateWhileDo(WhileDo: TWhileDo);
     
    123125    GenerateUses(TModuleProgram(Module).UsedModules);
    124126    GenerateCommonBlock(TModuleProgram(Module).Body, '');
     127  end else
     128  if Module is TModuleUnit then begin
     129    GenerateUses(TModuleProgram(Module).UsedModules);
     130    GenerateCommonBlock(TModuleUnit(Module).Body, '');
    125131  end;
    126132end;
     
    176182  Inc(Indetation);
    177183
    178 
    179184  // Variables
    180185  if BeginEnd.Parent is TCommonBlock then begin
    181     for I := 0 to BeginEnd.CommonBlock.Variables.Count - 1 do
    182     with TVariable(BeginEnd.CommonBlock.Variables[I]) do
    183       Emit(TranslateType(ValueType.Name) + ' ' + Name + ';');
    184     Emit('');
     186    GenerateVariableList(BeginEnd.CommonBlock.Variables);
    185187  end;
    186188
     
    191193  Dec(Indetation);
    192194  Emit('}');
     195end;
     196
     197procedure TProducerC.GenerateVariableList(VariableList: TVariableList);
     198var
     199  I: Integer;
     200begin
     201  for I := 0 to VariableList.Count - 1 do
     202    GenerateVariable(TVariable(VariableList[I]));
     203//  Emit('');
     204end;
     205
     206procedure TProducerC.GenerateVariable(Variable: TVariable);
     207begin
     208  with Variable do
     209    Emit(TranslateType(ValueType.Name) + ' ' + Name + ';');
    193210end;
    194211
     
    296313  if Assigned(AType) then begin
    297314  if AType is TTypeRecord then begin
    298     Emit('typedef struct');
     315    Emit('struct');
    299316    Emit('{');
    300317    Inc(Indetation);
    301     for I := 0 to TTypeRecord(AType).CommonBlock.Types.Count - 1 do begin
    302       GenerateType(TType(TTypeRecord(AType).CommonBlock.Types[I]));
    303       Emit(';');
    304     end;
     318    GenerateVariableList(TTypeRecord(AType).CommonBlock.Variables);
    305319    Dec(Indetation);
    306320    Emit('} ' + TranslateType(AType.Name), False);
     
    321335  end else begin
    322336    if Assigned(AType.UsedType) then begin
    323       GenerateType(AType.UsedType);
     337      //GenerateType(AType.UsedType);
     338      Emit(AType.UsedType.Name, False);
    324339      Emit(' ', False);
    325340    end;
     
    338353    with TType(Types[I]) do
    339354    if (not System) then begin
     355      Emit('typedef ', False);
    340356      GenerateType(TType(Types[I]));
    341357      Emit(';');
  • branches/Transpascal/Compiler/UCompiler.pas

    r74 r75  
    6767    Parser.Process;
    6868    //ShowMessage(IntToHex(Integer(Addr(Parser.OnGetSource)), 8));
    69     NewModule := Parser.ParseModule(ProgramCode);
    70     ProgramCode.Modules.Add(NewModule);
     69    Parser.ParseModule(ProgramCode);
    7170    for I := 0 to ProgramCode.Modules.Count - 1 do begin
    7271      Producer.Produce(TModule(ProgramCode.Modules[I]));
  • branches/Transpascal/Transpascal.lpi

    r74 r75  
    4646      </Item4>
    4747    </RequiredPackages>
    48     <Units Count="44">
     48    <Units Count="43">
    4949      <Unit0>
    5050        <Filename Value="Transpascal.lpr"/>
    5151        <IsPartOfProject Value="True"/>
    5252        <UnitName Value="Transpascal"/>
    53         <EditorIndex Value="12"/>
     53        <EditorIndex Value="11"/>
    5454        <WindowIndex Value="0"/>
    5555        <TopLine Value="7"/>
     
    6666        <ResourceBaseClass Value="Form"/>
    6767        <UnitName Value="UMainForm"/>
    68         <EditorIndex Value="10"/>
     68        <EditorIndex Value="9"/>
    6969        <WindowIndex Value="0"/>
    7070        <TopLine Value="97"/>
     
    9191        <TopLine Value="745"/>
    9292        <CursorPos X="46" Y="759"/>
    93         <UsageCount Value="154"/>
     93        <UsageCount Value="150"/>
    9494        <DefaultSyntaxHighlighter Value="Delphi"/>
    9595      </Unit3>
     
    100100        <TopLine Value="1"/>
    101101        <CursorPos X="40" Y="11"/>
    102         <UsageCount Value="154"/>
     102        <UsageCount Value="150"/>
    103103        <DefaultSyntaxHighlighter Value="Delphi"/>
    104104      </Unit4>
     
    109109        <TopLine Value="187"/>
    110110        <CursorPos X="34" Y="201"/>
    111         <UsageCount Value="154"/>
     111        <UsageCount Value="150"/>
    112112      </Unit5>
    113113      <Unit6>
     
    117117        <TopLine Value="1"/>
    118118        <CursorPos X="1" Y="14"/>
    119         <UsageCount Value="154"/>
     119        <UsageCount Value="150"/>
    120120      </Unit6>
    121121      <Unit7>
     
    125125        <TopLine Value="124"/>
    126126        <CursorPos X="42" Y="136"/>
    127         <UsageCount Value="154"/>
     127        <UsageCount Value="150"/>
    128128      </Unit7>
    129129      <Unit8>
     
    133133        <TopLine Value="442"/>
    134134        <CursorPos X="47" Y="455"/>
    135         <UsageCount Value="154"/>
     135        <UsageCount Value="150"/>
    136136      </Unit8>
    137137      <Unit9>
     
    141141        <TopLine Value="78"/>
    142142        <CursorPos X="27" Y="86"/>
    143         <UsageCount Value="46"/>
     143        <UsageCount Value="42"/>
    144144      </Unit9>
    145145      <Unit10>
    146         <Filename Value="E:\Programy\Lazarus\lcl\stdctrls.pp"/>
    147         <UnitName Value="StdCtrls"/>
    148         <WindowIndex Value="0"/>
    149         <TopLine Value="936"/>
    150         <CursorPos X="35" Y="948"/>
    151         <UsageCount Value="4"/>
     146        <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\sysutils\sysutilh.inc"/>
     147        <WindowIndex Value="0"/>
     148        <TopLine Value="61"/>
     149        <CursorPos X="7" Y="68"/>
     150        <UsageCount Value="52"/>
    152151      </Unit10>
    153152      <Unit11>
    154         <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\sysutils\sysutilh.inc"/>
    155         <WindowIndex Value="0"/>
    156         <TopLine Value="61"/>
    157         <CursorPos X="7" Y="68"/>
    158         <UsageCount Value="56"/>
     153        <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\sysutils\sysutils.inc"/>
     154        <WindowIndex Value="0"/>
     155        <TopLine Value="139"/>
     156        <CursorPos X="16" Y="146"/>
     157        <UsageCount Value="52"/>
    159158      </Unit11>
    160159      <Unit12>
    161         <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\sysutils\sysutils.inc"/>
    162         <WindowIndex Value="0"/>
    163         <TopLine Value="139"/>
    164         <CursorPos X="16" Y="146"/>
    165         <UsageCount Value="56"/>
     160        <Filename Value="Produce\UProducerTreeView.pas"/>
     161        <UnitName Value="UProducerTreeView"/>
     162        <WindowIndex Value="0"/>
     163        <TopLine Value="69"/>
     164        <CursorPos X="1" Y="82"/>
     165        <UsageCount Value="112"/>
    166166      </Unit12>
    167167      <Unit13>
    168         <Filename Value="Produce\UProducerTreeView.pas"/>
    169         <UnitName Value="UProducerTreeView"/>
    170         <WindowIndex Value="0"/>
    171         <TopLine Value="69"/>
    172         <CursorPos X="1" Y="82"/>
    173         <UsageCount Value="116"/>
     168        <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\classes\classesh.inc"/>
     169        <WindowIndex Value="0"/>
     170        <TopLine Value="19"/>
     171        <CursorPos X="4" Y="32"/>
     172        <UsageCount Value="9"/>
    174173      </Unit13>
    175174      <Unit14>
    176         <Filename Value="E:\Programy\Lazarus\lcl\comctrls.pp"/>
    177         <UnitName Value="ComCtrls"/>
    178         <WindowIndex Value="0"/>
    179         <TopLine Value="2159"/>
    180         <CursorPos X="14" Y="2178"/>
    181         <UsageCount Value="2"/>
     175        <Filename Value="Produce\UProducerPascal.pas"/>
     176        <UnitName Value="UProducerPascal"/>
     177        <WindowIndex Value="0"/>
     178        <TopLine Value="320"/>
     179        <CursorPos X="1" Y="327"/>
     180        <UsageCount Value="66"/>
    182181      </Unit14>
    183182      <Unit15>
    184         <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\classes\classesh.inc"/>
    185         <EditorIndex Value="7"/>
    186         <WindowIndex Value="0"/>
    187         <TopLine Value="19"/>
    188         <CursorPos X="4" Y="32"/>
    189         <UsageCount Value="13"/>
    190         <Loaded Value="True"/>
     183        <Filename Value="UProject.pas"/>
     184        <IsPartOfProject Value="True"/>
     185        <UnitName Value="UProject"/>
     186        <EditorIndex Value="8"/>
     187        <WindowIndex Value="0"/>
     188        <TopLine Value="3"/>
     189        <CursorPos X="50" Y="10"/>
     190        <UsageCount Value="178"/>
     191        <Loaded Value="True"/>
     192        <DefaultSyntaxHighlighter Value="Delphi"/>
    191193      </Unit15>
    192194      <Unit16>
    193         <Filename Value="Produce\UProducerPascal.pas"/>
    194         <UnitName Value="UProducerPascal"/>
    195         <WindowIndex Value="0"/>
    196         <TopLine Value="320"/>
    197         <CursorPos X="1" Y="327"/>
    198         <UsageCount Value="70"/>
     195        <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\inc\wstringh.inc"/>
     196        <WindowIndex Value="0"/>
     197        <TopLine Value="17"/>
     198        <CursorPos X="11" Y="30"/>
     199        <UsageCount Value="5"/>
    199200      </Unit16>
    200201      <Unit17>
    201         <Filename Value="UProject.pas"/>
    202         <IsPartOfProject Value="True"/>
    203         <UnitName Value="UProject"/>
    204         <EditorIndex Value="9"/>
    205         <WindowIndex Value="0"/>
    206         <TopLine Value="3"/>
    207         <CursorPos X="50" Y="10"/>
    208         <UsageCount Value="142"/>
    209         <Loaded Value="True"/>
    210         <DefaultSyntaxHighlighter Value="Delphi"/>
     202        <Filename Value="Compiler\TranspascalCompiler.pas"/>
     203        <UnitName Value="TranspascalCompiler"/>
     204        <WindowIndex Value="0"/>
     205        <TopLine Value="1"/>
     206        <CursorPos X="33" Y="1"/>
     207        <UsageCount Value="30"/>
    211208      </Unit17>
    212209      <Unit18>
    213         <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\inc\wstringh.inc"/>
    214         <WindowIndex Value="0"/>
    215         <TopLine Value="17"/>
    216         <CursorPos X="11" Y="30"/>
    217         <UsageCount Value="9"/>
    218       </Unit18>
    219       <Unit19>
    220         <Filename Value="Compiler\TranspascalCompiler.pas"/>
    221         <UnitName Value="TranspascalCompiler"/>
    222         <WindowIndex Value="0"/>
    223         <TopLine Value="1"/>
    224         <CursorPos X="33" Y="1"/>
    225         <UsageCount Value="34"/>
    226       </Unit19>
    227       <Unit20>
    228210        <Filename Value="Compiler\UCompiler.pas"/>
    229211        <UnitName Value="UCompiler"/>
    230212        <EditorIndex Value="1"/>
    231213        <WindowIndex Value="0"/>
    232         <TopLine Value="32"/>
    233         <CursorPos X="1" Y="48"/>
    234         <UsageCount Value="62"/>
    235         <Loaded Value="True"/>
    236       </Unit20>
    237       <Unit21>
     214        <TopLine Value="92"/>
     215        <CursorPos X="15" Y="98"/>
     216        <UsageCount Value="80"/>
     217        <Loaded Value="True"/>
     218      </Unit18>
     219      <Unit19>
    238220        <Filename Value="Compiler\USourceCode.pas"/>
    239221        <UnitName Value="USourceCode"/>
    240         <EditorIndex Value="11"/>
    241         <WindowIndex Value="0"/>
    242         <TopLine Value="153"/>
    243         <CursorPos X="29" Y="172"/>
    244         <UsageCount Value="61"/>
    245         <Loaded Value="True"/>
    246       </Unit21>
    247       <Unit22>
     222        <EditorIndex Value="10"/>
     223        <WindowIndex Value="0"/>
     224        <TopLine Value="144"/>
     225        <CursorPos X="38" Y="158"/>
     226        <UsageCount Value="79"/>
     227        <Loaded Value="True"/>
     228      </Unit19>
     229      <Unit20>
    248230        <Filename Value="Compiler\Analyze\UParser.pas"/>
    249231        <UnitName Value="UParser"/>
    250232        <EditorIndex Value="4"/>
    251233        <WindowIndex Value="0"/>
    252         <TopLine Value="33"/>
    253         <CursorPos X="57" Y="87"/>
    254         <UsageCount Value="62"/>
    255         <Loaded Value="True"/>
    256       </Unit22>
    257       <Unit23>
     234        <TopLine Value="79"/>
     235        <CursorPos X="23" Y="88"/>
     236        <UsageCount Value="80"/>
     237        <Loaded Value="True"/>
     238      </Unit20>
     239      <Unit21>
    258240        <Filename Value="Forms\UProjectManager.pas"/>
    259241        <IsPartOfProject Value="True"/>
     
    265247        <TopLine Value="33"/>
    266248        <CursorPos X="29" Y="44"/>
    267         <UsageCount Value="126"/>
    268         <Loaded Value="True"/>
    269         <DefaultSyntaxHighlighter Value="Delphi"/>
    270       </Unit23>
    271       <Unit24>
     249        <UsageCount Value="162"/>
     250        <Loaded Value="True"/>
     251        <DefaultSyntaxHighlighter Value="Delphi"/>
     252      </Unit21>
     253      <Unit22>
    272254        <Filename Value="Forms\UCodeForm.pas"/>
    273255        <IsPartOfProject Value="True"/>
     
    279261        <TopLine Value="1"/>
    280262        <CursorPos X="26" Y="17"/>
    281         <UsageCount Value="126"/>
     263        <UsageCount Value="162"/>
    282264        <Loaded Value="True"/>
    283265        <LoadedDesigner Value="True"/>
    284266        <DefaultSyntaxHighlighter Value="Delphi"/>
    285       </Unit24>
    286       <Unit25>
     267      </Unit22>
     268      <Unit23>
    287269        <Filename Value="Forms\UMessagesForm.pas"/>
    288270        <IsPartOfProject Value="True"/>
     
    294276        <TopLine Value="11"/>
    295277        <CursorPos X="38" Y="76"/>
    296         <UsageCount Value="126"/>
    297         <Loaded Value="True"/>
    298         <DefaultSyntaxHighlighter Value="Delphi"/>
    299       </Unit25>
    300       <Unit26>
     278        <UsageCount Value="162"/>
     279        <Loaded Value="True"/>
     280        <DefaultSyntaxHighlighter Value="Delphi"/>
     281      </Unit23>
     282      <Unit24>
    301283        <Filename Value="Forms\UCompiledForm.pas"/>
    302284        <IsPartOfProject Value="True"/>
     
    308290        <TopLine Value="5"/>
    309291        <CursorPos X="28" Y="21"/>
    310         <UsageCount Value="125"/>
    311         <DefaultSyntaxHighlighter Value="Delphi"/>
    312       </Unit26>
    313       <Unit27>
     292        <UsageCount Value="161"/>
     293        <DefaultSyntaxHighlighter Value="Delphi"/>
     294      </Unit24>
     295      <Unit25>
    314296        <Filename Value="Forms\UCodeTreeForm.pas"/>
    315297        <IsPartOfProject Value="True"/>
     
    320302        <TopLine Value="1"/>
    321303        <CursorPos X="1" Y="1"/>
    322         <UsageCount Value="125"/>
    323         <DefaultSyntaxHighlighter Value="Delphi"/>
     304        <UsageCount Value="161"/>
     305        <DefaultSyntaxHighlighter Value="Delphi"/>
     306      </Unit25>
     307      <Unit26>
     308        <Filename Value="Compiler\Produce\UProducerTreeView.pas"/>
     309        <UnitName Value="UProducerTreeView"/>
     310        <WindowIndex Value="0"/>
     311        <TopLine Value="291"/>
     312        <CursorPos X="54" Y="304"/>
     313        <UsageCount Value="28"/>
     314      </Unit26>
     315      <Unit27>
     316        <Filename Value="E:\Programy\Lazarus\components\synedit\synhighlightermulti.pas"/>
     317        <UnitName Value="SynHighlighterMulti"/>
     318        <WindowIndex Value="0"/>
     319        <TopLine Value="316"/>
     320        <CursorPos X="14" Y="329"/>
     321        <UsageCount Value="28"/>
    324322      </Unit27>
    325323      <Unit28>
    326         <Filename Value="Compiler\Produce\UProducerTreeView.pas"/>
    327         <UnitName Value="UProducerTreeView"/>
    328         <WindowIndex Value="0"/>
    329         <TopLine Value="291"/>
    330         <CursorPos X="54" Y="304"/>
    331         <UsageCount Value="32"/>
     324        <Filename Value="E:\Programy\Lazarus\lcl\include\customform.inc"/>
     325        <WindowIndex Value="0"/>
     326        <TopLine Value="1756"/>
     327        <CursorPos X="31" Y="1770"/>
     328        <UsageCount Value="25"/>
    332329      </Unit28>
    333330      <Unit29>
    334         <Filename Value="E:\Programy\Lazarus\components\synedit\synhighlightermulti.pas"/>
    335         <UnitName Value="SynHighlighterMulti"/>
    336         <WindowIndex Value="0"/>
    337         <TopLine Value="316"/>
    338         <CursorPos X="14" Y="329"/>
    339         <UsageCount Value="32"/>
     331        <Filename Value="Common\URegistry.pas"/>
     332        <IsPartOfProject Value="True"/>
     333        <UnitName Value="URegistry"/>
     334        <UsageCount Value="154"/>
     335        <DefaultSyntaxHighlighter Value="Delphi"/>
    340336      </Unit29>
    341337      <Unit30>
    342         <Filename Value="E:\Programy\Lazarus\lcl\include\customform.inc"/>
    343         <WindowIndex Value="0"/>
    344         <TopLine Value="1756"/>
    345         <CursorPos X="31" Y="1770"/>
    346         <UsageCount Value="29"/>
     338        <Filename Value="Common\ULastOpenedList.pas"/>
     339        <IsPartOfProject Value="True"/>
     340        <UnitName Value="ULastOpenedList"/>
     341        <UsageCount Value="154"/>
     342        <DefaultSyntaxHighlighter Value="Delphi"/>
    347343      </Unit30>
    348344      <Unit31>
    349         <Filename Value="Common\URegistry.pas"/>
    350         <IsPartOfProject Value="True"/>
    351         <UnitName Value="URegistry"/>
    352         <UsageCount Value="118"/>
     345        <Filename Value="UApplicationInfo.pas"/>
     346        <IsPartOfProject Value="True"/>
     347        <UnitName Value="UApplicationInfo"/>
     348        <UsageCount Value="153"/>
    353349        <DefaultSyntaxHighlighter Value="Delphi"/>
    354350      </Unit31>
    355351      <Unit32>
    356         <Filename Value="Common\ULastOpenedList.pas"/>
    357         <IsPartOfProject Value="True"/>
    358         <UnitName Value="ULastOpenedList"/>
    359         <UsageCount Value="118"/>
    360         <DefaultSyntaxHighlighter Value="Delphi"/>
     352        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     353        <UnitName Value="UProducerC"/>
     354        <IsVisibleTab Value="True"/>
     355        <EditorIndex Value="7"/>
     356        <WindowIndex Value="0"/>
     357        <TopLine Value="197"/>
     358        <CursorPos X="3" Y="203"/>
     359        <UsageCount Value="76"/>
     360        <Loaded Value="True"/>
    361361      </Unit32>
    362362      <Unit33>
    363         <Filename Value="UApplicationInfo.pas"/>
    364         <IsPartOfProject Value="True"/>
    365         <UnitName Value="UApplicationInfo"/>
    366         <UsageCount Value="117"/>
    367         <DefaultSyntaxHighlighter Value="Delphi"/>
     363        <Filename Value="Compiler\Produce\UProducerAsm8051.pas"/>
     364        <UnitName Value="UProducerAsm8051"/>
     365        <WindowIndex Value="0"/>
     366        <TopLine Value="1"/>
     367        <CursorPos X="1" Y="1"/>
     368        <UsageCount Value="24"/>
    368369      </Unit33>
    369370      <Unit34>
    370         <Filename Value="Compiler\Produce\UProducerC.pas"/>
    371         <UnitName Value="UProducerC"/>
    372         <EditorIndex Value="8"/>
    373         <WindowIndex Value="0"/>
    374         <TopLine Value="67"/>
    375         <CursorPos X="35" Y="81"/>
    376         <UsageCount Value="58"/>
    377         <Loaded Value="True"/>
     371        <Filename Value="Compiler\Produce\UProducerPascal.pas"/>
     372        <UnitName Value="UProducerPascal"/>
     373        <WindowIndex Value="0"/>
     374        <TopLine Value="99"/>
     375        <CursorPos X="57" Y="112"/>
     376        <UsageCount Value="21"/>
    378377      </Unit34>
    379378      <Unit35>
    380         <Filename Value="Compiler\Produce\UProducerAsm8051.pas"/>
    381         <UnitName Value="UProducerAsm8051"/>
    382         <WindowIndex Value="0"/>
    383         <TopLine Value="1"/>
    384         <CursorPos X="1" Y="1"/>
    385         <UsageCount Value="28"/>
     379        <Filename Value=""/>
     380        <UsageCount Value="1"/>
     381        <DefaultSyntaxHighlighter Value="None"/>
    386382      </Unit35>
    387383      <Unit36>
    388         <Filename Value="Compiler\Produce\UProducerPascal.pas"/>
    389         <UnitName Value="UProducerPascal"/>
    390         <WindowIndex Value="0"/>
    391         <TopLine Value="99"/>
    392         <CursorPos X="57" Y="112"/>
    393         <UsageCount Value="25"/>
     384        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
     385        <UnitName Value="UPascalParser"/>
     386        <EditorIndex Value="2"/>
     387        <WindowIndex Value="0"/>
     388        <TopLine Value="715"/>
     389        <CursorPos X="26" Y="735"/>
     390        <UsageCount Value="55"/>
     391        <Loaded Value="True"/>
    394392      </Unit36>
    395393      <Unit37>
    396         <Filename Value=""/>
    397         <UsageCount Value="5"/>
    398         <DefaultSyntaxHighlighter Value="None"/>
     394        <Filename Value="Compiler\Analyze\UGrammer.pas"/>
     395        <UnitName Value="UGrammer"/>
     396        <EditorIndex Value="12"/>
     397        <WindowIndex Value="0"/>
     398        <TopLine Value="15"/>
     399        <CursorPos X="1" Y="28"/>
     400        <UsageCount Value="53"/>
     401        <Loaded Value="True"/>
    399402      </Unit37>
    400403      <Unit38>
    401         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    402         <UnitName Value="UPascalParser"/>
    403         <IsVisibleTab Value="True"/>
    404         <EditorIndex Value="2"/>
    405         <WindowIndex Value="0"/>
    406         <TopLine Value="952"/>
    407         <CursorPos X="23" Y="966"/>
    408         <UsageCount Value="37"/>
    409         <Loaded Value="True"/>
    410       </Unit38>
    411       <Unit39>
    412         <Filename Value="Compiler\Analyze\UGrammer.pas"/>
    413         <UnitName Value="UGrammer"/>
    414         <EditorIndex Value="13"/>
    415         <WindowIndex Value="0"/>
    416         <TopLine Value="15"/>
    417         <CursorPos X="1" Y="28"/>
    418         <UsageCount Value="35"/>
    419         <Loaded Value="True"/>
    420       </Unit39>
    421       <Unit40>
    422404        <Filename Value="E:\Programy\Lazarus\components\synedit\synedit.pp"/>
    423405        <UnitName Value="SynEdit"/>
     
    426408        <TopLine Value="828"/>
    427409        <CursorPos X="27" Y="841"/>
    428         <UsageCount Value="13"/>
    429         <Loaded Value="True"/>
     410        <UsageCount Value="31"/>
     411        <Loaded Value="True"/>
     412      </Unit38>
     413      <Unit39>
     414        <Filename Value="E:\Programy\Lazarus\components\synedit\synedittypes.pp"/>
     415        <UnitName Value="SynEditTypes"/>
     416        <WindowIndex Value="0"/>
     417        <TopLine Value="56"/>
     418        <CursorPos X="3" Y="69"/>
     419        <UsageCount Value="5"/>
     420      </Unit39>
     421      <Unit40>
     422        <Filename Value="E:\Programy\Lazarus\components\synedit\syneditmarkup.pp"/>
     423        <UnitName Value="SynEditMarkup"/>
     424        <WindowIndex Value="0"/>
     425        <TopLine Value="113"/>
     426        <CursorPos X="3" Y="120"/>
     427        <UsageCount Value="5"/>
    430428      </Unit40>
    431429      <Unit41>
    432         <Filename Value="E:\Programy\Lazarus\components\synedit\synedittypes.pp"/>
    433         <UnitName Value="SynEditTypes"/>
    434         <WindowIndex Value="0"/>
    435         <TopLine Value="56"/>
    436         <CursorPos X="3" Y="69"/>
    437         <UsageCount Value="9"/>
     430        <Filename Value="E:\Programy\Lazarus\components\synedit\synedit.inc"/>
     431        <WindowIndex Value="0"/>
     432        <TopLine Value="1"/>
     433        <CursorPos X="24" Y="11"/>
     434        <UsageCount Value="5"/>
    438435      </Unit41>
    439436      <Unit42>
    440         <Filename Value="E:\Programy\Lazarus\components\synedit\syneditmarkup.pp"/>
    441         <UnitName Value="SynEditMarkup"/>
    442         <WindowIndex Value="0"/>
    443         <TopLine Value="113"/>
    444         <CursorPos X="3" Y="120"/>
    445         <UsageCount Value="9"/>
     437        <Filename Value="Compiler\Analyze\x.sss"/>
     438        <UnitName Value="Unit1"/>
     439        <WindowIndex Value="0"/>
     440        <TopLine Value="1"/>
     441        <CursorPos X="17" Y="5"/>
     442        <UsageCount Value="20"/>
     443        <DefaultSyntaxHighlighter Value="None"/>
    446444      </Unit42>
    447       <Unit43>
    448         <Filename Value="E:\Programy\Lazarus\components\synedit\synedit.inc"/>
    449         <WindowIndex Value="0"/>
    450         <TopLine Value="1"/>
    451         <CursorPos X="24" Y="11"/>
    452         <UsageCount Value="9"/>
    453       </Unit43>
    454445    </Units>
    455     <JumpHistory Count="29" HistoryIndex="28">
     446    <JumpHistory Count="30" HistoryIndex="29">
    456447      <Position1>
    457         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    458         <Caret Line="24" Column="47" TopLine="14"/>
     448        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     449        <Caret Line="132" Column="15" TopLine="128"/>
    459450      </Position1>
    460451      <Position2>
    461         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    462         <Caret Line="25" Column="57" TopLine="14"/>
     452        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     453        <Caret Line="128" Column="18" TopLine="116"/>
    463454      </Position2>
    464455      <Position3>
    465         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    466         <Caret Line="55" Column="17" TopLine="42"/>
     456        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     457        <Caret Line="290" Column="19" TopLine="283"/>
    467458      </Position3>
    468459      <Position4>
    469460        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    470         <Caret Line="537" Column="44" TopLine="524"/>
     461        <Caret Line="634" Column="25" TopLine="621"/>
    471462      </Position4>
    472463      <Position5>
    473464        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    474         <Caret Line="557" Column="40" TopLine="544"/>
     465        <Caret Line="438" Column="30" TopLine="415"/>
    475466      </Position5>
    476467      <Position6>
    477468        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    478         <Caret Line="657" Column="36" TopLine="644"/>
     469        <Caret Line="439" Column="7" TopLine="415"/>
    479470      </Position6>
    480471      <Position7>
    481472        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    482         <Caret Line="722" Column="36" TopLine="709"/>
     473        <Caret Line="452" Column="1" TopLine="439"/>
    483474      </Position7>
    484475      <Position8>
    485476        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    486         <Caret Line="799" Column="54" TopLine="786"/>
     477        <Caret Line="428" Column="23" TopLine="416"/>
    487478      </Position8>
    488479      <Position9>
    489480        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    490         <Caret Line="806" Column="36" TopLine="786"/>
     481        <Caret Line="458" Column="9" TopLine="445"/>
    491482      </Position9>
    492483      <Position10>
    493484        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    494         <Caret Line="4" Column="73" TopLine="1"/>
     485        <Caret Line="930" Column="13" TopLine="917"/>
    495486      </Position10>
    496487      <Position11>
    497488        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    498         <Caret Line="78" Column="48" TopLine="65"/>
     489        <Caret Line="933" Column="89" TopLine="917"/>
    499490      </Position11>
    500491      <Position12>
    501492        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    502         <Caret Line="208" Column="27" TopLine="195"/>
     493        <Caret Line="459" Column="26" TopLine="445"/>
    503494      </Position12>
    504495      <Position13>
    505496        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    506         <Caret Line="327" Column="21" TopLine="314"/>
     497        <Caret Line="942" Column="25" TopLine="923"/>
    507498      </Position13>
    508499      <Position14>
    509         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    510         <Caret Line="333" Column="19" TopLine="314"/>
     500        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     501        <Caret Line="310" Column="39" TopLine="296"/>
    511502      </Position14>
    512503      <Position15>
    513         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    514         <Caret Line="457" Column="21" TopLine="444"/>
     504        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     505        <Caret Line="306" Column="12" TopLine="296"/>
    515506      </Position15>
    516507      <Position16>
    517         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    518         <Caret Line="532" Column="69" TopLine="519"/>
     508        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     509        <Caret Line="329" Column="10" TopLine="308"/>
    519510      </Position16>
    520511      <Position17>
    521         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    522         <Caret Line="537" Column="29" TopLine="519"/>
     512        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     513        <Caret Line="345" Column="16" TopLine="330"/>
    523514      </Position17>
    524515      <Position18>
    525         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    526         <Caret Line="557" Column="25" TopLine="544"/>
     516        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     517        <Caret Line="313" Column="14" TopLine="311"/>
    527518      </Position18>
    528519      <Position19>
    529         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    530         <Caret Line="614" Column="58" TopLine="601"/>
     520        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     521        <Caret Line="345" Column="29" TopLine="330"/>
    531522      </Position19>
    532523      <Position20>
    533         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    534         <Caret Line="652" Column="61" TopLine="639"/>
     524        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     525        <Caret Line="346" Column="18" TopLine="330"/>
    535526      </Position20>
    536527      <Position21>
    537         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    538         <Caret Line="657" Column="53" TopLine="639"/>
     528        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     529        <Caret Line="292" Column="18" TopLine="283"/>
    539530      </Position21>
    540531      <Position22>
    541         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    542         <Caret Line="713" Column="21" TopLine="700"/>
     532        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     533        <Caret Line="31" Column="53" TopLine="17"/>
    543534      </Position22>
    544535      <Position23>
    545         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    546         <Caret Line="714" Column="61" TopLine="700"/>
     536        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     537        <Caret Line="187" Column="16" TopLine="176"/>
    547538      </Position23>
    548539      <Position24>
    549         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    550         <Caret Line="722" Column="21" TopLine="700"/>
     540        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     541        <Caret Line="31" Column="65" TopLine="17"/>
    551542      </Position24>
    552543      <Position25>
    553         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    554         <Caret Line="799" Column="23" TopLine="786"/>
     544        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     545        <Caret Line="186" Column="11" TopLine="177"/>
    555546      </Position25>
    556547      <Position26>
    557         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    558         <Caret Line="806" Column="21" TopLine="786"/>
     548        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     549        <Caret Line="318" Column="12" TopLine="309"/>
    559550      </Position26>
    560551      <Position27>
    561         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    562         <Caret Line="833" Column="23" TopLine="820"/>
     552        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     553        <Caret Line="202" Column="17" TopLine="197"/>
    563554      </Position27>
    564555      <Position28>
    565         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    566         <Caret Line="837" Column="23" TopLine="820"/>
     556        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     557        <Caret Line="208" Column="3" TopLine="206"/>
    567558      </Position28>
    568559      <Position29>
    569         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    570         <Caret Line="949" Column="21" TopLine="936"/>
     560        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     561        <Caret Line="202" Column="44" TopLine="188"/>
    571562      </Position29>
     563      <Position30>
     564        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     565        <Caret Line="318" Column="14" TopLine="305"/>
     566      </Position30>
    572567    </JumpHistory>
    573568  </ProjectOptions>
Note: See TracChangeset for help on using the changeset viewer.