JSDOC/TokenReader.js
[gnome.introspection-doc-generator] / JSDOC / TokenReader.js
index 6f5d959..611868c 100644 (file)
@@ -1,22 +1,24 @@
 //<script type="text/javascript">
 
-imports['Object.js'].load(Object);
+//imports['Object.js'].load(Object);
+XObject = imports.XObject.XObject;
 console = imports['console.js'].console;
 
 JSDOC   = imports['JSDOC.js'].JSDOC;
 Token   = imports['JSDOC/Token.js'].Token;
-Lang    = imports['JSDOC/Token.js'].Lang;
+Lang    = imports['JSDOC/Lang.js'].Lang;
 
 /**
        @class Search a {@link JSDOC.TextStream} for language tokens.
 */
-TokenReader = Object.define(
+TokenReader = XObject.define(
     function(o) {
         
         this.keepDocs = true;
         this.keepWhite = false;
         this.keepComments = false;
-        Roo.apply(this, o || {});
+        this.sepIdents = false; // seperate '.' in identifiers..
+        XObject.extend(this, o || {});
         
     },
     Object,
@@ -72,9 +74,20 @@ TokenReader = Object.define(
             }
             else {
                 var name;
-                if ((name = Lang.keyword(found))) tokens.push(new Token(found, "KEYW", name));
-                else tokens.push(new Token(found, "NAME", "NAME"));
+                if ((name = Lang.keyword(found))) {
+                    tokens.push(new Token(found, "KEYW", name));
+                    return true;
+                }
+                if (found.indexOf('.') < 0) {
+                    tokens.push(new Token(found, "NAME", "NAME"));
+                    return true;
+                }
+                var n = found.split('.');
+                n.forEach(function(nm) {
+                    tokens.push(new Token(nm, "NAME", "NAME"));
+                });
                 return true;
+                
             }
         },