pastojs: started module

git-svn-id: trunk@38102 -
This commit is contained in:
Mattias Gaertner 2018-02-03 15:41:32 +00:00
parent ba2327f89b
commit 4015709d6b
3 changed files with 795 additions and 720 deletions

View File

@ -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

View File

@ -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;