Changeset 67


Ignore:
Timestamp:
Oct 18, 2010, 12:39:37 PM (14 years ago)
Author:
george
Message:
  • Fixed: Parsing of strings.
  • Modified: Now supported C target "Dynamic C" dialect.
Location:
branches/Transpascal
Files:
6 edited

Legend:

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

    r65 r67  
    1111type
    1212  TOnErrorMessage = procedure(Text: string; Position: TPoint; FileName: string) of object;
     13
     14  TParserState = (psNone, psIdentifier, psConstantNumber, psConstantString,
     15    psOperator, psEndOfFile, psLineComment, psBlockComment1, psBlockComment2,
     16    psUnknown, psWhiteSpace, psConstantStringEnd);
    1317
    1418  TTokenType = (ttNone, ttIdentifier, ttConstantNumber, ttConstantString,
     
    2529    FNextToken: string;
    2630    FNextTokenType: TTokenType;
     31    FParserState: TParserState;
    2732    PreviousChar: char;
    2833    CurrentChar: char;
     
    3641    function ReadCode: string;
    3742    function NextToken: string;
     43    function NextTokenType: TTokenType;
    3844    procedure Expect(Code: string);
    3945    function IsWhiteSpace(Character: char): boolean;
     
    216222  FNextToken := '';
    217223  FNextTokenType := ttNone;
     224  FParserState := psNone;
    218225  with SourceCodeText do
    219226    while True do
    220227    begin
    221       if CodeStreamPosition < Length(Text) then
    222       begin
     228      if CodeStreamPosition < Length(Text) then begin
    223229        CurrentChar := Text[CodeStreamPosition];
    224       end
    225       else
    226       begin
     230      end else begin
    227231        FNextToken := '';
     232        FParserState := psEndOfFile;
    228233        FNextTokenType := ttEndOfFile;
    229234        Break;
    230235      end;
    231236
    232       if FNextTokenType = ttNone then
    233       begin
     237      if FParserState = psNone then begin
    234238        if IsWhiteSpace(CurrentChar) then
    235           FNextTokenType := ttWhiteSpace
     239          FParserState := psWhiteSpace
    236240        else
    237         if CurrentChar = '{' then
    238         begin
    239           FNextTokenType := ttBlockComment1;
    240         end
    241         else
    242         if CurrentChar = '''' then
    243         begin
    244           FNextTokenType := ttConstantString;
    245         end
    246         else
    247         if CurrentChar in SpecChar then
    248         begin
    249           FNextTokenType := ttOperator;
     241        if CurrentChar = '{' then begin
     242          FParserState := psBlockComment1;
     243        end else
     244        if CurrentChar = '''' then begin
     245          FParserState := psConstantString;
     246        end else
     247        if CurrentChar in SpecChar then begin
     248          FParserState := psOperator;
    250249          FNextToken := FNextToken + CurrentChar;
    251         end
    252         else
    253         if IsAlphanumeric(CurrentChar) then
    254         begin
    255           FNextTokenType := ttIdentifier;
     250        end else
     251        if IsAlphanumeric(CurrentChar) then begin
     252          FParserState := psIdentifier;
    256253          FNextToken := FNextToken + CurrentChar;
    257         end
    258         else
    259           FNextTokenType := ttUnknown;
    260       end
    261       else
    262       if FNextTokenType = ttLineComment then
    263       begin
     254        end else FParserState := psUnknown;
     255      end else
     256      if FParserState = psLineComment then begin
    264257        if (CurrentChar = #13) or (CurrentChar = #10) then
    265           FNextTokenType := ttNone;
    266       end
    267       else
    268       if FNextTokenType = ttBlockComment1 then
    269       begin
     258          FParserState := psNone;
     259      end else
     260      if FParserState = psBlockComment1 then begin
    270261        if (CurrentChar = '}') then
    271           FNextTokenType := ttNone;
    272       end
    273       else
    274       if FNextTokenType = ttBlockComment2 then
    275       begin
     262          FParserState := psNone;
     263      end else
     264      if FParserState = psBlockComment2 then begin
    276265        if (PreviousChar = '*') and (CurrentChar = ')') then
    277           FNextTokenType := ttNone;
    278       end
    279       else
    280       if FNextTokenType = ttConstantString then
    281       begin
    282         if (CurrentChar = '''') and (PreviousChar = '''') then
    283           Break
    284         else
    285           FNextToken := FNextToken + CurrentChar;
    286       end
    287       else
    288       if FNextTokenType = ttOperator then
     266          FParserState := psNone;
     267      end else
     268      if FParserState = psConstantString then
     269      begin
     270        if (CurrentChar = '''') then begin
     271          FParserState := psConstantStringEnd;
     272        end else FNextToken := FNextToken + CurrentChar;
     273      end else
     274      if FParserState = psConstantStringEnd then
     275      begin
     276        if (CurrentChar = '''') then begin
     277          FParserState := psConstantString;
     278        end else FParserState := psNone;
     279        FNextTokenType := ttConstantString;
     280        Break;
     281      end else
     282      if FParserState = psOperator then
    289283      begin
    290284        if (CurrentChar = '*') and (PreviousChar = '(') then
    291285        begin
    292286          FNextToken := '';
    293           FNextTokenType := ttBlockComment2;
    294         end
    295         else
     287          FParserState := psBlockComment2;
     288        end else
    296289        if (CurrentChar = '/') and (PreviousChar = '/') then
    297290        begin
    298291          FNextToken := '';
    299           FNextTokenType := ttLineComment;
     292          FParserState := psLineComment;
     293        end else
     294        if not (CurrentChar in SpecChar) then begin
     295          FNextTokenType := ttOperator;
     296          Break;
    300297        end
    301         else
    302         if not (CurrentChar in SpecChar) then
    303           Break
    304         else
    305         begin
     298        else begin
    306299          J := 0;
    307300          while (J < Length(DoubleSpecChar)) and
     
    310303          if J < Length(DoubleSpecChar) then
    311304            FNextToken := FNextToken + CurrentChar
    312           else
     305          else begin
     306            FNextTokenType := ttOperator;
    313307            Break;
    314         end;
     308          end;
     309        end;
     310      end else
     311      if FParserState = psIdentifier then
     312      begin
     313        if not IsAlphanumeric(CurrentChar) then begin
     314          FNextTokenType := ttIdentifier;
     315          Break;
     316        end else FNextToken := FNextToken + CurrentChar;
    315317      end
    316318      else
    317       if FNextTokenType = ttIdentifier then
    318       begin
    319         if not IsAlphanumeric(CurrentChar) then
    320           Break
    321         else
    322           FNextToken := FNextToken + CurrentChar;
    323       end
    324       else if FNextTokenType = ttWhiteSpace then
    325         FNextTokenType := ttNone;
    326 
    327       if FNextTokenType <> ttNone then
    328       begin
     319      if FParserState = psWhiteSpace then begin
     320        FParserState := psNone;
     321      end;
     322
     323      if FParserState <> psNone then begin
    329324        // Update cursor position
    330325        Inc(CodePosition.X);
    331         if (CurrentChar = #13) then
    332         begin
     326        if (CurrentChar = #13) then begin
    333327          CodePosition.X := 1;
    334328          Inc(CodePosition.Y);
     
    351345begin
    352346  Result := FNextToken;
     347end;
     348
     349function TBaseParser.NextTokenType: TTokenType;
     350begin
     351  Result := FNextTokenType;
    353352end;
    354353
     
    397396var
    398397  Identifier: string;
     398  IdentifierType: TTokenType;
    399399  NewVariable: TVariable;
    400400  NewExpression: TExpression;
     
    409409  Expressions.Add(TExpression.Create);
    410410  with SourceCode do begin
    411     while ((FNextToken <> ';') and (FNextToken <> ',') and
    412         (not IsKeyWord(FNextToken))) and not
    413       (((FNextToken = ')') or (FNextToken = ']'))) do begin
     411    while ((NextToken <> ';') and (NextToken <> ',') and (not IsKeyWord(NextToken))) and not
     412      (((NextToken = ')') or (NextToken = ']'))) and not (NextTokenType = ttEndOfFile) do begin
     413      IdentifierType := NextTokenType;
    414414      Identifier := ReadCode;
    415415      if Identifier = '(' then begin
     
    506506          TExpression(SubItems[1]).NodeType := ntConstant;
    507507
    508           if Identifier[1] = '''' then begin
     508          if IdentifierType = ttConstantString then begin
    509509            TExpression(SubItems[1]).Value := Identifier;
    510510            //SetLength(TExpression(SubItems[1]).Value, Length(Identifier));
     
    512512            //  TExpression(SubItems[1]).Value[I - 1] := Byte(Identifier[I]);
    513513          end else begin
    514             TExpression(SubItems[1]).Value := Identifier;
     514            TExpression(SubItems[1]).Value := StrToInt(Identifier);
    515515          end;
    516516        end;
  • branches/Transpascal/Compiler/Produce/UProducerC.pas

    r60 r67  
    1010
    1111type
     12
     13  TProducerCDialect = (pdGCC, pdDynamicC);
    1214
    1315  { TProducerC }
     
    3537    function GenerateExpression(Expression: TExpression): string;
    3638  public
     39    Dialect: TProducerCDialect;
    3740    TextSource: TStringList;
    3841    IndentationLength: Integer;
     
    5356  FileExtension := '.c';
    5457  IndentationLength := 2;
     58  Dialect := pdDynamicC;
    5559end;
    5660
     
    104108begin
    105109  for I := 0 to UsedModules.Count - 1 do
    106     Emit('#include "' + TUsedModule(UsedModules[I]).Name + '.h"');
     110    if Dialect = pdDynamicC then
     111      Emit('#use "' + TUsedModule(UsedModules[I]).Name + '.lib"')
     112      else Emit('#include "' + TUsedModule(UsedModules[I]).Name + '.h"');
    107113  Emit('');
    108114end;
     
    110116procedure TProducerC.GenerateModule(Module: TModule);
    111117begin
    112   Emit('#define int8 char');
    113   Emit('#define int16 int');
    114   Emit('#define int32 long');
    115   Emit('#define uint8 unsigned char');
    116   Emit('#define uint16 unsigned int');
    117   Emit('#define uint32 unsigned long');
     118  if Dialect = pdDynamicC then Emit('#use "platform.lib"')
     119    else Emit('#include "platform.h"');
    118120  Emit('');
    119121  if Module is TModuleProgram then begin
     122    TModuleProgram(Module).Body.Name := 'main';
    120123    GenerateUses(TModuleProgram(Module).UsedModules);
    121124    GenerateCommonBlock(TModuleProgram(Module).Body, '');
     
    253256begin
    254257  case Expression.NodeType of
    255     ntConstant: Result := Expression.Value;
     258    ntConstant: begin
     259      if VarType(Expression.Value) = varString then
     260        Result := '"' + Expression.Value + '"'
     261        else Result := Expression.Value;
     262    end;
    256263    ntVariable: Result := Expression.Variable.Name;
    257264    ntFunction: Result := Expression.Method.Name;
  • branches/Transpascal/Compiler/UCompiler.pas

    r64 r67  
    4545    destructor Destroy; override;
    4646    procedure Init;
    47     procedure Compile(ModuleName: string; Source: TStringList);
     47    procedure Compile(ModuleName: string; Source: TStringList; TargetFolder: string);
    4848    property OnErrorMessage: TOnErrorMessage read FOnErrorMessage
    4949      write FOnErrorMessage;
     
    5454{ TCompiler }
    5555
    56 procedure TCompiler.Compile(ModuleName: string; Source: TStringList);
     56procedure TCompiler.Compile(ModuleName: string; Source: TStringList;
     57  TargetFolder: string);
    5758var
    5859  NewModule: TModule;
     
    7071      Producer.Produce(TModule(ProgramCode.Modules[I]));
    7172      Producer.AssignToStringList(ProducedCode);
    72       ForceDirectories(CompiledFolder + DirectorySeparator + Producer.ClassName);
    73       ProducedCode.SaveToFile(CompiledFolder + DirectorySeparator + Producer.ClassName +
     73      ForceDirectories(TargetFolder + DirectorySeparator +
     74        CompiledFolder + DirectorySeparator + Producer.ClassName);
     75      ProducedCode.SaveToFile(TargetFolder + DirectorySeparator +
     76        CompiledFolder + DirectorySeparator + Producer.ClassName +
    7477        DirectorySeparator + TModule(ProgramCode.Modules[I]).Name + Producer.FileExtension);
    7578    end;
  • branches/Transpascal/Forms/UMainForm.pas

    r66 r67  
    108108  if Project.Items.Count > 0 then
    109109  with TProjectFile(Project.Items[0]) do begin
    110     Compiler.Compile(Parent.GetDir + Name, Source);
     110    Compiler.Compile(Parent.GetDir + Name, Source, Project.RootDir);
    111111  end;
    112112
  • branches/Transpascal/Forms/UMessagesForm.pas

    r64 r67  
    4343  if ListBoxMessages.ItemIndex <> -1 then
    4444  with TErrorMessage(Compiler.ErrorMessages[ListBoxMessages.ItemIndex]) do begin
    45     ProjectFile := Project.SearchFile(fileName);
     45    ProjectFile := Project.SearchFile(FileName);
    4646    if Assigned(ProjectFile) then
    4747      SynEditSource.Lines.Assign(ProjectFile.Source);
    4848    SynEditSource.CaretXY := Position;
     49    TForm(SynEditSource.Owner).Show;
    4950    SynEditSource.SetFocus;
    5051  end;
  • branches/Transpascal/Transpascal.lpi

    r66 r67  
    4646      </Item4>
    4747    </RequiredPackages>
    48     <Units Count="37">
     48    <Units Count="39">
    4949      <Unit0>
    5050        <Filename Value="Transpascal.lpr"/>
    5151        <IsPartOfProject Value="True"/>
    5252        <UnitName Value="Transpascal"/>
    53         <EditorIndex Value="14"/>
     53        <EditorIndex Value="16"/>
    5454        <WindowIndex Value="0"/>
    5555        <TopLine Value="4"/>
    56         <CursorPos X="45" Y="18"/>
    57         <UsageCount Value="173"/>
     56        <CursorPos X="22" Y="22"/>
     57        <UsageCount Value="177"/>
    5858        <Loaded Value="True"/>
    5959        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    6767        <UnitName Value="UMainForm"/>
    6868        <IsVisibleTab Value="True"/>
    69         <EditorIndex Value="10"/>
    70         <WindowIndex Value="0"/>
    71         <TopLine Value="1"/>
    72         <CursorPos X="77" Y="12"/>
    73         <UsageCount Value="173"/>
     69        <EditorIndex Value="12"/>
     70        <WindowIndex Value="0"/>
     71        <TopLine Value="96"/>
     72        <CursorPos X="29" Y="110"/>
     73        <UsageCount Value="177"/>
    7474        <Loaded Value="True"/>
    7575        <LoadedDesigner Value="True"/>
     
    8383        <TopLine Value="1"/>
    8484        <CursorPos X="1" Y="6"/>
    85         <UsageCount Value="173"/>
     85        <UsageCount Value="177"/>
    8686        <DefaultSyntaxHighlighter Value="Delphi"/>
    8787      </Unit2>
     
    9292        <TopLine Value="745"/>
    9393        <CursorPos X="46" Y="759"/>
    94         <UsageCount Value="164"/>
     94        <UsageCount Value="163"/>
    9595        <DefaultSyntaxHighlighter Value="Delphi"/>
    9696      </Unit3>
     
    101101        <TopLine Value="1"/>
    102102        <CursorPos X="40" Y="11"/>
    103         <UsageCount Value="164"/>
     103        <UsageCount Value="163"/>
    104104        <DefaultSyntaxHighlighter Value="Delphi"/>
    105105      </Unit4>
     
    110110        <TopLine Value="187"/>
    111111        <CursorPos X="34" Y="201"/>
    112         <UsageCount Value="164"/>
     112        <UsageCount Value="163"/>
    113113      </Unit5>
    114114      <Unit6>
     
    118118        <TopLine Value="1"/>
    119119        <CursorPos X="1" Y="14"/>
    120         <UsageCount Value="164"/>
     120        <UsageCount Value="163"/>
    121121      </Unit6>
    122122      <Unit7>
     
    126126        <TopLine Value="124"/>
    127127        <CursorPos X="42" Y="136"/>
    128         <UsageCount Value="164"/>
     128        <UsageCount Value="163"/>
    129129      </Unit7>
    130130      <Unit8>
     
    134134        <TopLine Value="442"/>
    135135        <CursorPos X="47" Y="455"/>
    136         <UsageCount Value="164"/>
     136        <UsageCount Value="163"/>
    137137      </Unit8>
    138138      <Unit9>
     
    142142        <TopLine Value="78"/>
    143143        <CursorPos X="27" Y="86"/>
    144         <UsageCount Value="56"/>
     144        <UsageCount Value="55"/>
    145145      </Unit9>
    146146      <Unit10>
     
    150150        <TopLine Value="936"/>
    151151        <CursorPos X="35" Y="948"/>
    152         <UsageCount Value="14"/>
     152        <UsageCount Value="13"/>
    153153      </Unit10>
    154154      <Unit11>
     
    157157        <TopLine Value="61"/>
    158158        <CursorPos X="7" Y="68"/>
    159         <UsageCount Value="66"/>
     159        <UsageCount Value="65"/>
    160160      </Unit11>
    161161      <Unit12>
     
    164164        <TopLine Value="139"/>
    165165        <CursorPos X="16" Y="146"/>
    166         <UsageCount Value="66"/>
     166        <UsageCount Value="65"/>
    167167      </Unit12>
    168168      <Unit13>
     
    171171        <TopLine Value="934"/>
    172172        <CursorPos X="10" Y="947"/>
    173         <UsageCount Value="4"/>
     173        <UsageCount Value="3"/>
    174174      </Unit13>
    175175      <Unit14>
     
    178178        <TopLine Value="153"/>
    179179        <CursorPos X="8" Y="166"/>
    180         <UsageCount Value="9"/>
     180        <UsageCount Value="8"/>
    181181      </Unit14>
    182182      <Unit15>
     
    186186        <TopLine Value="69"/>
    187187        <CursorPos X="1" Y="82"/>
    188         <UsageCount Value="126"/>
     188        <UsageCount Value="125"/>
    189189      </Unit15>
    190190      <Unit16>
     
    194194        <TopLine Value="2159"/>
    195195        <CursorPos X="14" Y="2178"/>
    196         <UsageCount Value="12"/>
     196        <UsageCount Value="11"/>
    197197      </Unit16>
    198198      <Unit17>
     
    201201        <TopLine Value="559"/>
    202202        <CursorPos X="57" Y="571"/>
    203         <UsageCount Value="9"/>
     203        <UsageCount Value="8"/>
    204204      </Unit17>
    205205      <Unit18>
     
    209209        <TopLine Value="320"/>
    210210        <CursorPos X="1" Y="327"/>
    211         <UsageCount Value="80"/>
     211        <UsageCount Value="79"/>
    212212      </Unit18>
    213213      <Unit19>
     
    215215        <IsPartOfProject Value="True"/>
    216216        <UnitName Value="UProject"/>
    217         <EditorIndex Value="6"/>
    218         <WindowIndex Value="0"/>
    219         <TopLine Value="212"/>
    220         <CursorPos X="1" Y="225"/>
    221         <UsageCount Value="45"/>
     217        <EditorIndex Value="8"/>
     218        <WindowIndex Value="0"/>
     219        <TopLine Value="227"/>
     220        <CursorPos X="1" Y="241"/>
     221        <UsageCount Value="49"/>
    222222        <Loaded Value="True"/>
    223223        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    228228        <TopLine Value="17"/>
    229229        <CursorPos X="11" Y="30"/>
    230         <UsageCount Value="19"/>
     230        <UsageCount Value="18"/>
    231231      </Unit20>
    232232      <Unit21>
     
    237237        <TopLine Value="1"/>
    238238        <CursorPos X="33" Y="1"/>
    239         <UsageCount Value="15"/>
     239        <UsageCount Value="17"/>
    240240        <Loaded Value="True"/>
    241241      </Unit21>
     
    245245        <EditorIndex Value="3"/>
    246246        <WindowIndex Value="0"/>
    247         <TopLine Value="81"/>
    248         <CursorPos X="20" Y="82"/>
    249         <UsageCount Value="13"/>
     247        <TopLine Value="34"/>
     248        <CursorPos X="62" Y="47"/>
     249        <UsageCount Value="15"/>
    250250        <Loaded Value="True"/>
    251251      </Unit22>
     
    253253        <Filename Value="Compiler\USourceCode.pas"/>
    254254        <UnitName Value="USourceCode"/>
    255         <EditorIndex Value="7"/>
    256         <WindowIndex Value="0"/>
    257         <TopLine Value="173"/>
    258         <CursorPos X="4" Y="192"/>
    259         <UsageCount Value="12"/>
     255        <EditorIndex Value="9"/>
     256        <WindowIndex Value="0"/>
     257        <TopLine Value="69"/>
     258        <CursorPos X="72" Y="16"/>
     259        <UsageCount Value="14"/>
    260260        <Loaded Value="True"/>
    261261      </Unit23>
     
    265265        <EditorIndex Value="5"/>
    266266        <WindowIndex Value="0"/>
    267         <TopLine Value="495"/>
    268         <CursorPos X="43" Y="512"/>
    269         <UsageCount Value="13"/>
     267        <TopLine Value="422"/>
     268        <CursorPos X="34" Y="435"/>
     269        <UsageCount Value="15"/>
    270270        <Loaded Value="True"/>
    271271      </Unit24>
     
    276276        <TopLine Value="1"/>
    277277        <CursorPos X="15" Y="4"/>
    278         <UsageCount Value="10"/>
     278        <UsageCount Value="9"/>
    279279      </Unit25>
    280280      <Unit26>
     
    288288        <TopLine Value="71"/>
    289289        <CursorPos X="20" Y="76"/>
    290         <UsageCount Value="29"/>
     290        <UsageCount Value="33"/>
    291291        <Loaded Value="True"/>
    292292        <LoadedDesigner Value="True"/>
     
    303303        <TopLine Value="7"/>
    304304        <CursorPos X="32" Y="16"/>
    305         <UsageCount Value="29"/>
     305        <UsageCount Value="33"/>
    306306        <Loaded Value="True"/>
    307307        <LoadedDesigner Value="True"/>
     
    314314        <ResourceBaseClass Value="Form"/>
    315315        <UnitName Value="UMessagesForm"/>
    316         <EditorIndex Value="12"/>
    317         <WindowIndex Value="0"/>
    318         <TopLine Value="1"/>
    319         <CursorPos X="36" Y="9"/>
    320         <UsageCount Value="29"/>
     316        <EditorIndex Value="14"/>
     317        <WindowIndex Value="0"/>
     318        <TopLine Value="28"/>
     319        <CursorPos X="23" Y="46"/>
     320        <UsageCount Value="33"/>
    321321        <Loaded Value="True"/>
    322322        <LoadedDesigner Value="True"/>
     
    330330        <ResourceBaseClass Value="Form"/>
    331331        <UnitName Value="UCompiledForm"/>
    332         <EditorIndex Value="8"/>
     332        <EditorIndex Value="10"/>
    333333        <WindowIndex Value="0"/>
    334334        <TopLine Value="5"/>
    335335        <CursorPos X="28" Y="21"/>
    336         <UsageCount Value="28"/>
     336        <UsageCount Value="32"/>
    337337        <Loaded Value="True"/>
    338338        <LoadedDesigner Value="True"/>
     
    345345        <ResourceBaseClass Value="Form"/>
    346346        <UnitName Value="UCodeTreeForm"/>
    347         <EditorIndex Value="13"/>
     347        <EditorIndex Value="15"/>
    348348        <WindowIndex Value="0"/>
    349349        <TopLine Value="1"/>
    350350        <CursorPos X="1" Y="1"/>
    351         <UsageCount Value="28"/>
     351        <UsageCount Value="32"/>
    352352        <Loaded Value="True"/>
    353353        <LoadedDesigner Value="True"/>
     
    361361        <TopLine Value="350"/>
    362362        <CursorPos X="3" Y="355"/>
    363         <UsageCount Value="13"/>
     363        <UsageCount Value="15"/>
    364364        <Loaded Value="True"/>
    365365      </Unit31>
     
    367367        <Filename Value="E:\Programy\Lazarus\components\synedit\synhighlightermulti.pas"/>
    368368        <UnitName Value="SynHighlighterMulti"/>
    369         <EditorIndex Value="9"/>
     369        <EditorIndex Value="11"/>
    370370        <WindowIndex Value="0"/>
    371371        <TopLine Value="316"/>
    372372        <CursorPos X="14" Y="329"/>
    373         <UsageCount Value="13"/>
     373        <UsageCount Value="15"/>
    374374        <Loaded Value="True"/>
    375375      </Unit32>
    376376      <Unit33>
    377377        <Filename Value="E:\Programy\Lazarus\lcl\include\customform.inc"/>
    378         <EditorIndex Value="11"/>
     378        <EditorIndex Value="13"/>
    379379        <WindowIndex Value="0"/>
    380380        <TopLine Value="1756"/>
    381         <CursorPos X="35" Y="1768"/>
    382         <UsageCount Value="10"/>
     381        <CursorPos X="25" Y="1769"/>
     382        <UsageCount Value="12"/>
    383383        <Loaded Value="True"/>
    384384      </Unit33>
     
    387387        <IsPartOfProject Value="True"/>
    388388        <UnitName Value="URegistry"/>
    389         <UsageCount Value="21"/>
     389        <UsageCount Value="24"/>
    390390      </Unit34>
    391391      <Unit35>
     
    393393        <IsPartOfProject Value="True"/>
    394394        <UnitName Value="ULastOpenedList"/>
    395         <UsageCount Value="21"/>
     395        <UsageCount Value="24"/>
    396396        <DefaultSyntaxHighlighter Value="Delphi"/>
    397397      </Unit35>
     
    400400        <IsPartOfProject Value="True"/>
    401401        <UnitName Value="UApplicationInfo"/>
    402         <UsageCount Value="20"/>
     402        <UsageCount Value="23"/>
    403403        <DefaultSyntaxHighlighter Value="Delphi"/>
    404404      </Unit36>
     405      <Unit37>
     406        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     407        <UnitName Value="UProducerC"/>
     408        <EditorIndex Value="6"/>
     409        <WindowIndex Value="0"/>
     410        <TopLine Value="102"/>
     411        <CursorPos X="42" Y="120"/>
     412        <UsageCount Value="11"/>
     413        <Loaded Value="True"/>
     414      </Unit37>
     415      <Unit38>
     416        <Filename Value="Compiler\Produce\UProducerAsm8051.pas"/>
     417        <UnitName Value="UProducerAsm8051"/>
     418        <EditorIndex Value="7"/>
     419        <WindowIndex Value="0"/>
     420        <TopLine Value="1"/>
     421        <CursorPos X="1" Y="1"/>
     422        <UsageCount Value="11"/>
     423        <Loaded Value="True"/>
     424      </Unit38>
    405425    </Units>
    406426    <JumpHistory Count="30" HistoryIndex="29">
    407427      <Position1>
    408         <Filename Value="UProject.pas"/>
    409         <Caret Line="163" Column="3" TopLine="160"/>
     428        <Filename Value="Compiler\UCompiler.pas"/>
     429        <Caret Line="64" Column="1" TopLine="54"/>
    410430      </Position1>
    411431      <Position2>
    412         <Filename Value="UProject.pas"/>
    413         <Caret Line="140" Column="1" TopLine="136"/>
     432        <Filename Value="Compiler\UCompiler.pas"/>
     433        <Caret Line="65" Column="1" TopLine="54"/>
    414434      </Position2>
    415435      <Position3>
    416         <Filename Value="UProject.pas"/>
    417         <Caret Line="225" Column="1" TopLine="212"/>
     436        <Filename Value="Compiler\UCompiler.pas"/>
     437        <Caret Line="66" Column="1" TopLine="54"/>
    418438      </Position3>
    419439      <Position4>
    420         <Filename Value="UProject.pas"/>
    421         <Caret Line="138" Column="1" TopLine="125"/>
     440        <Filename Value="Compiler\UCompiler.pas"/>
     441        <Caret Line="67" Column="1" TopLine="54"/>
    422442      </Position4>
    423443      <Position5>
    424         <Filename Value="UProject.pas"/>
    425         <Caret Line="139" Column="1" TopLine="125"/>
     444        <Filename Value="Compiler\UCompiler.pas"/>
     445        <Caret Line="68" Column="1" TopLine="54"/>
    426446      </Position5>
    427447      <Position6>
    428         <Filename Value="UProject.pas"/>
    429         <Caret Line="143" Column="1" TopLine="125"/>
     448        <Filename Value="Compiler\UCompiler.pas"/>
     449        <Caret Line="69" Column="1" TopLine="54"/>
    430450      </Position6>
    431451      <Position7>
    432         <Filename Value="UProject.pas"/>
    433         <Caret Line="144" Column="1" TopLine="125"/>
     452        <Filename Value="Compiler\UCompiler.pas"/>
     453        <Caret Line="70" Column="1" TopLine="54"/>
    434454      </Position7>
    435455      <Position8>
    436         <Filename Value="Forms\UMainForm.pas"/>
    437         <Caret Line="192" Column="47" TopLine="186"/>
     456        <Filename Value="Compiler\UCompiler.pas"/>
     457        <Caret Line="71" Column="1" TopLine="54"/>
    438458      </Position8>
    439459      <Position9>
    440         <Filename Value="Forms\UMainForm.pas"/>
    441         <Caret Line="193" Column="35" TopLine="186"/>
     460        <Filename Value="Compiler\UCompiler.pas"/>
     461        <Caret Line="72" Column="1" TopLine="54"/>
    442462      </Position9>
    443463      <Position10>
    444         <Filename Value="Forms\UMainForm.pas"/>
    445         <Caret Line="56" Column="30" TopLine="39"/>
     464        <Filename Value="Compiler\UCompiler.pas"/>
     465        <Caret Line="74" Column="34" TopLine="54"/>
    446466      </Position10>
    447467      <Position11>
    448         <Filename Value="Forms\UMainForm.pas"/>
    449         <Caret Line="15" Column="40" TopLine="1"/>
     468        <Filename Value="Compiler\UCompiler.pas"/>
     469        <Caret Line="70" Column="1" TopLine="54"/>
    450470      </Position11>
    451471      <Position12>
    452         <Filename Value="Forms\UMainForm.pas"/>
    453         <Caret Line="9" Column="60" TopLine="1"/>
     472        <Filename Value="Compiler\UCompiler.pas"/>
     473        <Caret Line="71" Column="1" TopLine="54"/>
    454474      </Position12>
    455475      <Position13>
    456         <Filename Value="Forms\UMainForm.pas"/>
    457         <Caret Line="56" Column="20" TopLine="47"/>
     476        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     477        <Caret Line="115" Column="24" TopLine="14"/>
    458478      </Position13>
    459479      <Position14>
    460480        <Filename Value="Forms\UMainForm.pas"/>
    461         <Caret Line="15" Column="31" TopLine="1"/>
     481        <Caret Line="110" Column="19" TopLine="96"/>
    462482      </Position14>
    463483      <Position15>
    464         <Filename Value="Forms\UMainForm.pas"/>
    465         <Caret Line="201" Column="17" TopLine="188"/>
     484        <Filename Value="Compiler\UCompiler.pas"/>
     485        <Caret Line="73" Column="23" TopLine="56"/>
    466486      </Position15>
    467487      <Position16>
    468         <Filename Value="Forms\UMainForm.pas"/>
    469         <Caret Line="15" Column="3" TopLine="1"/>
     488        <Filename Value="Compiler\UCompiler.pas"/>
     489        <Caret Line="56" Column="26" TopLine="56"/>
    470490      </Position16>
    471491      <Position17>
    472         <Filename Value="Forms\UMainForm.pas"/>
    473         <Caret Line="184" Column="44" TopLine="171"/>
     492        <Filename Value="Compiler\UCompiler.pas"/>
     493        <Caret Line="47" Column="62" TopLine="34"/>
    474494      </Position17>
    475495      <Position18>
    476         <Filename Value="Forms\UMainForm.pas"/>
    477         <Caret Line="191" Column="26" TopLine="178"/>
     496        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     497        <Caret Line="116" Column="32" TopLine="99"/>
    478498      </Position18>
    479499      <Position19>
    480         <Filename Value="Forms\UMainForm.pas"/>
    481         <Caret Line="198" Column="32" TopLine="184"/>
     500        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     501        <Caret Line="111" Column="64" TopLine="99"/>
    482502      </Position19>
    483503      <Position20>
    484         <Filename Value="Forms\UMainForm.pas"/>
    485         <Caret Line="190" Column="17" TopLine="180"/>
     504        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     505        <Caret Line="127" Column="23" TopLine="108"/>
    486506      </Position20>
    487507      <Position21>
    488         <Filename Value="Forms\UMainForm.pas"/>
    489         <Caret Line="60" Column="47" TopLine="42"/>
     508        <Filename Value="Compiler\Produce\UProducerC.pas"/>
     509        <Caret Line="120" Column="42" TopLine="102"/>
    490510      </Position21>
    491511      <Position22>
    492         <Filename Value="Forms\UMainForm.pas"/>
    493         <Caret Line="65" Column="45" TopLine="47"/>
     512        <Filename Value="Compiler\Analyze\UParser.pas"/>
     513        <Caret Line="434" Column="28" TopLine="422"/>
    494514      </Position22>
    495515      <Position23>
    496         <Filename Value="Forms\UMainForm.pas"/>
    497         <Caret Line="255" Column="12" TopLine="246"/>
     516        <Filename Value="Compiler\Analyze\UParser.pas"/>
     517        <Caret Line="435" Column="34" TopLine="422"/>
    498518      </Position23>
    499519      <Position24>
    500         <Filename Value="Forms\UMainForm.pas"/>
    501         <Caret Line="223" Column="38" TopLine="217"/>
     520        <Filename Value="Forms\UMessagesForm.pas"/>
     521        <Caret Line="45" Column="1" TopLine="28"/>
    502522      </Position24>
    503523      <Position25>
    504         <Filename Value="Forms\UMainForm.pas"/>
    505         <Caret Line="246" Column="45" TopLine="233"/>
     524        <Filename Value="Forms\UMessagesForm.pas"/>
     525        <Caret Line="46" Column="1" TopLine="28"/>
    506526      </Position25>
    507527      <Position26>
    508         <Filename Value="Forms\UMainForm.pas"/>
    509         <Caret Line="245" Column="44" TopLine="233"/>
     528        <Filename Value="Forms\UMessagesForm.pas"/>
     529        <Caret Line="48" Column="1" TopLine="28"/>
    510530      </Position26>
    511531      <Position27>
    512         <Filename Value="Forms\UMainForm.pas"/>
    513         <Caret Line="63" Column="40" TopLine="45"/>
     532        <Filename Value="Forms\UMessagesForm.pas"/>
     533        <Caret Line="49" Column="1" TopLine="28"/>
    514534      </Position27>
    515535      <Position28>
    516         <Filename Value="Forms\UMainForm.pas"/>
    517         <Caret Line="247" Column="1" TopLine="233"/>
     536        <Filename Value="E:\Programy\Lazarus\lcl\include\customform.inc"/>
     537        <Caret Line="1769" Column="1" TopLine="1756"/>
    518538      </Position28>
    519539      <Position29>
    520         <Filename Value="Forms\UMainForm.pas"/>
    521         <Caret Line="230" Column="39" TopLine="213"/>
     540        <Filename Value="Forms\UMessagesForm.pas"/>
     541        <Caret Line="46" Column="23" TopLine="28"/>
    522542      </Position29>
    523543      <Position30>
    524         <Filename Value="Compiler\Analyze\UParser.pas"/>
    525         <Caret Line="507" Column="31" TopLine="495"/>
     544        <Filename Value="Transpascal.lpr"/>
     545        <Caret Line="22" Column="22" TopLine="4"/>
    526546      </Position30>
    527547    </JumpHistory>
Note: See TracChangeset for help on using the changeset viewer.