2
0
Эх сурвалжийг харах

+ extend tstoredsymtable with method register_children to register all its symbols and defs

git-svn-id: trunk@37339 -
svenbarth 7 жил өмнө
parent
commit
b322339758
1 өөрчлөгдсөн 22 нэмэгдсэн , 0 устгасан
  1. 22 0
      compiler/symtable.pas

+ 22 - 0
compiler/symtable.pas

@@ -42,6 +42,8 @@ interface
           procedure _needs_init_final(sym:TObject;arg:pointer);
           procedure check_forward(sym:TObject;arg:pointer);
           procedure check_block_valid(def: TObject;arg:pointer);
+          procedure register_defs(def:tobject;arg:pointer);
+          procedure register_syms(sym:tobject;arg:pointer);
           procedure labeldefined(sym:TObject;arg:pointer);
           procedure varsymbolused(sym:TObject;arg:pointer);
           procedure TestPrivate(sym:TObject;arg:pointer);
@@ -70,6 +72,7 @@ interface
           procedure checklabels;
           function  needs_init_final : boolean;
           procedure testfordefaultproperty(sym:TObject;arg:pointer);
+          procedure register_children;
        end;
 
 {$ifdef llvm}
@@ -872,6 +875,18 @@ implementation
       end;
 
 
+    procedure tstoredsymtable.register_syms(sym:tobject;arg:pointer);
+      begin
+        tsym(sym).register_sym;
+      end;
+
+
+    procedure tstoredsymtable.register_defs(def:tobject;arg:pointer);
+      begin
+        tdef(def).register_def;
+      end;
+
+
     procedure TStoredSymtable.labeldefined(sym:TObject;arg:pointer);
       begin
         if (tsym(sym).typ=labelsym) and
@@ -1011,6 +1026,13 @@ implementation
      end;
 
 
+   procedure tstoredsymtable.register_children;
+     begin
+       SymList.ForEachCall(@register_syms,nil);
+       DefList.ForEachCall(@register_defs,nil);
+     end;
+
+
 {***********************************************
            Process all entries
 ***********************************************}