Browse Source

+ Add property options display

git-svn-id: trunk@19024 -
pierre 14 years ago
parent
commit
a1c5b7c118
1 changed files with 111 additions and 2 deletions
  1. 111 2
      compiler/utils/ppudump.pp

+ 111 - 2
compiler/utils/ppudump.pp

@@ -883,7 +883,64 @@ begin
   until false;
 end;
 
+(*
+       talignmentinfo = packed record
+         procalign,
+         loopalign,
+         jumpalign,
+         constalignmin,
+         constalignmax,
+         varalignmin,
+         varalignmax,
+         localalignmin,
+         localalignmax,
+         recordalignmin,
+         recordalignmax,
+         maxCrecordalign : longint;
+       end;
+
+
+       tsettings = packed record
+         alignment       : talignmentinfo;
+         globalswitches  : tglobalswitches;
+         moduleswitches  : tmoduleswitches;
+         localswitches   : tlocalswitches;
+         modeswitches    : tmodeswitches;
+         optimizerswitches : toptimizerswitches;
+         { generate information necessary to perform these wpo's during a subsequent compilation }
+         genwpoptimizerswitches: twpoptimizerswitches;
+         { perform these wpo's using information generated during a previous compilation }
+         dowpoptimizerswitches: twpoptimizerswitches;
+         debugswitches   : tdebugswitches;
+         { 0: old behaviour for sets <=256 elements
+           >0: round to this size }
+         setalloc,
+         packenum        : shortint;
+
+         packrecords     : shortint;
+         maxfpuregisters : shortint;
+
+         cputype,
+         optimizecputype : tcputype;
+         fputype         : tfputype;
+         asmmode         : tasmmode;
+         interfacetype   : tinterfacetypes;
+         defproccall     : tproccalloption;
+         sourcecodepage  : tcodepagestring;
+
+         minfpconstprec  : tfloattype;
+
+         disabledircache : boolean;
+
+        { CPU targets with microcontroller support can add a controller specific unit }
+{$if defined(ARM) or defined(AVR)}
+        controllertype   : tcontrollertype;
+{$endif defined(ARM) or defined(AVR)}
+         { WARNING: this pointer cannot be written as such in record token }
+         pmessage : pmessagestaterecord;
+       end;
 
+*)
 procedure readprocinfooptions(space : string);
 (*
        tprocinfoflag=(
@@ -1629,6 +1686,59 @@ begin
   writeln;
 end;
 
+(* options for properties
+  tpropertyoption=(ppo_none,
+    ppo_indexed,
+    ppo_defaultproperty,
+    ppo_stored,
+    ppo_hasparameters,
+    ppo_implements,
+    ppo_enumerator_current,
+    ppo_dispid_read,              { no longer used }
+    ppo_dispid_write              { no longer used }
+  );
+  tpropertyoptions=set of tpropertyoption;
+*)
+procedure readpropertyoptions;
+{ type tarraydefoption is in unit symconst }
+type
+  tpropopt=record
+    mask : tpropertyoption;
+    str  : string[30];
+  end;
+const
+  symopt : array[1..ord(high(tpropertyoption))] of tpropopt=(
+    (mask:ppo_indexed;str:'indexed'),
+    (mask:ppo_defaultproperty;str:'default'),
+    (mask:ppo_stored;str:'stored'),
+    (mask:ppo_hasparameters;str:'has parameters'),
+    (mask:ppo_implements;str:'implements'),
+    (mask:ppo_enumerator_current;str:'enumerator current'),
+    (mask:ppo_dispid_read;str:'dispid read'),   { no longer used }
+    (mask:ppo_dispid_write;str:'dispid write')  { no longer used }
+  );
+var
+  propoptions : tpropertyoptions;
+  i      : longint;
+  first  : boolean;
+begin
+  ppufile.getsmallset(propoptions);
+  if propoptions<>[] then
+   begin
+     first:=true;
+     for i:=1 to high(symopt) do
+      if (symopt[i].mask in propoptions) then
+       begin
+         if first then
+           first:=false
+         else
+           write(', ');
+         write(symopt[i].str);
+       end;
+   end;
+  writeln;
+end;
+
 
 procedure readnodetree;
 var
@@ -2024,8 +2134,7 @@ begin
          ibpropertysym :
            begin
              readcommonsym('Property ');
-             i:=getlongint;
-             writeln(space,'  PropOptions : ',i);
+             readpropertyoptions;
              write  (space,' OverrideProp : ');
              readderef('');
              write  (space,'    Prop Type : ');