src/Palete/VapiParser.vala
authorAlan Knowles <alan@roojs.com>
Wed, 6 May 2015 09:04:08 +0000 (17:04 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 6 May 2015 09:04:08 +0000 (17:04 +0800)
src/Palete/VapiParser.vala

index 18a9a2e..9cf53aa 100644 (file)
@@ -21,35 +21,42 @@ namespace Palete {
                        }
                }
                
-               GirObject pnode = null;
+               
                
                public override void visit_namespace (Vala.Namespace element) {
                        print("parsing namespace %s\n", element.name);
                        
                        var g = new Gir.new_empty(element.name);
                        cache.set(element.name, g);
-                       pnode = g;
-                       element.accept_children (this);
+                       
+                       
+                       foreach(var c in element.get_classes()) {
+                               this.add_class(g, c);
+                       }
+                       foreach(var c in element.get_interfaces()) {
+                               this.add_interface(g, c);
+                       }
+                       
                }
                
-               public override void visit_class (Vala.Class element) {
-                       var opn = this.pnode;
-                       print("got class %s / %s\n", element.name, element.get_full_name());
-                       var n = element.name;
-                       var c = new GirObject("Class", this.pnode.name + "." + element.name);
-                       this.pnode.classes.set(n, c);
-                       c.ns = this.pnode.ns;
-                       c.parent = this.pnode.name;
-                       c.gparent = this.pnode;
-                       //if (c.parent == null) {
-                       //      c.parent = "";
-                       //}
-                       this.pnode =  c;
+               public void add_class(GirObject g, Vala.Class cls)
+               {
+               
+                       var c = new GirObject("Class", g.name + "." + cls.name);
+                       g.classes.set(cls.name, c);
+                       c.ns = g.ns;
+                       c.parent = g.name;
+                       c.gparent = g;
+                       
+                       foreach(
                        
                        element.accept_children (this);
                        this.pnode = opn;
                        
                }
+               
+               
+               
                public override void visit_method (Vala.Method element) {
                        print("got method %s / %s\n", element.name, element.get_full_name() ); 
                        var opn = this.pnode;