Changeset 70 for trunk/Compiler


Ignore:
Timestamp:
Jul 31, 2012, 4:06:07 PM (12 years ago)
Author:
chronos
Message:
  • Modified: Code related to pascal language in compiler moved to module.
Location:
trunk/Compiler
Files:
4 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Compiler/TranspascalCompiler.lpk

    r67 r70  
    99      <PathDelim Value="\"/>
    1010      <SearchPaths>
    11         <OtherUnitFiles Value="Analyze;Target;Target\Interpretter;Target\ASM8051;Target\Java;Target\GCC;Target\PHP;Target\Delphi;Target\Dynamic C;Target\XML;Target\NASM"/>
     11        <OtherUnitFiles Value="Analyze;Target;Target\Interpretter;Target\ASM8051;Target\Java;Target\GCC;Target\PHP;Target\Delphi;Target\Dynamic C;Target\XML;Target\NASM;Modules\Pascal"/>
    1212        <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
    1313      </SearchPaths>
     
    2121          <IgnoredMessages idx5023="True" idx5024="True" idx5025="True" idx5026="True" idx5027="True" idx5028="True" idx5029="True" idx5030="True" idx5031="True"/>
    2222        </CompilerMessages>
    23         <CustomOptions Value="-dSINGLE_PRODUCER"/>
    2423        <CompilerPath Value="$(CompPath)"/>
    2524      </Other>
    2625    </CompilerOptions>
    2726    <Version Minor="1"/>
    28     <Files Count="20">
     27    <Files Count="21">
    2928      <Item1>
    3029        <Filename Value="UCompiler.pas"/>
     
    5251      </Item6>
    5352      <Item7>
    54         <Filename Value="Analyze\UAnalyzerPascal.pas"/>
     53        <Filename Value="Modules\Pascal\UAnalyzerPascal.pas"/>
    5554        <UnitName Value="UAnalyzerPascal"/>
    5655      </Item7>
     
    107106        <UnitName Value="UTargetNASM"/>
    108107      </Item20>
     108      <Item21>
     109        <Filename Value="Modules\Pascal\UModulePascal.pas"/>
     110        <UnitName Value="UModulePascal"/>
     111      </Item21>
    109112    </Files>
    110113    <Type Value="RunAndDesignTime"/>
    111     <RequiredPkgs Count="3">
     114    <RequiredPkgs Count="4">
    112115      <Item1>
    113         <PackageName Value="TemplateGenerics"/>
     116        <PackageName Value="ModularSystem"/>
     117        <MinVersion Minor="1" Valid="True"/>
    114118      </Item1>
    115119      <Item2>
    116         <PackageName Value="LCL"/>
     120        <PackageName Value="TemplateGenerics"/>
    117121      </Item2>
    118122      <Item3>
     123        <PackageName Value="LCL"/>
     124      </Item3>
     125      <Item4>
    119126        <PackageName Value="FCL"/>
    120127        <MinVersion Major="1" Valid="True"/>
    121       </Item3>
     128      </Item4>
    122129    </RequiredPkgs>
    123130    <UsageOptions>
  • trunk/Compiler/TranspascalCompiler.pas

    r67 r70  
    1212  UTargetASM8051, UTargetGCC, UProducerGCC, UProducerPascal, UTargetDelphi,
    1313  UTargetPHP, UTargetJava, UTargetXML, UTargetInterpretter, UTargetNASM,
    14   LazarusPackageIntf;
     14  UModulePascal, LazarusPackageIntf;
    1515
    1616implementation
  • trunk/Compiler/UAnalyzer.pas

    r68 r70  
    8383  end;
    8484
    85   // TListAnalyzer = TGObjectList<Integer, TAnalyzer>
     85  { TListAnalyzer }
     86
    8687  TListAnalyzer = class(TListObject)
     88    function SearchBySysName(Name: string): TAnalyzer;
     89    procedure LoadToStrings(Strings: TStrings);
    8790  end;
    8891
     
    9194
    9295implementation
     96
     97{ TListAnalyzer }
     98
     99function TListAnalyzer.SearchBySysName(Name: string): TAnalyzer;
     100var
     101  I: Integer;
     102begin
     103  I := 0;
     104  while (I < Count) and (TAnalyzer(Items[I]).SysName <> Name) do Inc(I);
     105  if I < Count then Result := TAnalyzer(Items[I])
     106    else Result := nil;
     107end;
     108
     109procedure TListAnalyzer.LoadToStrings(Strings: TStrings);
     110var
     111  I: Integer;
     112begin
     113  try
     114    Strings.BeginUpdate;
     115    Strings.Clear;
     116    for I := 0 to Count - 1 do
     117      Strings.AddObject(TAnalyzer(Items[I]).Name, Items[I]);
     118  finally
     119    Strings.EndUpdate;
     120  end;
     121end;
    93122
    94123{ TAnalyzer }
  • trunk/Compiler/UCompiler.pas

    r68 r70  
    66
    77uses
    8   SysUtils, Variants, Classes, Contnrs, FileUtil,
     8  SysUtils, Variants, Classes, Contnrs, FileUtil, UModularSystem,
    99  Dialogs, USourceCode, UProducer, UAnalyzer, SpecializedList, UTarget;
    1010
     
    4949    TargetFolder: string;
    5050    Targets: TListTarget;
     51    Analyzers: TListAnalyzer;
    5152    MainSource: string;
     53    ModuleManager: TModuleManager;
    5254    procedure ErrorMessage(Text: string; Position: TPoint; FileName: string);
    5355    constructor Create; virtual;
     
    162164constructor TCompiler.Create;
    163165begin
    164   Analyzer := TAnalyzerPascal.Create;
    165166  Targets := TListTarget.Create;
    166 
    167   RegisterTargets(Self);
    168 
    169167  AbstractCode := TProgram.Create;
    170168  ErrorMessages := TListObject.Create;
    171169  CompiledFolder := 'Compiled';
     170  ModuleManager := TModuleManager.Create(nil);
    172171end;
    173172
     
    180179destructor TCompiler.Destroy;
    181180begin
     181  ModuleManager.Free;
    182182  Analyzer.Free;
    183183  AbstractCode.Free;
Note: See TracChangeset for help on using the changeset viewer.