Browse Source

fcl-passrc: resolver: adaptions for pas2js

git-svn-id: trunk@39976 -
Mattias Gaertner 6 years ago
parent
commit
7b3d35ad2f
1 changed files with 28 additions and 15 deletions
  1. 28 15
      packages/fcl-passrc/src/pasresolver.pp

+ 28 - 15
packages/fcl-passrc/src/pasresolver.pp

@@ -1446,7 +1446,7 @@ type
     fExprEvaluator: TResExprEvaluator;
     fExprEvaluator: TResExprEvaluator;
     procedure OnExprEvalLog(Sender: TResExprEvaluator; const id: TMaxPrecInt;
     procedure OnExprEvalLog(Sender: TResExprEvaluator; const id: TMaxPrecInt;
       MsgType: TMessageType; MsgNumber: integer; const Fmt: String;
       MsgType: TMessageType; MsgNumber: integer; const Fmt: String;
-      Args: array of const; PosEl: TPasElement); virtual;
+      Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif}; PosEl: TPasElement); virtual;
     function OnExprEvalIdentifier(Sender: TResExprEvaluator;
     function OnExprEvalIdentifier(Sender: TResExprEvaluator;
       Expr: TPrimitiveExpr; Flags: TResEvalFlags): TResEvalValue; virtual;
       Expr: TPrimitiveExpr; Flags: TResEvalFlags): TResEvalValue; virtual;
     function OnExprEvalParams(Sender: TResExprEvaluator;
     function OnExprEvalParams(Sender: TResExprEvaluator;
@@ -1653,9 +1653,11 @@ type
     class function GetDbgSourcePosStr(El: TPasElement): string;
     class function GetDbgSourcePosStr(El: TPasElement): string;
     function GetElementSourcePosStr(El: TPasElement): string;
     function GetElementSourcePosStr(El: TPasElement): string;
     procedure SetLastMsg(const id: TMaxPrecInt; MsgType: TMessageType; MsgNumber: integer;
     procedure SetLastMsg(const id: TMaxPrecInt; MsgType: TMessageType; MsgNumber: integer;
-      Const Fmt : String; Args : Array of const; PosEl: TPasElement);
+      Const Fmt : String; Args : Array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+      PosEl: TPasElement);
     procedure LogMsg(const id: TMaxPrecInt; MsgType: TMessageType; MsgNumber: integer;
     procedure LogMsg(const id: TMaxPrecInt; MsgType: TMessageType; MsgNumber: integer;
-      const Fmt: String; Args: Array of const; PosEl: TPasElement); overload;
+      const Fmt: String; Args: Array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+      PosEl: TPasElement); overload;
     class function GetWarnIdentifierNumbers(Identifier: string;
     class function GetWarnIdentifierNumbers(Identifier: string;
       out MsgNumbers: TIntegerDynArray): boolean; virtual;
       out MsgNumbers: TIntegerDynArray): boolean; virtual;
     procedure GetIncompatibleTypeDesc(const GotType, ExpType: TPasResolverResult;
     procedure GetIncompatibleTypeDesc(const GotType, ExpType: TPasResolverResult;
@@ -1663,7 +1665,8 @@ type
     procedure GetIncompatibleTypeDesc(const GotType, ExpType: TPasType;
     procedure GetIncompatibleTypeDesc(const GotType, ExpType: TPasType;
       out GotDesc, ExpDesc: String); overload;
       out GotDesc, ExpDesc: String); overload;
     procedure RaiseMsg(const Id: TMaxPrecInt; MsgNumber: integer; const Fmt: String;
     procedure RaiseMsg(const Id: TMaxPrecInt; MsgNumber: integer; const Fmt: String;
-      Args: Array of const; ErrorPosEl: TPasElement); virtual;
+      Args: Array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+      ErrorPosEl: TPasElement); virtual;
     procedure RaiseNotYetImplemented(id: TMaxPrecInt; El: TPasElement; Msg: string = ''); virtual;
     procedure RaiseNotYetImplemented(id: TMaxPrecInt; El: TPasElement; Msg: string = ''); virtual;
     procedure RaiseInternalError(id: TMaxPrecInt; const Msg: string = '');
     procedure RaiseInternalError(id: TMaxPrecInt; const Msg: string = '');
     procedure RaiseInvalidScopeForElement(id: TMaxPrecInt; El: TPasElement; const Msg: string = '');
     procedure RaiseInvalidScopeForElement(id: TMaxPrecInt; El: TPasElement; const Msg: string = '');
@@ -1675,11 +1678,14 @@ type
     procedure RaiseVarExpected(id: TMaxPrecInt; ErrorEl: TPasElement; IdentEl: TPasElement);
     procedure RaiseVarExpected(id: TMaxPrecInt; ErrorEl: TPasElement; IdentEl: TPasElement);
     procedure RaiseRangeCheck(id: TMaxPrecInt; ErrorEl: TPasElement);
     procedure RaiseRangeCheck(id: TMaxPrecInt; ErrorEl: TPasElement);
     procedure RaiseIncompatibleTypeDesc(id: TMaxPrecInt; MsgNumber: integer;
     procedure RaiseIncompatibleTypeDesc(id: TMaxPrecInt; MsgNumber: integer;
-      const Args: array of const; const GotDesc, ExpDesc: String; ErrorEl: TPasElement);
+      const Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+      const GotDesc, ExpDesc: String; ErrorEl: TPasElement);
     procedure RaiseIncompatibleType(id: TMaxPrecInt; MsgNumber: integer;
     procedure RaiseIncompatibleType(id: TMaxPrecInt; MsgNumber: integer;
-      const Args: array of const; GotType, ExpType: TPasType; ErrorEl: TPasElement);
+      const Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+      GotType, ExpType: TPasType; ErrorEl: TPasElement);
     procedure RaiseIncompatibleTypeRes(id: TMaxPrecInt; MsgNumber: integer;
     procedure RaiseIncompatibleTypeRes(id: TMaxPrecInt; MsgNumber: integer;
-      const Args: array of const; const GotType, ExpType: TPasResolverResult;
+      const Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+      const GotType, ExpType: TPasResolverResult;
       ErrorEl: TPasElement);
       ErrorEl: TPasElement);
     procedure RaiseInvalidProcTypeModifier(id: TMaxPrecInt; ProcType: TPasProcedureType;
     procedure RaiseInvalidProcTypeModifier(id: TMaxPrecInt; ProcType: TPasProcedureType;
       ptm: TProcTypeModifier; ErrorEl: TPasElement);
       ptm: TProcTypeModifier; ErrorEl: TPasElement);
@@ -1909,7 +1915,7 @@ function GetTreeDbg(El: TPasElement; Indent: integer): string;
   procedure LineBreak(SubIndent: integer);
   procedure LineBreak(SubIndent: integer);
   begin
   begin
     Inc(Indent,SubIndent);
     Inc(Indent,SubIndent);
-    Result:=Result+LineEnding+Space(Indent);
+    Result:=Result+LineEnding+StringOfChar(' ',Indent);
   end;
   end;
 
 
 var
 var
@@ -11554,7 +11560,8 @@ end;
 
 
 procedure TPasResolver.OnExprEvalLog(Sender: TResExprEvaluator;
 procedure TPasResolver.OnExprEvalLog(Sender: TResExprEvaluator;
   const id: TMaxPrecInt; MsgType: TMessageType; MsgNumber: integer;
   const id: TMaxPrecInt; MsgType: TMessageType; MsgNumber: integer;
-  const Fmt: String; Args: array of const; PosEl: TPasElement);
+  const Fmt: String; Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+  PosEl: TPasElement);
 begin
 begin
   if MsgType<=mtError then
   if MsgType<=mtError then
     RaiseMsg(id,MsgNumber,Fmt,Args,PosEl)
     RaiseMsg(id,MsgNumber,Fmt,Args,PosEl)
@@ -15294,7 +15301,8 @@ begin
 end;
 end;
 
 
 procedure TPasResolver.SetLastMsg(const id: TMaxPrecInt; MsgType: TMessageType;
 procedure TPasResolver.SetLastMsg(const id: TMaxPrecInt; MsgType: TMessageType;
-  MsgNumber: integer; const Fmt: String; Args: array of const;
+  MsgNumber: integer; const Fmt: String;
+  Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
   PosEl: TPasElement);
   PosEl: TPasElement);
 var
 var
 {$IFDEF VerbosePasResolver}
 {$IFDEF VerbosePasResolver}
@@ -15336,7 +15344,8 @@ begin
 end;
 end;
 
 
 procedure TPasResolver.RaiseMsg(const Id: TMaxPrecInt; MsgNumber: integer;
 procedure TPasResolver.RaiseMsg(const Id: TMaxPrecInt; MsgNumber: integer;
-  const Fmt: String; Args: array of const; ErrorPosEl: TPasElement);
+  const Fmt: String; Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+  ErrorPosEl: TPasElement);
 var
 var
   E: EPasResolve;
   E: EPasResolve;
 begin
 begin
@@ -15437,7 +15446,8 @@ begin
 end;
 end;
 
 
 procedure TPasResolver.RaiseIncompatibleTypeDesc(id: TMaxPrecInt; MsgNumber: integer;
 procedure TPasResolver.RaiseIncompatibleTypeDesc(id: TMaxPrecInt; MsgNumber: integer;
-  const Args: array of const; const GotDesc, ExpDesc: String; ErrorEl: TPasElement);
+  const Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+  const GotDesc, ExpDesc: String; ErrorEl: TPasElement);
 
 
   function GetString(ArgNo: integer): string;
   function GetString(ArgNo: integer): string;
   begin
   begin
@@ -15475,7 +15485,8 @@ begin
 end;
 end;
 
 
 procedure TPasResolver.RaiseIncompatibleType(id: TMaxPrecInt; MsgNumber: integer;
 procedure TPasResolver.RaiseIncompatibleType(id: TMaxPrecInt; MsgNumber: integer;
-  const Args: array of const; GotType, ExpType: TPasType; ErrorEl: TPasElement);
+  const Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+  GotType, ExpType: TPasType; ErrorEl: TPasElement);
 var
 var
   DescA, DescB: String;
   DescA, DescB: String;
 begin
 begin
@@ -15490,7 +15501,8 @@ begin
 end;
 end;
 
 
 procedure TPasResolver.RaiseIncompatibleTypeRes(id: TMaxPrecInt; MsgNumber: integer;
 procedure TPasResolver.RaiseIncompatibleTypeRes(id: TMaxPrecInt; MsgNumber: integer;
-  const Args: array of const; const GotType, ExpType: TPasResolverResult;
+  const Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
+  const GotType, ExpType: TPasResolverResult;
   ErrorEl: TPasElement);
   ErrorEl: TPasElement);
 var
 var
   GotDesc, ExpDesc: String;
   GotDesc, ExpDesc: String;
@@ -15517,7 +15529,8 @@ begin
 end;
 end;
 
 
 procedure TPasResolver.LogMsg(const id: TMaxPrecInt; MsgType: TMessageType;
 procedure TPasResolver.LogMsg(const id: TMaxPrecInt; MsgType: TMessageType;
-  MsgNumber: integer; const Fmt: String; Args: array of const;
+  MsgNumber: integer; const Fmt: String;
+  Args: array of {$ifdef pas2js}jsvalue{$else}const{$endif};
   PosEl: TPasElement);
   PosEl: TPasElement);
 var
 var
   Scanner: TPascalScanner;
   Scanner: TPascalScanner;