mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-26 20:50:30 +02:00
pastojs: started module
git-svn-id: trunk@38102 -
This commit is contained in:
parent
ba2327f89b
commit
4015709d6b
@ -527,7 +527,7 @@ type
|
||||
procedure SetRangeErrorClass(const AValue: TPasClassType);
|
||||
procedure SetRangeErrorConstructor(const AValue: TPasConstructor);
|
||||
public
|
||||
FirstName: string;
|
||||
FirstName: string; // the 'unit1' in 'unit1', or 'ns' in 'ns.unit1'
|
||||
PendingResolvers: TFPList; // list of TPasResolver waiting for the unit interface
|
||||
Flags: TPasModuleScopeFlags;
|
||||
ScannerBoolSwitches: TBoolSwitches;
|
||||
@ -1072,6 +1072,7 @@ type
|
||||
OnlyScope: TPasScope): TPasProcedure;
|
||||
protected
|
||||
procedure SetCurrentParser(AValue: TPasParser); override;
|
||||
procedure SetRootElement(const AValue: TPasModule); virtual;
|
||||
procedure CheckTopScope(ExpectedClass: TPasScopeClass; AllowDescendants: boolean = false);
|
||||
function AddIdentifier(Scope: TPasIdentifierScope;
|
||||
const aName: String; El: TPasElement;
|
||||
@ -1544,7 +1545,7 @@ type
|
||||
property DynArrayMaxIndex: int64 read FDynArrayMaxIndex write FDynArrayMaxIndex;
|
||||
// parsed values
|
||||
property DefaultNameSpace: String read FDefaultNameSpace;
|
||||
property RootElement: TPasModule read FRootElement;
|
||||
property RootElement: TPasModule read FRootElement write SetRootElement;
|
||||
property Step: TPasResolverStep read FStep;
|
||||
// scopes
|
||||
property StoreSrcColumns: boolean read FStoreSrcColumns write FStoreSrcColumns; {
|
||||
@ -2948,6 +2949,12 @@ begin
|
||||
Result:=ResBaseTypeNames[bt];
|
||||
end;
|
||||
|
||||
procedure TPasResolver.SetRootElement(const AValue: TPasModule);
|
||||
begin
|
||||
if FRootElement=AValue then Exit;
|
||||
FRootElement:=AValue;
|
||||
end;
|
||||
|
||||
procedure TPasResolver.OnFindFirstElement(El: TPasElement; ElScope,
|
||||
StartScope: TPasScope; FindFirstElementData: Pointer; var Abort: boolean);
|
||||
var
|
||||
@ -10643,7 +10650,7 @@ begin
|
||||
El.SourceLinenumber:=SrcY;
|
||||
if FRootElement=nil then
|
||||
begin
|
||||
FRootElement:=NoNil(Result) as TPasModule;
|
||||
RootElement:=NoNil(Result) as TPasModule;
|
||||
if FStep=prsInit then
|
||||
FStep:=prsParsing;
|
||||
end;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -97,7 +97,7 @@ procedure TCustomTestPrecompile.WriteReadUnit;
|
||||
var
|
||||
ms: TMemoryStream;
|
||||
PJU: string;
|
||||
ReadResolver: TPasResolver;
|
||||
ReadResolver: TPas2JSResolver;
|
||||
ReadFileResolver: TFileResolver;
|
||||
ReadScanner: TPascalScanner;
|
||||
ReadParser: TPasParser;
|
||||
@ -108,7 +108,7 @@ begin
|
||||
try
|
||||
try
|
||||
PJUWriter.OnGetSrc:=@OnFilerGetSrc;
|
||||
PJUWriter.WriteModule(Engine,ms,InitialFlags);
|
||||
PJUWriter.WritePJU(Engine,InitialFlags,ms);
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
@ -124,16 +124,17 @@ begin
|
||||
System.Move(ms.Memory^,PJU[1],length(PJU));
|
||||
|
||||
writeln('TCustomTestPrecompile.WriteReadUnit PJU START-----');
|
||||
writeln(dbgmem(PJU));
|
||||
writeln(PJU);
|
||||
writeln('TCustomTestPrecompile.WriteReadUnit PJU END-------');
|
||||
|
||||
ReadFileResolver:=TFileResolver.Create;
|
||||
ReadScanner:=TPascalScanner.Create(ReadFileResolver);
|
||||
ReadResolver:=TPasResolver.Create;
|
||||
ReadResolver:=TPas2JSResolver.Create;
|
||||
ReadParser:=TPasParser.Create(ReadScanner,ReadFileResolver,ReadResolver);
|
||||
ReadResolver.CurrentParser:=ReadParser;
|
||||
try
|
||||
PJUReader.ReadModule(ReadResolver,PJU);
|
||||
ms.Position:=0;
|
||||
PJUReader.ReadPJU(ReadResolver,ms);
|
||||
finally
|
||||
ReadParser.Free;
|
||||
ReadScanner.Free;
|
||||
|
Loading…
Reference in New Issue
Block a user