JSDOC/Token.vala
[gnome.introspection-doc-generator] / JSDOC / Token.vala
index a31bbfa..0f9fc4a 100644 (file)
@@ -31,9 +31,23 @@ namespace JSDOC
 {
     int Token_id = 1;
 
+
+       public class TokenKeyMap : Object {
+               public Token key;
+               public Gee.ArrayList<Token> vals;
+               
+               public TokenKeyMap()
+               {
+                       this.key = new Token("","VOID", "VOID"); 
+                       this.vals = new  Gee.ArrayList<Token>();
+               }
+               
+               
+       }
+
     public class Token : Object {
         
-        int id;
+        public int id;
         
         public string data;
         public string type;
@@ -43,12 +57,12 @@ namespace JSDOC
         
         public string outData;
         
-        public string identifier;
+        public Identifier identifier;
         
          // used to stuff tokens together when building a tree..
-        public Gee.ArrayList<Token> items;
+        public Gee.ArrayList<Gee.ArrayList<Token>> items;
         // for a object definition, key -> array of tokens..
-           public Gee.HashMap<string,Gee.ArrayList<Token>> props;
+           public Gee.HashMap<string,TokenKeyMap> props;
         
         // props??? what's this???
         
@@ -59,13 +73,13 @@ namespace JSDOC
             this.name = name;
             this.line = line;
             this.prefix = "";    
-            this.outData = null; // used by packer/scopeparser
+            this.outData = ""; // used by packer/scopeparser
             this.identifier = null; // used by scope
             this.id = Token_id++;
             
             
-            this.items = new Gee.ArrayList<Gee.ArrayList<Token>()>;
-            this.props = new Gee.HashMap<string,Gee.ArrayList<Token>>();
+            this.items = new Gee.ArrayList<Gee.ArrayList<Token>>();
+            this.props = new Gee.HashMap<string,TokenKeyMap>();
         }
     
         public string asString()
@@ -81,6 +95,21 @@ namespace JSDOC
         }
         
         
+        public void dump(string indent)
+               {
+               print("%s%s\n",indent, this.asString());
+               if (this.items.size > 0) {
+                       
+                               for (var i = 0;i < this.items.size; i++) {
+                               print("%sITEMS[%d] [ \n",indent);
+                                       for (var j = 0;j < this.items[i].size; j++) {
+                                               this.items[i].dump(indent + "    ");
+                                       }
+                               }
+                   print(outs);
+               }
+        
+        
         public string toRaw(int lvl = 0)
         {