JSDOC/Token.vala
[gnome.introspection-doc-generator] / JSDOC / Token.vala
index cbcbc37..41c19d7 100644 (file)
@@ -31,6 +31,20 @@ 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;
@@ -39,18 +53,20 @@ namespace JSDOC
         public string type;
         public string name;
         public int line;
-        public string prefix;
+        public string prefix; // white space prefix... (when outputing with WS)
         
         public string outData;
         
-        public string identifier;
+        public Token? identifier;
         
          // used to stuff tokens together when building a tree..
         public Gee.ArrayList<Gee.ArrayList<Token>> items;
+        // for a object definition, key -> array of tokens..
+           public Gee.HashMap<string,TokenKeyMap> props;
         
         // props??? what's this???
         
-        public Token(string data, string type, string name, int line)
+        public Token(string data, string type, string name, int line = -1)
         {
             this.data = data;
             this.type = type;
@@ -59,10 +75,11 @@ namespace JSDOC
             this.prefix = "";    
             this.outData = null; // used by packer/scopeparser
             this.identifier = null; // used by scope
-            this.id = tokid++;
+            this.id = Token_id++;
             
             
             this.items = new Gee.ArrayList<Gee.ArrayList<Token>>();
+            this.props = new Gee.HashMap<string,TokenKeyMap>();
         }
     
         public string asString()
@@ -73,23 +90,23 @@ namespace JSDOC
                     this.name,
                     this.data,
                     this.outData == null ? "" : this.outData
-            )
+            );
             
         }
         
         
-        public string toRaw : function(int lvl = 0)
+        public string toRaw(int lvl = 0)
         {
             
             
             var ret =  this.data ;
             
-            forach(var ai in this.items ) {
-                
+            foreach(var ai in this.items ) {
+                // supposed to iterate properties???
                 string str = "";
-                foreach( var it in ai) {
-                    str += it.toRaw(lvl+1);
-                }
+                //foreach( var it in ai) {
+                 //   str += it.toRaw(lvl+1);
+               // }
                 ret += str;
             }
             
@@ -108,7 +125,7 @@ namespace JSDOC
             
             return this.prefix +   ret;
              
-        },
+        }
         /*
         toJS : function() {
             
@@ -126,5 +143,6 @@ namespace JSDOC
         public bool is(string what) {
             return this.name == what || this.type == what;
         }
-});
+    }
+}
   
\ No newline at end of file