Переглянути джерело

* ppudump: Output the "default" option for properties.

git-svn-id: trunk@26173 -
yury 11 роки тому
батько
коміт
7e8ce16f6b
2 змінених файлів з 18 додано та 0 видалено
  1. 2 0
      compiler/utils/ppuutils/ppudump.pp
  2. 16 0
      compiler/utils/ppuutils/ppuout.pp

+ 2 - 0
compiler/utils/ppuutils/ppudump.pp

@@ -2509,6 +2509,8 @@ begin
                  write  ([space,' OverrideProp : ']);
                  readderef('');
                end;
+             if ppo_defaultproperty in propoptions then
+               Include(TPpuPropDef(def).Options, poDefault);
              write  ([space,'    Prop Type : ']);
              readderef('',TPpuPropDef(def).PropType);
              writeln([space,'        Index : ',getlongint]);

+ 16 - 0
compiler/utils/ppuutils/ppuout.pp

@@ -279,6 +279,9 @@ type
     constructor Create(AParent: TPpuContainerDef); override;
   end;
 
+  TPpuPropOption = (poDefault);
+  TPpuPropOptions = set of TPpuPropOption;
+
   { TPpuPropDef }
   TPpuPropDef = class(TPpuContainerDef)
   protected
@@ -286,6 +289,7 @@ type
   public
     PropType: TPpuRef;
     Getter, Setter: TPpuRef;
+    Options: TPpuPropOptions;
     constructor Create(AParent: TPpuContainerDef); override;
     destructor Destroy; override;
   end;
@@ -456,6 +460,9 @@ const
   ObjOptionNames: array[TPpuObjOption] of string =
     ('abstract','copied');
 
+  PropOptionNames: array[TPpuPropOption] of string =
+    ('default');
+
   ArrayOptionNames: array[TPpuArrayOption] of string =
     ('dynamic');
 
@@ -807,11 +814,20 @@ end;
 { TPpuPropDef }
 
 procedure TPpuPropDef.BeforeWriteItems(Output: TPpuOutput);
+var
+  opt: TPpuPropOption;
 begin
   inherited BeforeWriteItems(Output);
   PropType.Write(Output, 'PropType');
   Getter.Write(Output, 'Getter');
   Setter.Write(Output, 'Setter');
+  if Options <> [] then begin
+    Output.WriteArrayStart('Options');
+    for opt:=Low(opt) to High(opt) do
+      if opt in Options then
+        Output.WriteStr('', PropOptionNames[opt]);
+    Output.WriteArrayEnd('Options');
+  end;
 end;
 
 constructor TPpuPropDef.Create(AParent: TPpuContainerDef);