Changeset 12


Ignore:
Timestamp:
Nov 8, 2010, 10:06:37 AM (13 years ago)
Author:
george
Message:
  • Parser renamed to Analyzer.
  • Modified: Specialized parsers and analyzers separated from compiler for purpose of creating custom parsers and analyzers. Units UParsers and UAnalyzers determine which classes will be really used.
Location:
trunk
Files:
4 added
3 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Compiler/Produce/UProducer.pas

    r6 r12  
    22
    33{$MODE Delphi}
     4{$MACRO ON}
    45
    56interface
    67
    78uses
    8   USourceCode, Classes;
     9  USourceCode, Classes, SysUtils;
    910
    1011type
    1112  TProducer = class
     13    Name: string;
    1214    procedure AssignToStringList(Target: TStringList); virtual; abstract;
    1315    procedure Produce(Module: TModule); virtual; abstract;
    1416  end;
    1517
     18  // TListProducer = TGObjectList<Integer, TProducer>
     19  {$DEFINE TGObjectListIndex := Integer}
     20  {$DEFINE TGObjectListItem := TProducer}
     21  {$DEFINE TGObjectListList := TObjectListProducer}
     22  {$DEFINE TGObjectList := TListProducer}
     23  {$DEFINE TGObjectListSortCompare := TObjectListSortCompareProducer}
     24  {$DEFINE TGObjectListStringConverter := TObjectListStringConverterProducer}
     25  {$DEFINE INTERFACE}
     26  {$I 'GenericObjectList.inc'}
     27
    1628implementation
    1729
     30{$DEFINE IMPLEMENTATION_USES}
     31{$I 'GenericObjectList.inc'}
     32
     33// TListProducer = TGObjectList<Integer, TProducer>
     34{$DEFINE TGObjectListIndex := Integer}
     35{$DEFINE TGObjectListItem := TProducer}
     36{$DEFINE TGObjectListList := TObjectListProducer}
     37{$DEFINE TGObjectList := TListProducer}
     38{$DEFINE TGObjectListSortCompare := TObjectListSortCompareProducer}
     39{$DEFINE TGObjectListStringConverter := TObjectListStringConverterProducer}
     40{$DEFINE IMPLEMENTATION}
     41{$I 'GenericObjectList.inc'}
     42
    1843end.
  • trunk/Compiler/Produce/UProducerAsm8051.pas

    r6 r12  
    108108begin
    109109  AssemblyCode := TObjectList.Create;
     110  Name := 'ASM 8051';
    110111end;
    111112
  • trunk/Compiler/Produce/UProducerDynamicC.pas

    r6 r12  
    5656  TextSource := TStringList.Create;
    5757  IndentationLength := 2;
     58  Name := 'Dynamic C';
    5859end;
    5960
  • trunk/Compiler/Produce/UProducerGCCC.pas

    r6 r12  
    5656  TextSource := TStringList.Create;
    5757  IndentationLength := 2;
     58  Name := 'GCC C';
    5859end;
    5960
  • trunk/Compiler/Produce/UProducerPascal.pas

    r6 r12  
    5252  IndentationLength := 2;
    5353  TextSource := TStringList.Create;
     54  Name := 'Delphi';
    5455end;
    5556
  • trunk/Compiler/TranspascalCompiler.lpk

    r3 r12  
    1616    </CompilerOptions>
    1717    <Version Minor="1"/>
    18     <Files Count="11">
     18    <Files Count="12">
    1919      <Item1>
    2020        <Filename Value="UCompiler.pas"/>
     
    4646      </Item7>
    4747      <Item8>
    48         <Filename Value="Analyze\UParser.pas"/>
    49         <UnitName Value="UParser"/>
     48        <Filename Value="Analyze\UAnalyzer.pas"/>
     49        <UnitName Value="UAnalyzer"/>
    5050      </Item8>
    5151      <Item9>
    52         <Filename Value="Analyze\UPascalParser.pas"/>
    53         <UnitName Value="UPascalParser"/>
     52        <Filename Value="Analyze\UAnalyzerPascal.pas"/>
     53        <UnitName Value="UAnalyzerPascal"/>
    5454      </Item9>
    5555      <Item10>
    56         <Filename Value="Analyze\UGrammer.pas"/>
    57         <UnitName Value="UGrammer"/>
     56        <Filename Value="Produce\UProducerGCCC.pas"/>
     57        <UnitName Value="UProducerGCCC"/>
    5858      </Item10>
    5959      <Item11>
    60         <Filename Value="Produce\UProducerGCCC.pas"/>
    61         <UnitName Value="UProducerGCCC"/>
     60        <Filename Value="Analyze\UAnalyzers.pas"/>
     61        <UnitName Value="UAnalyzers"/>
    6262      </Item11>
     63      <Item12>
     64        <Filename Value="Produce\UProducers.pas"/>
     65        <UnitName Value="UProducers"/>
     66      </Item12>
    6367    </Files>
    6468    <Type Value="RunAndDesignTime"/>
  • trunk/Compiler/TranspascalCompiler.pas

    r2 r12  
    99uses
    1010    UCompiler, USourceCode, UProducerTreeView, UProducer, UProducerAsm8051,
    11   UProducerDynamicC, UProducerPascal, UParser, UPascalParser, UGrammer,
    12   UProducerGCCC, LazarusPackageIntf;
     11  UProducerDynamicC, UProducerPascal, UAnalyzer, UAnalyzerPascal,
     12  UProducerGCCC, UAnalyzers, UProducers, LazarusPackageIntf;
    1313
    1414implementation
  • trunk/Compiler/UCompiler.pas

    r6 r12  
    66
    77uses
    8   SysUtils, Variants, Classes,
    9   Dialogs, USourceCode, UProducer, UPascalParser, UParser,
    10   UProducerDynamicC, Contnrs, UProducerTreeView, UProducerASM8051,
    11   UProducerPascal, UProducerGCCC;
     8  SysUtils, Variants, Classes, Contnrs, UAnalyzers, UProducers,
     9  Dialogs, USourceCode, UProducer, UAnalyzer;
    1210
    1311type
     
    3533  TCompiler = class
    3634  private
     35    FAnalyzer: TAnalyzer;
    3736    FOnErrorMessage: TErrorMessageEvent;
    3837    FProducerType: TProducerType;
    3938    procedure ErrorMessage(Text: string; Position: TPoint; FileName: string);
    40     procedure SetProducerType(const AValue: TProducerType);
     39    procedure SetAnalyzer(const AValue: TAnalyzer);
    4140  public
    4241    ProgramCode: TProgram;
    43     Parser: TPascalParser;
    4442    Producer: TProducer;
    4543    ErrorMessages: TObjectList;
     
    4846    Target: TCompilerTarget;
    4947    TargetFolder: string;
     48    Producers: TListProducer;
     49    Analyzers: TListAnalyzer;
    5050    constructor Create;
    5151    destructor Destroy; override;
     
    5454    property OnErrorMessage: TErrorMessageEvent read FOnErrorMessage
    5555      write FOnErrorMessage;
    56     property ProducerType: TProducerType read FProducerType
    57       write SetProducerType;
     56    property Analyzer: TAnalyzer read FAnalyzer write SetAnalyzer;
    5857  end;
    59 
    60 const
    61   ProducerTypeName: array[TProducerType] of string = (
    62     'GCC C', 'Rabbit Dynamic C', 'Generic Pascal', 'Assembler', 'XML');
    63   AnalyzerTypeName: array[TAnalyzerType] of string = (
    64     'Custom pascal', 'Delphi');
    6558
    6659implementation
     
    7770  try
    7871    ProducedCode := TStringList.Create;
    79     Parser.FileName := ModuleName;
    80     Parser.SourceCodeText := Source;
    81     Parser.Process;
    82     //ShowMessage(IntToHex(Integer(Addr(Parser.OnGetSource)), 8));
    83     Parser.ParseModule(ProgramCode);
     72    Analyzer.FileName := ModuleName;
     73    Analyzer.SourceCodeText := Source;
     74    Analyzer.Process;
     75    //ShowMessage(IntToHex(Integer(Addr(Analyzer.OnGetSource)), 8));
     76    Analyzer.ParseModule(ProgramCode);
    8477    with ProgramCode do
    8578    for I := 0 to Modules.Count - 1 do begin
     
    9992constructor TCompiler.Create;
    10093begin
     94  Analyzers := TListAnalyzer.Create;
     95  Producers := TListProducer.Create;
     96
     97  RegisterAnalyzers(Self);
     98  RegisterProducers(Self);
     99
    101100  SupportedTargets := TCompilerTargetList.Create;
    102101  SupportedTargets.Add('AMD', 'Athlon II', 'amd64');
     
    108107
    109108  ProgramCode := TProgram.Create;
    110   Producer := TProducerGCCC.Create;
    111   Parser := TPascalParser.Create;
    112   Parser.OnErrorMessage := ErrorMessage;
     109  Producer := nil;
     110  Analyzer := nil;
    113111  ErrorMessages := TObjectList.Create;
    114112  CompiledFolder := 'Compiled';
     
    124122begin
    125123  ProgramCode.Free;
    126   Parser.Free;
    127   Producer.Free;
     124  Analyzers.Free;
     125  Producers.Free;
    128126  ErrorMessages.Free;
    129127  SupportedTargets.Free;
     
    142140end;
    143141
    144 procedure TCompiler.SetProducerType(const AValue: TProducerType);
     142procedure TCompiler.SetAnalyzer(const AValue: TAnalyzer);
    145143begin
    146   if FProducerType = AValue then Exit;
    147   FProducerType := AValue;
    148   Producer.Free;
    149   case AValue of
    150     ptGCCC: Producer := TProducerGCCC.Create;
    151     ptDynamicC: Producer := TProducerDynamicC.Create;
    152     ptPascal: Producer := TProducerPascal.Create;
    153     ptAssembler: Producer := TProducerGCCC.Create;
    154     ptXML: Producer := TProducerTreeView.Create;
    155   end;
     144  if FAnalyzer = AValue then exit;
     145  FAnalyzer := AValue;
     146  if Assigned(Analyzer) then
     147    Analyzer.OnErrorMessage := ErrorMessage;
    156148end;
    157149
  • trunk/IDE

    • Property svn:ignore set to
      lib
  • trunk/IDE/Forms/UCodeTreeForm.pas

    r2 r12  
    11unit UCodeTreeForm;
    22
    3 {$mode objfpc}{$H+}
     3{$mode Delphi}{$H+}
    44
    55interface
  • trunk/IDE/Forms/UCompiledForm.pas

    r2 r12  
    11unit UCompiledForm;
    22
    3 {$mode objfpc}{$H+}
     3{$mode Delphi}{$H+}
    44
    55interface
  • trunk/IDE/Forms/UMainForm.lfm

    r2 r12  
    55  Width = 695
    66  Caption = 'Transpascal IDE'
    7   ClientHeight = 476
     7  ClientHeight = 482
    88  ClientWidth = 695
    99  Font.Height = -11
     
    2020    Left = 0
    2121    Height = 5
    22     Top = 471
     22    Top = 477
    2323    Width = 695
    2424    Align = alBottom
     
    2727  object DockPanel: TPanel
    2828    Left = 0
    29     Height = 445
     29    Height = 451
    3030    Top = 26
    3131    Width = 695
     
    4141    Caption = 'ToolBar1'
    4242    TabOrder = 2
    43     object ComboBoxTargetSelection: TComboBox
     43    object ComboBoxProducer: TComboBox
    4444      Left = 192
    45       Height = 24
     45      Height = 21
    4646      Top = 2
    4747      Width = 135
    4848      Align = alLeft
    49       ItemHeight = 0
     49      ItemHeight = 13
    5050      ItemIndex = 1
    5151      Items.Strings = (
     
    5555        'XML'
    5656      )
    57       OnChange = ComboBoxTargetSelectionChange
     57      OnChange = ComboBoxProducerChange
    5858      Style = csDropDownList
    5959      TabOrder = 0
     
    7373      Height = 24
    7474      Top = 2
    75       Width = 122
     75      Width = 105
    7676      Align = alLeft
    7777      Caption = 'Log parsing to file'
    7878      TabOrder = 2
    7979    end
    80     object ComboBoxAnalyzerType: TComboBox
     80    object ComboBoxAnalyzer: TComboBox
    8181      Left = 40
    82       Height = 24
     82      Height = 21
    8383      Top = 2
    8484      Width = 124
    8585      Align = alLeft
    86       ItemHeight = 0
     86      ItemHeight = 13
    8787      Style = csDropDownList
    8888      TabOrder = 3
  • trunk/IDE/Forms/UMainForm.pas

    r10 r12  
    3030    Button1: TButton;
    3131    CheckBoxLogParsing: TCheckBox;
    32     ComboBoxAnalyzerType: TComboBox;
    33     ComboBoxTargetSelection: TComboBox;
     32    ComboBoxAnalyzer: TComboBox;
     33    ComboBoxProducer: TComboBox;
    3434    CoolDockClient1: TCoolDockClient;
    3535    CoolDockMaster1: TCoolDockMaster;
     
    5555    procedure AProjectSaveAsExecute(Sender: TObject);
    5656    procedure ComboBox1Change(Sender: TObject);
    57     procedure ComboBoxTargetSelectionChange(Sender: TObject);
     57    procedure ComboBoxProducerChange(Sender: TObject);
    5858    procedure FormShow(Sender: TObject);
    5959    procedure FormClose(Sender: TObject; var Action: TCloseAction);
     
    9191begin
    9292  // Compile project file
    93   if CheckBoxLogParsing.Checked then
    94      Compiler.Parser.OnDebugLog := CompilerDebugLog
    95      else Compiler.Parser.OnDebugLog := nil;
    96   Compiler.ProducerType := TProducerType(ComboBoxTargetSelection.ItemIndex);
    97   Compiler.Init;
    98   Compiler.Parser.OnGetSource := GetSource;
    99 
    100   if Project.Items.Count > 0 then
    101   with TProjectFile(Project.Items[0]) do begin
    102     Compiler.TargetFolder := Project.RootDir;
    103     Compiler.Compile(Parent.GetDir + ExtractFileNameOnly(Name), Source);
    104   end;
    105 
    106   ProjectManager.TreeViewProjectChange(Self, ProjectManager.TreeViewProject.Selected);
    107   MessagesForm.Reload;
     93  if (ComboBoxAnalyzer.Items.Count > 0) and (ComboBoxAnalyzer.ItemIndex <> -1) and
     94    (ComboBoxProducer.Items.Count > 0) and (ComboBoxProducer.ItemIndex <> -1) then begin
     95    Compiler.Producer := Compiler.Producers[ComboBoxProducer.ItemIndex];
     96    Compiler.Analyzer := Compiler.Analyzers[ComboBoxAnalyzer.ItemIndex];
     97    Compiler.Analyzer.OnGetSource := GetSource;
     98    Compiler.Init;
     99
     100    if CheckBoxLogParsing.Checked then
     101      Compiler.Analyzer.OnDebugLog := CompilerDebugLog
     102      else Compiler.Analyzer.OnDebugLog := nil;
     103
     104    if Project.Items.Count > 0 then
     105    with TProjectFile(Project.Items[0]) do begin
     106      Compiler.TargetFolder := Project.RootDir;
     107      Compiler.Compile(Parent.GetDir + ExtractFileNameOnly(Name), Source);
     108    end;
     109    ProjectManager.TreeViewProjectChange(Self, ProjectManager.TreeViewProject.Selected);
     110    MessagesForm.Reload;
     111  end;
    108112end;
    109113
     
    163167      OpenKey(RegistryKey, True);
    164168      ReopenLastOpenedFile := ReadBoolWithDefault('ReopenLastOpenedFile', True);
    165       ComboBoxTargetSelection.ItemIndex :=
     169      ComboBoxProducer.ItemIndex :=
    166170        ReadIntegerWithDefault('ProducerType', 0);
    167       ComboBoxAnalyzerType.ItemIndex :=
     171      ComboBoxAnalyzer.ItemIndex :=
    168172        ReadIntegerWithDefault('AnalyzerType', 0);
    169173      CheckBoxLogParsing.Checked := ReadBoolWithDefault('LogParsing', False);
     
    181185      OpenKey(RegistryKey, True);
    182186      WriteBool('ReopenLastOpenedFile', ReopenLastOpenedFile);
    183       WriteInteger('ProducerType', ComboBoxTargetSelection.ItemIndex);
    184       WriteInteger('AnalyzerType', ComboBoxAnalyzerType.ItemIndex);
     187      WriteInteger('ProducerType', ComboBoxProducer.ItemIndex);
     188      WriteInteger('AnalyzerType', ComboBoxAnalyzer.ItemIndex);
    185189      WriteBool('LogParsing', CheckBoxLogParsing.Checked);
    186190    finally
     
    208212procedure TMainForm.FormCreate(Sender: TObject);
    209213var
    210   ProducerType: TProducerType;
    211   AnalyzerType: TAnalyzerType;
     214  I: Integer;
    212215begin
    213216  DebugLog.FileName := 'DebugLog.txt';
     
    219222  LastOpenedFiles.ClickAction := OpenRecentClick;
    220223
    221   ComboBoxTargetSelection.Clear;
    222   for ProducerType := Low(ProducerType) to High(ProducerType) do
    223     ComboBoxTargetSelection.AddItem(ProducerTypeName[ProducerType], nil);
    224   ComboBoxAnalyzerType.Clear;
    225   for AnalyzerType := Low(AnalyzerType) to High(AnalyzerType) do
    226     ComboBoxAnalyzerType.AddItem(AnalyzerTypeName[AnalyzerType], nil);
     224  ComboBoxProducer.Clear;
     225  for I := 0 to Compiler.Producers.Count - 1 do
     226    ComboBoxProducer.AddItem(Compiler.Producers[I].Name, nil);
     227  ComboBoxAnalyzer.Clear;
     228  for I := 0 to Compiler.Analyzers.Count - 1 do
     229    ComboBoxAnalyzer.AddItem(Compiler.Analyzers[I].Name, nil);
    227230end;
    228231
     
    283286end;
    284287
    285 procedure TMainForm.ComboBoxTargetSelectionChange(Sender: TObject);
     288procedure TMainForm.ComboBoxProducerChange(Sender: TObject);
    286289begin
    287290  ABuildExecute(Self);
  • trunk/IDE/Transpascal.lpi

    r10 r12  
    5353      </Item5>
    5454    </RequiredPackages>
    55     <Units Count="49">
     55    <Units Count="64">
    5656      <Unit0>
    5757        <Filename Value="Transpascal.lpr"/>
     
    7171        <ResourceBaseClass Value="Form"/>
    7272        <UnitName Value="UMainForm"/>
    73         <EditorIndex Value="1"/>
     73        <EditorIndex Value="0"/>
    7474        <WindowIndex Value="0"/>
    7575        <TopLine Value="90"/>
    76         <CursorPos X="30" Y="104"/>
     76        <CursorPos X="1" Y="104"/>
    7777        <UsageCount Value="215"/>
    7878        <Loaded Value="True"/>
     79        <LoadedDesigner Value="True"/>
    7980        <DefaultSyntaxHighlighter Value="Delphi"/>
    8081      </Unit1>
     
    181182        <IsPartOfProject Value="True"/>
    182183        <UnitName Value="UProject"/>
    183         <EditorIndex Value="14"/>
    184         <WindowIndex Value="0"/>
    185         <TopLine Value="2"/>
    186         <CursorPos X="30" Y="18"/>
     184        <EditorIndex Value="2"/>
     185        <WindowIndex Value="0"/>
     186        <TopLine Value="255"/>
     187        <CursorPos X="1" Y="269"/>
    187188        <UsageCount Value="223"/>
    188189        <Loaded Value="True"/>
     
    200201        <Filename Value="Compiler\UCompiler.pas"/>
    201202        <UnitName Value="UCompiler"/>
    202         <EditorIndex Value="3"/>
    203203        <WindowIndex Value="0"/>
    204204        <TopLine Value="70"/>
    205205        <CursorPos X="53" Y="92"/>
    206206        <UsageCount Value="102"/>
    207         <Loaded Value="True"/>
    208207      </Unit16>
    209208      <Unit17>
    210209        <Filename Value="Compiler\USourceCode.pas"/>
    211210        <UnitName Value="USourceCode"/>
    212         <EditorIndex Value="0"/>
    213211        <WindowIndex Value="0"/>
    214212        <TopLine Value="3"/>
    215213        <CursorPos X="32" Y="17"/>
    216214        <UsageCount Value="103"/>
    217         <Loaded Value="True"/>
    218215      </Unit17>
    219216      <Unit18>
    220217        <Filename Value="Compiler\Analyze\UParser.pas"/>
    221218        <UnitName Value="UParser"/>
    222         <EditorIndex Value="2"/>
    223219        <WindowIndex Value="0"/>
    224220        <TopLine Value="45"/>
    225221        <CursorPos X="14" Y="58"/>
    226222        <UsageCount Value="102"/>
    227         <Loaded Value="True"/>
    228223      </Unit18>
    229224      <Unit19>
     
    233228        <ResourceBaseClass Value="Form"/>
    234229        <UnitName Value="UProjectManager"/>
    235         <EditorIndex Value="7"/>
    236230        <WindowIndex Value="0"/>
    237231        <TopLine Value="44"/>
    238232        <CursorPos X="39" Y="57"/>
    239233        <UsageCount Value="207"/>
    240         <Loaded Value="True"/>
    241234        <DefaultSyntaxHighlighter Value="Delphi"/>
    242235      </Unit19>
     
    260253        <UnitName Value="UMessagesForm"/>
    261254        <WindowIndex Value="0"/>
    262         <TopLine Value="1"/>
    263         <CursorPos X="38" Y="76"/>
     255        <TopLine Value="51"/>
     256        <CursorPos X="64" Y="66"/>
    264257        <UsageCount Value="207"/>
    265258        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    272265        <ResourceBaseClass Value="Form"/>
    273266        <UnitName Value="UCompiledForm"/>
     267        <EditorIndex Value="7"/>
    274268        <WindowIndex Value="0"/>
    275269        <TopLine Value="2"/>
    276         <CursorPos X="28" Y="21"/>
     270        <CursorPos X="14" Y="3"/>
    277271        <UsageCount Value="206"/>
     272        <Loaded Value="True"/>
    278273        <DefaultSyntaxHighlighter Value="Delphi"/>
    279274      </Unit22>
     
    284279        <ResourceBaseClass Value="Form"/>
    285280        <UnitName Value="UCodeTreeForm"/>
    286         <WindowIndex Value="0"/>
    287         <TopLine Value="1"/>
    288         <CursorPos X="1" Y="1"/>
     281        <EditorIndex Value="6"/>
     282        <WindowIndex Value="0"/>
     283        <TopLine Value="1"/>
     284        <CursorPos X="14" Y="3"/>
    289285        <UsageCount Value="206"/>
     286        <Loaded Value="True"/>
    290287        <DefaultSyntaxHighlighter Value="Delphi"/>
    291288      </Unit23>
     
    293290        <Filename Value="Compiler\Produce\UProducerTreeView.pas"/>
    294291        <UnitName Value="UProducerTreeView"/>
    295         <EditorIndex Value="12"/>
    296292        <WindowIndex Value="0"/>
    297293        <TopLine Value="141"/>
    298294        <CursorPos X="93" Y="154"/>
    299295        <UsageCount Value="80"/>
    300         <Loaded Value="True"/>
    301296      </Unit24>
    302297      <Unit25>
     
    333328        <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/>
    334329        <UnitName Value="UProducerDynamicC"/>
    335         <EditorIndex Value="11"/>
    336330        <WindowIndex Value="0"/>
    337331        <TopLine Value="268"/>
    338332        <CursorPos X="39" Y="283"/>
    339333        <UsageCount Value="113"/>
    340         <Loaded Value="True"/>
    341334      </Unit28>
    342335      <Unit29>
    343336        <Filename Value="Compiler\Produce\UProducerAsm8051.pas"/>
    344337        <UnitName Value="UProducerAsm8051"/>
    345         <EditorIndex Value="13"/>
    346338        <WindowIndex Value="0"/>
    347339        <TopLine Value="143"/>
    348340        <CursorPos X="68" Y="156"/>
    349341        <UsageCount Value="77"/>
    350         <Loaded Value="True"/>
    351342      </Unit29>
    352343      <Unit30>
    353344        <Filename Value="Compiler\Produce\UProducerPascal.pas"/>
    354345        <UnitName Value="UProducerPascal"/>
    355         <EditorIndex Value="9"/>
    356346        <WindowIndex Value="0"/>
    357347        <TopLine Value="309"/>
    358348        <CursorPos X="64" Y="322"/>
    359349        <UsageCount Value="110"/>
    360         <Loaded Value="True"/>
    361350      </Unit30>
    362351      <Unit31>
    363352        <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    364353        <UnitName Value="UPascalParser"/>
    365         <IsVisibleTab Value="True"/>
    366         <EditorIndex Value="8"/>
    367354        <WindowIndex Value="0"/>
    368355        <TopLine Value="266"/>
    369356        <CursorPos X="32" Y="279"/>
    370357        <UsageCount Value="110"/>
    371         <Loaded Value="True"/>
    372358      </Unit31>
    373359      <Unit32>
     
    407393        <Filename Value="Compiler\Produce\UProducerGCCC.pas"/>
    408394        <UnitName Value="UProducerGCCC"/>
    409         <EditorIndex Value="6"/>
    410395        <WindowIndex Value="0"/>
    411396        <TopLine Value="26"/>
    412397        <CursorPos X="14" Y="39"/>
    413398        <UsageCount Value="107"/>
    414         <Loaded Value="True"/>
    415399      </Unit36>
    416400      <Unit37>
     
    488472      <Unit46>
    489473        <Filename Value="E:\Projekty\PascalClassLibrary\Generics\TemplateGenerics\Generic\GenericList.inc"/>
    490         <EditorIndex Value="5"/>
    491         <WindowIndex Value="0"/>
    492         <TopLine Value="71"/>
    493         <CursorPos X="1" Y="85"/>
     474        <WindowIndex Value="0"/>
     475        <TopLine Value="1"/>
     476        <CursorPos X="60" Y="13"/>
    494477        <UsageCount Value="78"/>
    495         <Loaded Value="True"/>
    496478      </Unit46>
    497479      <Unit47>
    498480        <Filename Value="E:\Programy\Lazarus\fpc\2.4.3\source\rtl\objpas\sysutils\sysstrh.inc"/>
    499         <EditorIndex Value="10"/>
    500481        <WindowIndex Value="0"/>
    501482        <TopLine Value="107"/>
    502483        <CursorPos X="10" Y="120"/>
    503484        <UsageCount Value="78"/>
    504         <Loaded Value="True"/>
    505485      </Unit47>
    506486      <Unit48>
    507487        <Filename Value="Compiler\Produce\UProducer.pas"/>
    508488        <UnitName Value="UProducer"/>
    509         <EditorIndex Value="4"/>
    510489        <WindowIndex Value="0"/>
    511490        <TopLine Value="1"/>
    512491        <CursorPos X="1" Y="12"/>
    513492        <UsageCount Value="77"/>
    514         <Loaded Value="True"/>
    515493      </Unit48>
     494      <Unit49>
     495        <Filename Value="..\Compiler\UCompiler.pas"/>
     496        <UnitName Value="UCompiler"/>
     497        <EditorIndex Value="3"/>
     498        <WindowIndex Value="0"/>
     499        <TopLine Value="61"/>
     500        <CursorPos X="21" Y="76"/>
     501        <UsageCount Value="12"/>
     502        <Loaded Value="True"/>
     503      </Unit49>
     504      <Unit50>
     505        <Filename Value="..\Compiler\Produce\UProducer.pas"/>
     506        <UnitName Value="UProducer"/>
     507        <EditorIndex Value="10"/>
     508        <WindowIndex Value="0"/>
     509        <TopLine Value="1"/>
     510        <CursorPos X="32" Y="41"/>
     511        <UsageCount Value="11"/>
     512        <Loaded Value="True"/>
     513      </Unit50>
     514      <Unit51>
     515        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     516        <UnitName Value="UAnalyzer"/>
     517        <EditorIndex Value="4"/>
     518        <WindowIndex Value="0"/>
     519        <TopLine Value="22"/>
     520        <CursorPos X="14" Y="77"/>
     521        <UsageCount Value="11"/>
     522        <Loaded Value="True"/>
     523      </Unit51>
     524      <Unit52>
     525        <Filename Value="..\Compiler\Analyze\UAnalyzerPascal.pas"/>
     526        <UnitName Value="UAnalyzerPascal"/>
     527        <IsVisibleTab Value="True"/>
     528        <EditorIndex Value="9"/>
     529        <WindowIndex Value="0"/>
     530        <TopLine Value="10"/>
     531        <CursorPos X="68" Y="29"/>
     532        <UsageCount Value="11"/>
     533        <Loaded Value="True"/>
     534      </Unit52>
     535      <Unit53>
     536        <Filename Value="..\Compiler\Produce\UProducerPascal.pas"/>
     537        <UnitName Value="UProducerPascal"/>
     538        <EditorIndex Value="5"/>
     539        <WindowIndex Value="0"/>
     540        <TopLine Value="50"/>
     541        <CursorPos X="20" Y="54"/>
     542        <UsageCount Value="11"/>
     543        <Loaded Value="True"/>
     544      </Unit53>
     545      <Unit54>
     546        <Filename Value="..\Compiler\Produce\UProducerDynamicC.pas"/>
     547        <UnitName Value="UProducerDynamicC"/>
     548        <WindowIndex Value="0"/>
     549        <TopLine Value="54"/>
     550        <CursorPos X="23" Y="58"/>
     551        <UsageCount Value="10"/>
     552      </Unit54>
     553      <Unit55>
     554        <Filename Value="..\Compiler\Produce\UProducerAsm8051.pas"/>
     555        <UnitName Value="UProducerAsm8051"/>
     556        <WindowIndex Value="0"/>
     557        <TopLine Value="107"/>
     558        <CursorPos X="22" Y="110"/>
     559        <UsageCount Value="10"/>
     560      </Unit55>
     561      <Unit56>
     562        <Filename Value="..\Compiler\Produce\UProducerGCCC.pas"/>
     563        <UnitName Value="UProducerGCCC"/>
     564        <WindowIndex Value="0"/>
     565        <TopLine Value="54"/>
     566        <CursorPos X="30" Y="68"/>
     567        <UsageCount Value="10"/>
     568      </Unit56>
     569      <Unit57>
     570        <Filename Value="..\Compiler\USourceCode.pas"/>
     571        <UnitName Value="USourceCode"/>
     572        <EditorIndex Value="8"/>
     573        <WindowIndex Value="0"/>
     574        <TopLine Value="436"/>
     575        <CursorPos X="3" Y="449"/>
     576        <UsageCount Value="11"/>
     577        <Loaded Value="True"/>
     578      </Unit57>
     579      <Unit58>
     580        <Filename Value="..\Compiler\TranspascalCompiler.pas"/>
     581        <UnitName Value="TranspascalCompiler"/>
     582        <WindowIndex Value="0"/>
     583        <TopLine Value="1"/>
     584        <CursorPos X="55" Y="19"/>
     585        <UsageCount Value="10"/>
     586      </Unit58>
     587      <Unit59>
     588        <Filename Value="..\Compiler\Analyze\UGrammer.pas"/>
     589        <UnitName Value="UGrammer"/>
     590        <WindowIndex Value="0"/>
     591        <TopLine Value="1"/>
     592        <CursorPos X="26" Y="5"/>
     593        <UsageCount Value="10"/>
     594      </Unit59>
     595      <Unit60>
     596        <Filename Value="..\Compiler\Analyze\UAnalyzers.pas"/>
     597        <UnitName Value="UAnalyzers"/>
     598        <EditorIndex Value="11"/>
     599        <WindowIndex Value="0"/>
     600        <TopLine Value="1"/>
     601        <CursorPos X="37" Y="12"/>
     602        <UsageCount Value="11"/>
     603        <Loaded Value="True"/>
     604      </Unit60>
     605      <Unit61>
     606        <Filename Value="..\Compiler\Produce\UProducers.pas"/>
     607        <UnitName Value="UProducers"/>
     608        <EditorIndex Value="12"/>
     609        <WindowIndex Value="0"/>
     610        <TopLine Value="1"/>
     611        <CursorPos X="14" Y="3"/>
     612        <UsageCount Value="11"/>
     613        <Loaded Value="True"/>
     614      </Unit61>
     615      <Unit62>
     616        <Filename Value="E:\Programy\Lazarus\lcl\stdctrls.pp"/>
     617        <UnitName Value="StdCtrls"/>
     618        <WindowIndex Value="0"/>
     619        <TopLine Value="438"/>
     620        <CursorPos X="3" Y="406"/>
     621        <UsageCount Value="10"/>
     622      </Unit62>
     623      <Unit63>
     624        <Filename Value="E:\Programy\Lazarus\lcl\include\fileutil.inc"/>
     625        <EditorIndex Value="1"/>
     626        <WindowIndex Value="0"/>
     627        <TopLine Value="628"/>
     628        <CursorPos X="1" Y="649"/>
     629        <UsageCount Value="10"/>
     630        <Loaded Value="True"/>
     631      </Unit63>
    516632    </Units>
    517633    <JumpHistory Count="30" HistoryIndex="29">
    518634      <Position1>
    519         <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/>
    520         <Caret Line="8" Column="69" TopLine="6"/>
     635        <Filename Value="..\Compiler\UCompiler.pas"/>
     636        <Caret Line="119" Column="1" TopLine="104"/>
    521637      </Position1>
    522638      <Position2>
    523         <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/>
    524         <Caret Line="38" Column="34" TopLine="25"/>
     639        <Filename Value="Forms\UMainForm.pas"/>
     640        <Caret Line="100" Column="1" TopLine="90"/>
    525641      </Position2>
    526642      <Position3>
    527         <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/>
    528         <Caret Line="241" Column="68" TopLine="228"/>
     643        <Filename Value="Forms\UMainForm.pas"/>
     644        <Caret Line="102" Column="1" TopLine="90"/>
    529645      </Position3>
    530646      <Position4>
    531         <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/>
    532         <Caret Line="277" Column="48" TopLine="264"/>
     647        <Filename Value="Forms\UMainForm.pas"/>
     648        <Caret Line="104" Column="1" TopLine="90"/>
    533649      </Position4>
    534650      <Position5>
    535         <Filename Value="Compiler\Produce\UProducerDynamicC.pas"/>
    536         <Caret Line="308" Column="49" TopLine="295"/>
     651        <Filename Value="..\Compiler\UCompiler.pas"/>
     652        <Caret Line="74" Column="1" TopLine="61"/>
    537653      </Position5>
    538654      <Position6>
    539         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    540         <Caret Line="398" Column="17" TopLine="395"/>
     655        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     656        <Caret Line="218" Column="1" TopLine="205"/>
    541657      </Position6>
    542658      <Position7>
    543         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    544         <Caret Line="401" Column="14" TopLine="395"/>
     659        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     660        <Caret Line="219" Column="1" TopLine="205"/>
    545661      </Position7>
    546662      <Position8>
    547         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    548         <Caret Line="398" Column="17" TopLine="395"/>
     663        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     664        <Caret Line="220" Column="1" TopLine="205"/>
    549665      </Position8>
    550666      <Position9>
    551         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    552         <Caret Line="431" Column="24" TopLine="426"/>
     667        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     668        <Caret Line="221" Column="1" TopLine="205"/>
    553669      </Position9>
    554670      <Position10>
    555         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    556         <Caret Line="426" Column="57" TopLine="426"/>
     671        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     672        <Caret Line="222" Column="1" TopLine="205"/>
    557673      </Position10>
    558674      <Position11>
    559         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    560         <Caret Line="449" Column="17" TopLine="429"/>
     675        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     676        <Caret Line="223" Column="1" TopLine="205"/>
    561677      </Position11>
    562678      <Position12>
    563         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    564         <Caret Line="1274" Column="15" TopLine="1251"/>
     679        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     680        <Caret Line="224" Column="1" TopLine="205"/>
    565681      </Position12>
    566682      <Position13>
    567         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    568         <Caret Line="1277" Column="14" TopLine="1253"/>
     683        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     684        <Caret Line="225" Column="1" TopLine="205"/>
    569685      </Position13>
    570686      <Position14>
    571         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    572         <Caret Line="449" Column="11" TopLine="435"/>
     687        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     688        <Caret Line="226" Column="1" TopLine="205"/>
    573689      </Position14>
    574690      <Position15>
    575         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    576         <Caret Line="442" Column="27" TopLine="435"/>
     691        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     692        <Caret Line="227" Column="1" TopLine="206"/>
    577693      </Position15>
    578694      <Position16>
    579         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    580         <Caret Line="453" Column="55" TopLine="444"/>
     695        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     696        <Caret Line="228" Column="1" TopLine="207"/>
    581697      </Position16>
    582698      <Position17>
    583         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    584         <Caret Line="455" Column="43" TopLine="438"/>
     699        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     700        <Caret Line="229" Column="1" TopLine="208"/>
    585701      </Position17>
    586702      <Position18>
    587         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    588         <Caret Line="6" Column="43" TopLine="1"/>
     703        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     704        <Caret Line="230" Column="1" TopLine="209"/>
    589705      </Position18>
    590706      <Position19>
    591         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    592         <Caret Line="82" Column="21" TopLine="69"/>
     707        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     708        <Caret Line="231" Column="1" TopLine="210"/>
    593709      </Position19>
    594710      <Position20>
    595         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    596         <Caret Line="398" Column="14" TopLine="390"/>
     711        <Filename Value="..\Compiler\Analyze\UAnalyzer.pas"/>
     712        <Caret Line="235" Column="1" TopLine="214"/>
    597713      </Position20>
    598714      <Position21>
    599         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    600         <Caret Line="399" Column="19" TopLine="390"/>
     715        <Filename Value="..\Compiler\UCompiler.pas"/>
     716        <Caret Line="76" Column="1" TopLine="61"/>
    601717      </Position21>
    602718      <Position22>
    603         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    604         <Caret Line="403" Column="68" TopLine="390"/>
     719        <Filename Value="..\Compiler\UCompiler.pas"/>
     720        <Caret Line="77" Column="1" TopLine="61"/>
    605721      </Position22>
    606722      <Position23>
    607         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    608         <Caret Line="35" Column="32" TopLine="30"/>
     723        <Filename Value="Forms\UMainForm.pas"/>
     724        <Caret Line="96" Column="1" TopLine="90"/>
    609725      </Position23>
    610726      <Position24>
    611         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    612         <Caret Line="418" Column="29" TopLine="403"/>
     727        <Filename Value="Forms\UMainForm.pas"/>
     728        <Caret Line="97" Column="1" TopLine="90"/>
    613729      </Position24>
    614730      <Position25>
    615         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    616         <Caret Line="399" Column="18" TopLine="386"/>
     731        <Filename Value="Forms\UMainForm.pas"/>
     732        <Caret Line="98" Column="1" TopLine="90"/>
    617733      </Position25>
    618734      <Position26>
    619         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    620         <Caret Line="35" Column="90" TopLine="22"/>
     735        <Filename Value="Forms\UMainForm.pas"/>
     736        <Caret Line="100" Column="1" TopLine="90"/>
    621737      </Position26>
    622738      <Position27>
    623         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    624         <Caret Line="403" Column="100" TopLine="403"/>
     739        <Filename Value="Forms\UMainForm.pas"/>
     740        <Caret Line="102" Column="1" TopLine="90"/>
    625741      </Position27>
    626742      <Position28>
    627         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    628         <Caret Line="269" Column="46" TopLine="258"/>
     743        <Filename Value="Forms\UMainForm.pas"/>
     744        <Caret Line="104" Column="1" TopLine="90"/>
    629745      </Position28>
    630746      <Position29>
    631         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    632         <Caret Line="266" Column="63" TopLine="258"/>
     747        <Filename Value="..\Compiler\UCompiler.pas"/>
     748        <Caret Line="74" Column="1" TopLine="61"/>
    633749      </Position29>
    634750      <Position30>
    635         <Filename Value="Compiler\Analyze\UPascalParser.pas"/>
    636         <Caret Line="276" Column="39" TopLine="263"/>
     751        <Filename Value="..\Compiler\UCompiler.pas"/>
     752        <Caret Line="76" Column="21" TopLine="61"/>
    637753      </Position30>
    638754    </JumpHistory>
     
    677793  </CompilerOptions>
    678794  <Debugging>
     795    <BreakPoints Count="2">
     796      <Item1>
     797        <Source Value="Forms\UMainForm.pas"/>
     798        <Line Value="96"/>
     799      </Item1>
     800      <Item2>
     801        <Source Value="..\Compiler\UCompiler.pas"/>
     802        <Line Value="74"/>
     803      </Item2>
     804    </BreakPoints>
    679805    <Exceptions Count="3">
    680806      <Item1>
Note: See TracChangeset for help on using the changeset viewer.