浏览代码

* Support for $I %unit% %module% %filename% includes

git-svn-id: trunk@47379 -
michael 4 年之前
父节点
当前提交
df4fc55214
共有 3 个文件被更改,包括 16 次插入0 次删除
  1. 3 0
      packages/fcl-passrc/src/pparser.pp
  2. 2 0
      packages/fcl-passrc/src/pscanner.pp
  3. 11 0
      packages/pastojs/src/fppas2js.pp

+ 3 - 0
packages/fcl-passrc/src/pparser.pp

@@ -3060,6 +3060,7 @@ begin
   FCurModule:=Module;
   HasFinished:=true;
   try
+    Scanner.CurModuleName:=AUnitName;
     if Assigned(Engine.Package) then
       begin
       Module.PackageName := Engine.Package.Name;
@@ -3231,6 +3232,7 @@ begin
   HasFinished:=true;
   FCurModule:=Module;
   try
+    Scanner.CurModuleName:=N;
     if Assigned(Engine.Package) then
     begin
       Module.PackageName := Engine.Package.Name;
@@ -3307,6 +3309,7 @@ begin
   HasFinished:=true;
   FCurModule:=Module;
   try
+    Scanner.CurModuleName:=N;
     if Assigned(Engine.Package) then
     begin
       Module.PackageName := Engine.Package.Name;

+ 2 - 0
packages/fcl-passrc/src/pscanner.pp

@@ -703,6 +703,7 @@ type
     FAllowedModeSwitches: TModeSwitches;
     FAllowedValueSwitches: TValueSwitches;
     FConditionEval: TCondDirectiveEvaluator;
+    FCurModulename: string;
     FCurrentBoolSwitches: TBoolSwitches;
     FCurrentModeSwitches: TModeSwitches;
     FCurrentValueSwitches: TValueSwitchArray;
@@ -864,6 +865,7 @@ type
     property Files: TStrings read FFiles;
     property CurSourceFile: TLineReader read FCurSourceFile;
     property CurFilename: string read FCurFilename;
+    property CurModuleName: string read FCurModulename Write FCurModuleName;
     property CurLine: string read FCurLine;
     property CurRow: Integer read FCurRow;
     property CurColumn: Integer read GetCurColumn;

+ 11 - 0
packages/pastojs/src/fppas2js.pp

@@ -2877,6 +2877,17 @@ begin
         SetStr(CurFilename);
         exit;
       end;
+    '%filename%':
+      begin
+        SetStr(ExtractFileName(CurFilename));
+        exit;
+      end;
+    '%unit%',
+    '%module%':
+      begin
+        SetStr(CurModuleName);
+        exit;
+      end;
     '%line%':
       begin
         SetStr(IntToStr(CurRow));