Ignore:
Timestamp:
Oct 19, 2010, 1:11:59 PM (15 years ago)
Author:
george
Message:
  • Minor modifications.
Location:
branches/Transpascal/Compiler
Files:
4 edited

Legend:

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

    r70 r71  
    3535    CodeStreamPosition: integer;
    3636    CodePosition: TPoint;
    37     LastTokenPosition: TPoint;
     37    LastTokenEnd: TPoint;
     38    LastTokenStart: TPoint;
    3839    SourceCodeText: TStringList;
    3940    function IsAlphanumeric(Character: char): boolean;
     
    7475begin
    7576  if Assigned(FOnErrorMessage) then
    76     FOnErrorMessage(Format(Text, Arguments), LastTokenPosition, FileName);
     77    FOnErrorMessage(Format(Text, Arguments), LastTokenStart, FileName);
    7778end;
    7879
     
    8081begin
    8182  Log('Expected: ' + Code + '  Readed: ' + FNextToken);
    82   if FNextToken <> Code then
    83   begin
     83  if FNextToken <> Code then begin
     84    //ReadCode;
    8485    ErrorMessage(SExpectedButFound, [Code, FNextToken]);
    8586
     
    185186  DoubleSpecChar: array[0..6] of string = (':=', '..', '<=', '>=', '<>', '+=', '-=');
    186187begin
    187   LastTokenPosition := CodePosition;
     188  LastTokenStart := LastTokenEnd;
     189  LastTokenEnd := CodePosition;
    188190  FNextToken := '';
    189191  FNextTokenType := ttNone;
  • branches/Transpascal/Compiler/Analyze/UPascalParser.pas

    r70 r71  
    66
    77uses
    8   Classes, SysUtils, UParser, USourceCode;
     8  Classes, SysUtils, UParser, USourceCode, Dialogs;
    99
    1010type
     
    6161    Parser.ProgramCode := ProgramCode;
    6262    Parser.OnGetSource := OnGetSource;
    63     if Assigned(FOnGetSource) then begin
     63    if Assigned(OnGetSource) then begin
    6464      if FOnGetSource(Name, Parser.SourceCodeText) then begin
    6565        Parser.Init;
     
    948948        Module := SourceCode.ParentModule.ParentProgram.Modules.Search(Name);
    949949        Exported := AExported;
    950       end else ErrorMessage(SUnitNotFound, [Name]);
     950      end else begin
     951        ErrorMessage(SUnitNotFound, [Name]);
     952        SourceCode.Delete(SourceCode.Count - 1);
     953      end;
    951954    end;
    952955  end;
     
    962965      Module := SourceCode.ParentModule.ParentProgram.Modules.Search(Name);
    963966      if not Assigned(Module) then begin
    964         if not ParseFile(Name) then ErrorMessage(SUnitNotFound, [Name]);
     967        if not ParseFile(Name) then begin
     968          ErrorMessage(SUnitNotFound, [Name]);
     969          SourceCode.Delete(SourceCode.Count - 1);
     970        end;
    965971      end;
    966972    end;
  • branches/Transpascal/Compiler/UCompiler.pas

    r70 r71  
    6666    Parser.SourceCodeText := Source;
    6767    Parser.Init;
     68    //ShowMessage(IntToHex(Integer(Addr(Parser.OnGetSource)), 8));
    6869    NewModule := Parser.ParseModule(ProgramCode);
    6970    ProgramCode.Modules.Add(NewModule);
  • branches/Transpascal/Compiler/USourceCode.pas

    r68 r71  
    768768    I := 0;
    769769    while (I < UsedModules.Count) and (not Assigned(Result)) do begin
    770       Result := TUsedModule(UsedModules[I]).Module.SearchType(Name, False);
     770      with TUsedModule(UsedModules[I]) do
     771        with Module do
     772        Result := SearchType(Name, False);
    771773      Inc(I);
    772774    end;
Note: See TracChangeset for help on using the changeset viewer.