|
@@ -87,14 +87,16 @@ type
|
|
function WriteOtherImplicitTypes(Intf: TIDLInterfaceDefinition; aMemberList: TIDLDefinitionList): Integer;
|
|
function WriteOtherImplicitTypes(Intf: TIDLInterfaceDefinition; aMemberList: TIDLDefinitionList): Integer;
|
|
override;
|
|
override;
|
|
// Code generation routines. Return the number of actually written defs.
|
|
// Code generation routines. Return the number of actually written defs.
|
|
- function WriteDictionaryMemberImplicitTypes(aDict: TIDLDictionaryDefinition;
|
|
|
|
- aList: TIDLDefinitionList): Integer; override;
|
|
|
|
function WritePrivateGetters(aList: TIDLDefinitionList): Integer; override;
|
|
function WritePrivateGetters(aList: TIDLDefinitionList): Integer; override;
|
|
function WritePrivateSetters(aList: TIDLDefinitionList): Integer; override;
|
|
function WritePrivateSetters(aList: TIDLDefinitionList): Integer; override;
|
|
function WriteProperties(aList: TIDLDefinitionList): Integer; override;
|
|
function WriteProperties(aList: TIDLDefinitionList): Integer; override;
|
|
function WriteUtilityMethods(Intf: TIDLInterfaceDefinition): Integer;
|
|
function WriteUtilityMethods(Intf: TIDLInterfaceDefinition): Integer;
|
|
override;
|
|
override;
|
|
// Definitions. Return true if a definition was written.
|
|
// Definitions. Return true if a definition was written.
|
|
|
|
+ function WriteDictionaryField(aField: TIDLDictionaryMemberDefinition
|
|
|
|
+ ): Boolean; override;
|
|
|
|
+ function WriteForwardClassDef(D: TIDLStructuredDefinition): Boolean;
|
|
|
|
+ override;
|
|
function WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean;
|
|
function WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean;
|
|
override;
|
|
override;
|
|
function WriteFunctionTypeDefinition(aDef: TIDLFunctionDefinition
|
|
function WriteFunctionTypeDefinition(aDef: TIDLFunctionDefinition
|
|
@@ -102,6 +104,7 @@ type
|
|
function WritePrivateGetter(Attr: TIDLAttributeDefinition): boolean; virtual;
|
|
function WritePrivateGetter(Attr: TIDLAttributeDefinition): boolean; virtual;
|
|
function WritePrivateSetter(Attr: TIDLAttributeDefinition): boolean; virtual;
|
|
function WritePrivateSetter(Attr: TIDLAttributeDefinition): boolean; virtual;
|
|
function WriteProperty(Attr: TIDLAttributeDefinition): boolean; virtual;
|
|
function WriteProperty(Attr: TIDLAttributeDefinition): boolean; virtual;
|
|
|
|
+ function WriteRecordDef(aDef: TIDLRecordDefinition): Boolean; override;
|
|
Public
|
|
Public
|
|
constructor Create(ThOwner: TComponent); override;
|
|
constructor Create(ThOwner: TComponent); override;
|
|
Published
|
|
Published
|
|
@@ -129,7 +132,7 @@ implementation
|
|
|
|
|
|
function TWebIDLToPasWasmJob.BaseUnits: String;
|
|
function TWebIDLToPasWasmJob.BaseUnits: String;
|
|
begin
|
|
begin
|
|
- Result:='SysUtils, JOB_WAsm';
|
|
|
|
|
|
+ Result:='SysUtils, JOB_JS';
|
|
end;
|
|
end;
|
|
|
|
|
|
function TWebIDLToPasWasmJob.GetPasClassName(const aName: string): string;
|
|
function TWebIDLToPasWasmJob.GetPasClassName(const aName: string): string;
|
|
@@ -267,6 +270,8 @@ begin
|
|
aParentName:=GetName(Intf.ParentInterface)
|
|
aParentName:=GetName(Intf.ParentInterface)
|
|
else
|
|
else
|
|
aParentName:=GetTypeName(Intf.ParentName);
|
|
aParentName:=GetTypeName(Intf.ParentName);
|
|
|
|
+ if aParentName='' then
|
|
|
|
+ aParentName:=ClassPrefix+'Object'+ClassSuffix;
|
|
if aParentName<>'' then
|
|
if aParentName<>'' then
|
|
Result:=Result+aParentName;
|
|
Result:=Result+aParentName;
|
|
aPasIntfName:=GetPasIntfName(Intf);
|
|
aPasIntfName:=GetPasIntfName(Intf);
|
|
@@ -319,16 +324,6 @@ begin
|
|
AddLn('');
|
|
AddLn('');
|
|
end;
|
|
end;
|
|
|
|
|
|
-function TWebIDLToPasWasmJob.WriteDictionaryMemberImplicitTypes(
|
|
|
|
- aDict: TIDLDictionaryDefinition; aList: TIDLDefinitionList): Integer;
|
|
|
|
-var
|
|
|
|
- aName: String;
|
|
|
|
-begin
|
|
|
|
- Result:=inherited WriteDictionaryMemberImplicitTypes(aDict, aList);
|
|
|
|
- aName:=GetName(aDict);
|
|
|
|
- AddLn(aName+' = TJOB_Dictionary;');
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
function TWebIDLToPasWasmJob.WritePrivateGetters(aList: TIDLDefinitionList
|
|
function TWebIDLToPasWasmJob.WritePrivateGetters(aList: TIDLDefinitionList
|
|
): Integer;
|
|
): Integer;
|
|
var
|
|
var
|
|
@@ -381,6 +376,28 @@ begin
|
|
IncludeImplementationCode.Add(Code);
|
|
IncludeImplementationCode.Add(Code);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TWebIDLToPasWasmJob.WriteDictionaryField(
|
|
|
|
+ aField: TIDLDictionaryMemberDefinition): Boolean;
|
|
|
|
+var
|
|
|
|
+ N, TN: String;
|
|
|
|
+begin
|
|
|
|
+ Result:=True;
|
|
|
|
+ N:=GetName(aField);
|
|
|
|
+ TN:=GetTypeName(aField.MemberType);
|
|
|
|
+ if SameText(N,TN) then
|
|
|
|
+ N:='_'+N;
|
|
|
|
+ AddLn(N+': '+TN+';');
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TWebIDLToPasWasmJob.WriteForwardClassDef(D: TIDLStructuredDefinition
|
|
|
|
+ ): Boolean;
|
|
|
|
+begin
|
|
|
|
+ if D is TIDLDictionaryDefinition then
|
|
|
|
+ AddLn(GetName(D)+' = '+JOB_JSValueTypeNames[jjvkDictionary]+';')
|
|
|
|
+ else
|
|
|
|
+ Result:=inherited WriteForwardClassDef(D);
|
|
|
|
+end;
|
|
|
|
+
|
|
function TWebIDLToPasWasmJob.WriteFunctionDefinition(
|
|
function TWebIDLToPasWasmJob.WriteFunctionDefinition(
|
|
aDef: TIDLFunctionDefinition): Boolean;
|
|
aDef: TIDLFunctionDefinition): Boolean;
|
|
var
|
|
var
|
|
@@ -803,6 +820,13 @@ begin
|
|
Result:=true;
|
|
Result:=true;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TWebIDLToPasWasmJob.WriteRecordDef(aDef: TIDLRecordDefinition
|
|
|
|
+ ): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=true;
|
|
|
|
+ AddLn(GetName(aDef)+' = '+ClassPrefix+'Object'+ClassSuffix+';');
|
|
|
|
+end;
|
|
|
|
+
|
|
constructor TWebIDLToPasWasmJob.Create(ThOwner: TComponent);
|
|
constructor TWebIDLToPasWasmJob.Create(ThOwner: TComponent);
|
|
begin
|
|
begin
|
|
inherited Create(ThOwner);
|
|
inherited Create(ThOwner);
|