Changeset 71 for branches/Transpascal/Compiler
- Timestamp:
- Oct 19, 2010, 1:11:59 PM (15 years ago)
- Location:
- branches/Transpascal/Compiler
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Transpascal/Compiler/Analyze/UParser.pas
r70 r71 35 35 CodeStreamPosition: integer; 36 36 CodePosition: TPoint; 37 LastTokenPosition: TPoint; 37 LastTokenEnd: TPoint; 38 LastTokenStart: TPoint; 38 39 SourceCodeText: TStringList; 39 40 function IsAlphanumeric(Character: char): boolean; … … 74 75 begin 75 76 if Assigned(FOnErrorMessage) then 76 FOnErrorMessage(Format(Text, Arguments), LastToken Position, FileName);77 FOnErrorMessage(Format(Text, Arguments), LastTokenStart, FileName); 77 78 end; 78 79 … … 80 81 begin 81 82 Log('Expected: ' + Code + ' Readed: ' + FNextToken); 82 if FNextToken <> Code then 83 begin83 if FNextToken <> Code then begin 84 //ReadCode; 84 85 ErrorMessage(SExpectedButFound, [Code, FNextToken]); 85 86 … … 185 186 DoubleSpecChar: array[0..6] of string = (':=', '..', '<=', '>=', '<>', '+=', '-='); 186 187 begin 187 LastTokenPosition := CodePosition; 188 LastTokenStart := LastTokenEnd; 189 LastTokenEnd := CodePosition; 188 190 FNextToken := ''; 189 191 FNextTokenType := ttNone; -
branches/Transpascal/Compiler/Analyze/UPascalParser.pas
r70 r71 6 6 7 7 uses 8 Classes, SysUtils, UParser, USourceCode ;8 Classes, SysUtils, UParser, USourceCode, Dialogs; 9 9 10 10 type … … 61 61 Parser.ProgramCode := ProgramCode; 62 62 Parser.OnGetSource := OnGetSource; 63 if Assigned( FOnGetSource) then begin63 if Assigned(OnGetSource) then begin 64 64 if FOnGetSource(Name, Parser.SourceCodeText) then begin 65 65 Parser.Init; … … 948 948 Module := SourceCode.ParentModule.ParentProgram.Modules.Search(Name); 949 949 Exported := AExported; 950 end else ErrorMessage(SUnitNotFound, [Name]); 950 end else begin 951 ErrorMessage(SUnitNotFound, [Name]); 952 SourceCode.Delete(SourceCode.Count - 1); 953 end; 951 954 end; 952 955 end; … … 962 965 Module := SourceCode.ParentModule.ParentProgram.Modules.Search(Name); 963 966 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; 965 971 end; 966 972 end; -
branches/Transpascal/Compiler/UCompiler.pas
r70 r71 66 66 Parser.SourceCodeText := Source; 67 67 Parser.Init; 68 //ShowMessage(IntToHex(Integer(Addr(Parser.OnGetSource)), 8)); 68 69 NewModule := Parser.ParseModule(ProgramCode); 69 70 ProgramCode.Modules.Add(NewModule); -
branches/Transpascal/Compiler/USourceCode.pas
r68 r71 768 768 I := 0; 769 769 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); 771 773 Inc(I); 772 774 end;
Note:
See TracChangeset
for help on using the changeset viewer.