|
@@ -49,6 +49,7 @@ Type
|
|
P : PDirectoryCache; ADirPath: PAnsiChar): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
P : PDirectoryCache; ADirPath: PAnsiChar): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
TUnitAliasCallBack = Function (Data: Pointer;
|
|
TUnitAliasCallBack = Function (Data: Pointer;
|
|
AUnitName: PAnsiChar; AUnitNameMaxLen: Integer): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
AUnitName: PAnsiChar; AUnitNameMaxLen: Integer): boolean; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
|
|
+ TGetFileSrcAttrCallBack = procedure(AData: Pointer; AFileName: PAnsiChar; AFileNameLen: Integer; AFileInfo: PPas2jsFileSrcAttr); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
|
|
|
|
{ TLibraryPas2JSCompiler }
|
|
{ TLibraryPas2JSCompiler }
|
|
|
|
|
|
@@ -67,6 +68,8 @@ Type
|
|
FOnWriteJSCallBack: TWriteJSCallBack;
|
|
FOnWriteJSCallBack: TWriteJSCallBack;
|
|
FOnWriteJSData: Pointer;
|
|
FOnWriteJSData: Pointer;
|
|
FReadBufferLen: Cardinal;
|
|
FReadBufferLen: Cardinal;
|
|
|
|
+ FOnGetFileSrcAttr: TGetFileSrcAttrCallBack;
|
|
|
|
+ FOnGetFileSrcAttrData: Pointer;
|
|
function GetLogEncoding: String;
|
|
function GetLogEncoding: String;
|
|
procedure SetLogEncoding(AValue: String);
|
|
procedure SetLogEncoding(AValue: String);
|
|
Protected
|
|
Protected
|
|
@@ -75,6 +78,7 @@ Type
|
|
AErrorClass : PAnsiChar; Var AErrorClassLength : Longint);
|
|
AErrorClass : PAnsiChar; Var AErrorClassLength : Longint);
|
|
Function ReadFile(aFilename: string; var aSource: string): boolean; virtual;
|
|
Function ReadFile(aFilename: string; var aSource: string): boolean; virtual;
|
|
Function ReadDirectory(Dir: TPas2jsCachedDirectory): boolean; virtual;
|
|
Function ReadDirectory(Dir: TPas2jsCachedDirectory): boolean; virtual;
|
|
|
|
+ procedure GetFileSrcAttr(AFilename: string; var AAttr: TPas2jsFileSrcAttr);
|
|
Public
|
|
Public
|
|
Constructor Create; override;
|
|
Constructor Create; override;
|
|
procedure CheckUnitAlias(var UseUnitName: string); override;
|
|
procedure CheckUnitAlias(var UseUnitName: string); override;
|
|
@@ -94,6 +98,8 @@ Type
|
|
Property OnReadDirData: Pointer read FOnReadDirData write FOnReadDirData;
|
|
Property OnReadDirData: Pointer read FOnReadDirData write FOnReadDirData;
|
|
Property OnUnitAlias: TUnitAliasCallBack read FOnUnitAlias write FOnUnitAlias;
|
|
Property OnUnitAlias: TUnitAliasCallBack read FOnUnitAlias write FOnUnitAlias;
|
|
Property OnUnitAliasData: Pointer read FOnUnitAliasData write FOnUnitAliasData;
|
|
Property OnUnitAliasData: Pointer read FOnUnitAliasData write FOnUnitAliasData;
|
|
|
|
+ property OnGetFileSrcAttr: TGetFileSrcAttrCallBack read FOnGetFileSrcAttr write FOnGetFileSrcAttr;
|
|
|
|
+ property OnGetFileSrcAttrData: Pointer read FOnGetFileSrcAttrData write FOnGetFileSrcAttrData;
|
|
end;
|
|
end;
|
|
|
|
|
|
Type
|
|
Type
|
|
@@ -111,6 +117,7 @@ Procedure FreePas2JSCompiler(P : PPas2JSCompiler); {$IFDEF UseCDecl}cdecl{$ELSE}
|
|
Function GetPas2JSCompiler : PPas2JSCompiler; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
Function GetPas2JSCompiler : PPas2JSCompiler; {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
Procedure GetPas2JSCompilerLastError(P : PPas2JSCompiler; AError : PAnsiChar; Var AErrorLength : Longint; AErrorClass : PAnsiChar; Var AErrorClassLength : Longint); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
Procedure GetPas2JSCompilerLastError(P : PPas2JSCompiler; AError : PAnsiChar; Var AErrorLength : Longint; AErrorClass : PAnsiChar; Var AErrorClassLength : Longint); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
procedure SetPas2JSLogEncoding(P : PPas2JSCompiler; Enconding: PAnsiChar); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
procedure SetPas2JSLogEncoding(P : PPas2JSCompiler; Enconding: PAnsiChar); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
|
|
+procedure SetPas2JSGetFileSrcAttrCallBack(P: PPas2JSCompiler; ACallBack: TGetFileSrcAttrCallBack; ACallBackData: Pointer); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
|
|
|
|
implementation
|
|
implementation
|
|
|
|
|
|
@@ -124,6 +131,13 @@ begin
|
|
Result:=OnReadDir(FOnReadDirData,Dir,PAnsiChar(Dir.Path));
|
|
Result:=OnReadDir(FOnReadDirData,Dir,PAnsiChar(Dir.Path));
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TLibraryPas2JSCompiler.GetFileSrcAttr(AFilename: string; var AAttr: TPas2jsFileSrcAttr);
|
|
|
|
+begin
|
|
|
|
+ AAttr.AllowSrcMap := True;
|
|
|
|
+ if Assigned(OnGetFileSrcAttr) then
|
|
|
|
+ OnGetFileSrcAttr(FOnGetFileSrcAttrData, PAnsiChar(AFilename), Length(AFileName), @AAttr);
|
|
|
|
+end;
|
|
|
|
+
|
|
function TLibraryPas2JSCompiler.GetLogEncoding: String;
|
|
function TLibraryPas2JSCompiler.GetLogEncoding: String;
|
|
begin
|
|
begin
|
|
Result := Log.Encoding;
|
|
Result := Log.Encoding;
|
|
@@ -222,6 +236,7 @@ begin
|
|
FileCache.OnReadDirectory:=@ReadDirectory;
|
|
FileCache.OnReadDirectory:=@ReadDirectory;
|
|
ConfigSupport:=TPas2JSFileConfigSupport.Create(Self);
|
|
ConfigSupport:=TPas2JSFileConfigSupport.Create(Self);
|
|
PostProcessorSupport:=TPas2JSFSPostProcessorSupport.Create(Self);
|
|
PostProcessorSupport:=TPas2JSFSPostProcessorSupport.Create(Self);
|
|
|
|
+ FileCache.OnGetFileSrcAttr:=@GetFileSrcAttr;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TLibraryPas2JSCompiler.CheckUnitAlias(var UseUnitName: string);
|
|
procedure TLibraryPas2JSCompiler.CheckUnitAlias(var UseUnitName: string);
|
|
@@ -373,5 +388,11 @@ begin
|
|
TLibraryPas2JSCompiler(P).LogEncoding := Enconding;
|
|
TLibraryPas2JSCompiler(P).LogEncoding := Enconding;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure SetPas2JSGetFileSrcAttrCallBack(P: PPas2JSCompiler; ACallBack: TGetFileSrcAttrCallBack; ACallBackData: Pointer); {$IFDEF UseCDecl}cdecl{$ELSE}stdcall{$ENDIF};
|
|
|
|
+begin
|
|
|
|
+ TLibraryPas2JSCompiler(P).OnGetFileSrcAttr := ACallBack;
|
|
|
|
+ TLibraryPas2JSCompiler(P).OnGetFileSrcAttrData := ACallBackData;
|
|
|
|
+end;
|
|
|
|
+
|
|
end.
|
|
end.
|
|
|
|
|