JSDOC/Walker2.js
[gnome.introspection-doc-generator] / JSDOC / Walker2.js
index 3132762..fd730b2 100644 (file)
@@ -4,7 +4,7 @@ XObject      = imports.XObject.XObject;
 Scope        = imports.Scope.Scope;
 DocComment   = imports.DocComment.DocComment;
 Symbol       = imports.Symbol.Symbol;
-Parser       = imports.Parser.Parser;
+
 
 /**
 * Scope stuff
@@ -71,6 +71,7 @@ Walker2 = XObject.define(
             
             this.mode = 'BUILDING_SYMBOL_TREE';
             this.parseScope(this.globalScope);
+            
         },
         
 
@@ -148,37 +149,37 @@ Walker2 = XObject.define(
             var scopeLen = this.scopes.length;
             
             if (this.ts.cursor < 1) {
-                 this.ts.cursor--; // hopeflly this kludge will work
+              // this.ts.cursor--; // hopeflly this kludge will work
             }
             
             
             //print(JSON.stringify(this.ts, null, 4)); Seed.quit();
             
-            while (false != (token = this.ts.next())) {
-                print("TOK"+ token.toString());
+            while (null != (token = this.ts.next())) {
+                //print("TOK"+ token.toString());
                 //  this.timerPrint("parseScope AFTER lookT: " + token.toString()); 
                   
-                if (token.is('WHIT')) {
+                if (token.is('COMM')) {
                       
                  
-                    if (!token._isDoc) {
+                    if (token.name != 'JSDOC') {
+                        //print("Walker2 : spce is not JSDOC");
                         continue; //skip.
                     }
                     if (this.currentDoc) {
                         // add it to the current scope????
                         
                         this.addSymbol('', true);
-
-                        
+                        print ( "Unconsumed Doc: " + token.toString())
                         //throw "Unconsumed Doc (TOKwhitespace): " + this.currentDoc.toSource();
                     }
                     
-                    
+                    print ( "NEW COMMENT: " + token.toString())
                     var newDoc = new DocComment(token.data);
                     
                     // it's a scope changer..
                     if (newDoc.getTag("scope").length) {
-                        //print(newDoc.getTag("scope").toSource());
+                        //print("Walker2 : doctag changes scope");
                         //throw "done";
                         scope.ident = '$private$|' + newDoc.getTag("scope")[0].desc;
                         continue;
@@ -188,6 +189,7 @@ Walker2 = XObject.define(
                     if (newDoc.getTag("scopeAlias").length) {
                         //print(newDoc.getTag("scopeAlias").toSource());
                         // @scopeAlias a=b
+                        //print("Walker2 : doctag changes scope (alias)");
                         var sal = newDoc.getTag("scopeAlias")[0].desc.split("=");
                         aliases[sal[0]] = sal[1];
                         
@@ -197,6 +199,7 @@ Walker2 = XObject.define(
                     
                     /// got a  doc comment..
                     //token.data might be this.??? (not sure though)
+                    //print("Walker2 : setting currentDoc");
                     this.currentDoc = newDoc;
                     continue;
                 }
@@ -208,8 +211,8 @@ Walker2 = XObject.define(
                 // things that stop comments carrying on...??
                 
                 if (this.currentDoc && (
-                        token.tokN.data == ';' || 
-                        token.tokN.data == '}')) {
+                        token.data == ';' || 
+                        token.data == '}')) {
                     this.addSymbol('', true);
                     //throw "Unconsumed Doc ("+ token.toString() +"): " + this.currentDoc.toSource();
                 }
@@ -221,16 +224,16 @@ Walker2 = XObject.define(
                 
                  if (token.name == 'VAR' &&
                  
-                        this.ts.lookT(1).type == 'NAME' &&
-                        this.ts.lookT(2).data == '-' &&
-                        this.ts.lookT(3).type == 'NAME'  &&
-                        this.ts.lookT(4).data == ';'  
+                        this.ts.lookTok(1).type == 'NAME' &&
+                        this.ts.lookTok(2).data == '-' &&
+                        this.ts.lookTok(3).type == 'NAME'  &&
+                        this.ts.lookTok(4).data == ';'  
                         
                  
                  ) {
-                    //print("SET ALIAS:" + this.ts.lookT(1).data +'=' + this.ts.lookT(3).data);
+                    //print("SET ALIAS:" + this.ts.lookTok(1).data +'=' + this.ts.lookTok(3).data);
                      
-                    aliases[this.ts.lookT(1).data] = this.ts.lookT(3).data;
+                    aliases[this.ts.lookTok(1).data] = this.ts.lookTok(3).data;
                     
                 
                 }
@@ -244,38 +247,34 @@ Walker2 = XObject.define(
                     // a  << scope
                 // xxx.applyIf(a, {
                     // a  << scope
-                if (token.type = 'NAME') {
+                if (token.type == 'NAME') {
                     
                     //print("TOK(ident)"+ token.toString());
-                    
-                    
-                       
-                    
-                    
+                     
                     if (/\.extend$/.test(token.data) &&
-                        this.ts.lookT(1).data == '(' &&
-                        this.ts.lookT(2).type == 'NAME' &&
-                        this.ts.lookT(3).data == ',' &&
-                        this.ts.lookT(4).type == 'NAME' &&
-                        this.ts.lookT(5).data == ',' &&
-                        this.ts.lookT(6).data == '{' 
+                        this.ts.lookTok(1).data == '(' &&
+                        this.ts.lookTok(2).type == 'NAME' &&
+                        this.ts.lookTok(3).data == ',' &&
+                        this.ts.lookTok(4).type == 'NAME' &&
+                        this.ts.lookTok(5).data == ',' &&
+                        this.ts.lookTok(6).data == '{' 
                            
                         ) {
                         // ignore test for ( a and ,
-                        this.ts.nextT(); /// (
-                        token = this.ts.nextT(); // a
+                        this.ts.nextTok(); /// (
+                        token = this.ts.nextTok(); // a
                         scopeName = token.data;
                         
                         if (this.currentDoc) {
                             this.addSymbol(scopeName,false,'OBJECT');
 
                         }
-                        this.ts.nextT(); // ,
-                        this.ts.nextT(); // b
+                        this.ts.nextTok(); // ,
+                        this.ts.nextTok(); // b
                         
                         
-                        this.ts.nextT(); // ,
-                        token = this.ts.nextT(); // {
+                        this.ts.nextTok(); // ,
+                        token = this.ts.nextTok(); // {
                             
                         scopeName = fixAlias(scopeName);
                         
@@ -294,25 +293,25 @@ Walker2 = XObject.define(
                     // a = Roo.extend(parentname, {
                         
                      if (/\.extend$/.test(token.data) &&
-                        this.ts.lookT(-2).type == 'NAME'  &&
-                        this.ts.lookT(-1).data == '=' &&
-                        this.ts.lookT(1).data == '(' &&
-                        this.ts.lookT(2).type == 'NAME' &&
-                        this.ts.lookT(3).data == ',' &&
-                        this.ts.lookT(4).data == '{' 
+                        this.ts.lookTok(-2).type == 'NAME'  &&
+                        this.ts.lookTok(-1).data == '=' &&
+                        this.ts.lookTok(1).data == '(' &&
+                        this.ts.lookTok(2).type == 'NAME' &&
+                        this.ts.lookTok(3).data == ',' &&
+                        this.ts.lookTok(4).data == '{' 
                         ) {
                         // ignore test for ( a and ,
-                        token = this.ts.lookT(-2);
+                        token = this.ts.lookTok(-2);
                         scopeName = token.data;
                         if (this.currentDoc) {
                             this.addSymbol(scopeName,false,'OBJECT');
 
                         }
-                        this.ts.nextT(); /// (
-                        this.ts.nextT(); // parent
+                        this.ts.nextTok(); /// (
+                        this.ts.nextTok(); // parent
                         
-                        this.ts.nextT(); // ,
-                        token =  this.ts.nextT(); // {
+                        this.ts.nextTok(); // ,
+                        token =  this.ts.nextTok(); // {
                              
                         
                         scopeName = fixAlias(scopeName);
@@ -330,32 +329,40 @@ Walker2 = XObject.define(
                     
                     
                      // apply ( XXXX,  {
-                         
+                    /*
+                    print(JSON.stringify([
+                        token.data,
+                        this.ts.lookTok(1).data ,
+                        this.ts.lookTok(2).type ,
+                        this.ts.lookTok(3).data ,
+                        this.ts.lookTok(4).data 
+                    ], null, 4));
+                    */
+                    
                     if (/\.(applyIf|apply)$/.test(token.data) && 
-                        this.ts.lookT(1).data == '('  &&
-                        this.ts.lookT(2).type == 'NAME' &&
-                        this.ts.lookT(3).data == ','  &&
-                        this.ts.lookT(4).data == '{' 
+                        this.ts.lookTok(1).data == '('  &&
+                        this.ts.lookTok(2).type == 'NAME' &&
+                        this.ts.lookTok(3).data == ','  &&
+                        this.ts.lookTok(4).data == '{' 
                         
                         ) {
-                        this.ts.nextT(); /// (
+                        this.ts.nextTok(); /// (
                          
                         //print("GOT : applyIF!"); 
                          
-                        token = this.ts.nextT(); // b
+                        token = this.ts.nextTok(); // b
                         scopeName = token.data;
                         
                                       
                         if (this.currentDoc) {
                             this.addSymbol(scopeName,false,'OBJECT');
-
                         }
                      
 
                         
-                        this.ts.nextT(); /// ,
-                        this.ts.nextT(); // {
-                            scopeName = fixAlias(scopeName);
+                        this.ts.nextTok(); /// ,
+                        this.ts.nextTok(); // {
+                        scopeName = fixAlias(scopeName);
                         var fnScope = new Scope(this.braceNesting, scope, token.n, scopeName);
                         this.indexedScopes[this.ts.cursor] = fnScope;
                         scope = fnScope;
@@ -370,12 +377,20 @@ Walker2 = XObject.define(
                     // xxx = new yyy ( {
                         
                     // change scope to xxxx
-                    
-                    if ( this.ts.lookT(1).data == '=' &&
-                        this.ts.lookT(2).name == 'NEW' &&
-                        this.ts.lookT(3).type == 'NAME' &&
-                        this.ts.lookT(4).data == '(' &&
-                        this.ts.lookT(5).data == '{' 
+                    /*
+                    print(JSON.stringify([
+                        this.ts.lookTok(1).data ,
+                        this.ts.lookTok(2).name ,
+                        this.ts.lookTok(3).type ,
+                        this.ts.lookTok(4).data ,
+                        this.ts.lookTok(5).data 
+                    ], null, 4));
+                    */
+                    if ( this.ts.lookTok(1).data == '=' &&
+                        this.ts.lookTok(2).name == 'NEW' &&
+                        this.ts.lookTok(3).type == 'NAME' &&
+                        this.ts.lookTok(4).data == '(' &&
+                        this.ts.lookTok(5).data == '{' 
                         ) {
                         scopeName = token.data;
                         if (this.currentDoc) {
@@ -383,11 +398,11 @@ Walker2 = XObject.define(
                             
                         }
                         
-                        this.ts.nextT(); /// =
-                        this.ts.nextT(); /// new
-                        this.ts.nextT(); /// yyy
-                        this.ts.nextT(); /// (
-                        this.ts.nextT(); /// {
+                        this.ts.nextTok(); /// =
+                        this.ts.nextTok(); /// new
+                        this.ts.nextTok(); /// yyy
+                        this.ts.nextTok(); /// (
+                        this.ts.nextTok(); /// {
                             
                         scopeName = fixAlias(scopeName);
                         var fnScope = new Scope(this.braceNesting, scope, token.n, scopeName);
@@ -402,19 +417,7 @@ Walker2 = XObject.define(
                     }
                     
 
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
+                     
                     
                     
                     
@@ -432,26 +435,35 @@ Walker2 = XObject.define(
                         // ident = function ()
                         var atype = 'OBJECT';
                         
-                        if (((this.ts.lookT(1).data == ':' )|| (this.ts.lookT(1).data == '=')) &&
-                            (this.ts.lookT(2).name == "FUNCTION")
+                        if (((this.ts.lookTok(1).data == ':' )|| (this.ts.lookTok(1).data == '=')) &&
+                            (this.ts.lookTok(2).name == "FUNCTION")
                             ) {
+                                this.ts.nextTok();
+                                this.ts.nextTok();
                                 atype = 'FUNCTION';
                         }
                         
-                        //print("ADD SYM:" + atype + ":" + token.toString() + this.ts.lookT(1).toString() + this.ts.lookT(2).toString());
+                        //print("ADD SYM:" + atype + ":" + token.toString() + this.ts.lookTok(1).toString() + this.ts.lookTok(2).toString());
                         
                         this.addSymbol(
-                            this.ts.lookT(-1).tokN == Script.TOKdot ? token.data :    fixAlias(token.data),
+                            this.ts.lookTok(-1).data == '.' ? token.data :    fixAlias(token.data),
                             false,
                             atype);
                         
+                        
+                        
+                        
                     }
                  
                     
                     continue; // dont care about other idents..
                     
-                }        
-                if (token.type == "STRN")   {
+                }
+                
+                //print ("NOT NAME");
+                
+                
+                if (token.type == "STRN")   { // THIS WILL NOT HAPPEN HERE?!!?
                     if (this.currentDoc) {
                         this.addSymbol(token.data.substring(1,token.data.length-1),false,'OBJECT');
 
@@ -461,13 +473,16 @@ Walker2 = XObject.define(
                 // really we only have to deal with object constructs and function calls that change the scope...
                 
                 
-                 if (token.name == 'FUNCTION') {
-                     
+                if (token.name == 'FUNCTION') {
+                    //print("GOT FUNCTION");
                     // see if we have an unconsumed doc...
                     
                     if (this.currentDoc) {
-                            print(this.ts.dumpToCur());
-                            throw "Unhandled doc (TOKfunction)" + token.toString();
+                            throw {
+                                name: "ArgumentError", 
+                                message: "Unhandled doc (TOKfunction)" + token.toString()
+                            };
+                            
                             //this.addSymbol(this.currentDoc.getTag('class')[0].name, true);
 
                             //throw "Unconsumed Doc: (TOKrbrace)" + this.currentDoc.toSource();
@@ -481,18 +496,19 @@ Walker2 = XObject.define(
                     //$this$=foo.prototype|$private$|foo.prototype
         
                     if (
-                            (this.ts.lookT(-1).data == '=') && 
-                            (this.ts.lookT(-2).type == 'NAME')
+                            (this.ts.lookTok(-1).data == '=') && 
+                            (this.ts.lookTok(-2).type == 'NAME')
                         ) {
-                        scopeName = this.ts.lookT(-2).data;
-                        this.ts.balanceN('(');
-                        token = this.ts.nextT(); // should be {
+                        scopeName = this.ts.lookTok(-2).data;
+                        this.ts.balance('(');
+                        token = this.ts.nextTok(); // should be {
                         //print("FOO=FUNCITON() {}" + this.ts.context() + "\n" + token.toString());
                         
                         
                         scopeName = fixAlias(scopeName);
                         var fnScope = new Scope(this.braceNesting, scope, token.n, 
                             '$this$='+scopeName+'.prototype|$private$|'+scopeName+'.prototype');
+                            
                         this.indexedScopes[this.ts.cursor] = fnScope;
                         //scope = fnScope;
                         //this.scopesIn(fnScope);
@@ -513,13 +529,13 @@ Walker2 = XObject.define(
                         //$private$
                         
                     if (
-                            (this.ts.lookT(-1).name == 'NEW') && 
-                            (this.ts.lookT(-2).data == '=') &&
-                            (this.ts.lookT(-3).type = 'FUNCTION')
+                            (this.ts.lookTok(-1).name == 'NEW') && 
+                            (this.ts.lookTok(-2).data == '=') &&
+                            (this.ts.lookTok(-3).type = 'FUNCTION')
                         ) {
                         //scopeName = this.ts.look(-3).data;
                         this.ts.balanceN(Script.TOKlparen);
-                        token = this.ts.nextT(); // should be {
+                        token = this.ts.nextTok(); // should be {
                             scopeName = fixAlias(scopeName);
                         var fnScope = new Scope(this.braceNesting, scope, token.n, '$private$');
                         this.indexedScopes[this.ts.cursor] = fnScope;
@@ -542,18 +558,18 @@ Walker2 = XObject.define(
                         // no change to scoping..
                         
                     //print("checking for : function() {"); 
-                    //print( [this.ts.lookT(-3).type , this.ts.lookT(-2).type , this.ts.lookT(-1).type ].join(":"));
+                    //print( [this.ts.lookTok(-3).type , this.ts.lookTok(-2).type , this.ts.lookTok(-1).type ].join(":"));
                     if (
-                            (this.ts.lookT(-1).data == ':') && 
-                            (this.ts.lookT(-2).type == 'NAME') &&
-                            (this.ts.lookT(-3).data == '(' || this.ts.lookT(-3).data== ',') 
+                            (this.ts.lookTok(-1).data == ':') && 
+                            (this.ts.lookTok(-2).type == 'NAME') &&
+                            (this.ts.lookTok(-3).data == '(' || this.ts.lookTok(-3).data== ',') 
                         ) {
                         //print("got for : function() {"); 
                             
                         //scopeName = this.ts.look(-3).data;
-                        this.ts.balanceN(Script.TOKlparen);
+                        this.ts.balance('(');
                         //print(token.toString())
-                        token = this.ts.nextT(); // should be {
+                        token = this.ts.nextTok(); // should be {
                         //print(token.toString())
                         scopeName = fixAlias(scopeName);
                         var fnScope = new Scope(this.braceNesting, scope, token.n, '');
@@ -571,11 +587,11 @@ Walker2 = XObject.define(
                         //$this$=foo
                         
                     if (
-                            (this.ts.lookT(1).type == 'NAME') 
+                            (this.ts.lookTok(1).type == 'NAME') 
                         ) {
                         //scopeName = this.ts.look(-3).data;
-                        this.ts.balanceN('(');
-                        token = this.ts.nextT(); // should be {
+                        this.ts.balance('(');
+                        token = this.ts.nextTok(); // should be {
                             
                         var fnScope = new Scope(this.braceNesting, scope, token.n, '');
                         this.indexedScopes[this.ts.cursor] = fnScope;
@@ -594,16 +610,16 @@ Walker2 = XObject.define(
                 // RETURN function(...) {
                     
                     if (
-                           // (this.ts.lookT(-1).tokN == Script.TOKlparen) && 
-                            (this.ts.lookT(1).name != 'NAME')   
+                           // (this.ts.lookTok(-1).tokN == Script.TOKlparen) && 
+                            (this.ts.lookTok(1).name != 'NAME')   
                             
-                        //    (this.ts.lookT(-2).tokN == Script.TOKnew) &&
-                         //   (this.ts.lookT(-3).tokN == Script.TOKassign) &&
-                         //   (this.ts.lookT(-4).tokN == Script.TOKidentifier)
+                        //    (this.ts.lookTok(-2).tokN == Script.TOKnew) &&
+                         //   (this.ts.lookTok(-3).tokN == Script.TOKassign) &&
+                         //   (this.ts.lookTok(-4).tokN == Script.TOKidentifier)
                         ) {
                         //scopeName = this.ts.look(-3).data;
-                        this.ts.balanceN('(');
-                        token = this.ts.nextT(); // should be {
+                        this.ts.balance('(');
+                        token = this.ts.nextTok(); // should be {
                         var fnScope = new Scope(this.braceNesting, scope, token.n, '$private$');
                         this.indexedScopes[this.ts.cursor] = fnScope;
                         //scope = ;
@@ -617,8 +633,12 @@ Walker2 = XObject.define(
                     }
                     
                     
-                    print(this.ts.context());
-                    throw "dont know how to handle function syntax??";
+                    throw {
+                        name: "ArgumentError", 
+                        message: "dont know how to handle function syntax??\n" +
+                                token.toString()
+                    };
+            
                     
                     continue;
                     
@@ -634,9 +654,9 @@ Walker2 = XObject.define(
                
                 
                     if (
-                            (this.ts.lookT(-1).data == '=') &&
-                            (this.ts.lookT(-2).type == 'NAME') &&
-                            (this.ts.lookT(-3).nane != 'VAR')  
+                            (this.ts.lookTok(-1).data == '=') &&
+                            (this.ts.lookTok(-2).type == 'NAME') &&
+                            (this.ts.lookTok(-3).nane != 'VAR')  
                         ) {
                             
                             scopeName = this.ts.look(-2).data;
@@ -658,12 +678,12 @@ Walker2 = XObject.define(
                       
                     //print("GOT LBRACE : check for :");
                     if (
-                            (this.ts.lookT(-1).data == ':') &&
-                            (this.ts.lookT(-2).type == 'NAME') &&
-                            (this.ts.lookT(-3).name != 'VAR') 
+                            (this.ts.lookTok(-1).data == ':') &&
+                            (this.ts.lookTok(-2).type == 'NAME') &&
+                            (this.ts.lookTok(-3).name != 'VAR') 
                         ) {
                             
-                            scopeName = this.ts.lookT(-2).data;
+                            scopeName = this.ts.lookTok(-2).data;
                             scopeName = fixAlias(scopeName);
                             var fnScope = new Scope(this.braceNesting, scope, token.n, scopeName);
                             this.indexedScopes[this.ts.cursor] = fnScope;
@@ -720,6 +740,7 @@ Walker2 = XObject.define(
          
         addSymbol: function(lastIdent, appendIt, atype )
         {
+            //print("Walker.addSymbol : " + lastIdent);
             
             /*if (!this.currentDoc.tags.length) {
                 
@@ -737,18 +758,18 @@ Walker2 = XObject.define(
               
                 //print(this.currentDoc.toSource());
                  this.currentDoc = false;
-                print("SKIP ADD SYM:  it's private");
+                //print("SKIP ADD SYM:  it's private");
                 return;
             }
             
-            var token = this.ts.cur();
+            var token = this.ts.lookTok(0);
             if (typeof(appendIt) == 'undefined') {
                 appendIt= false;
             }
           //  print(this.currentDoc.toSource(););
             if (this.currentDoc.getTag('event').length) {
                 //?? why does it end up in desc - and not name/...
-                print(this.currentDoc.getTag('event')[0]);
+                //print(this.currentDoc.getTag('event')[0]);
                 lastIdent = '*' + this.currentDoc.getTag('event')[0].desc;
                 //lastIdent = '*' + lastIdent ;
             }
@@ -769,7 +790,7 @@ Walker2 = XObject.define(
                 s.push(lastIdent);
                 
                 var s = s.join('|').split('|');
-               print("Walker:ADDSymbol: " + s.join('|') );
+               //print("Walker:ADDSymbol: " + s.join('|') );
                 var _t = '';
                  _s = '';
                 
@@ -796,7 +817,7 @@ Walker2 = XObject.define(
                 
                 /// calc scope!!
                 //print("ADDING SYMBOL: "+ s.join('|') +"\n"+ _s + "\n" +Script.prettyDump(this.currentDoc.toSource()));
-                
+                //print("Walker.addsymbol - add : " + _s);
                 if (appendIt && !lastIdent.length) {
                     
                     // append, and no symbol???
@@ -805,6 +826,7 @@ Walker2 = XObject.define(
                     if (this.currentDoc.getTag('class').length) {
                         _s = this.currentDoc.getTag('class')[0].desc;
                         var symbol = new Symbol(_s, [], "CONSTRUCTOR", this.currentDoc);
+                        Parser       = imports.Parser.Parser;
                         Parser.addSymbol(symbol);
                         this.symbols[_s] = symbol;
                         return;
@@ -817,10 +839,16 @@ Walker2 = XObject.define(
                     
                     _s = _s.replace(/\.prototype.*$/, '');
                     if (typeof(this.symbols[_s]) == 'undefined') {
-                        print("Symbol:" + _s);
-                        print(this.currentDoc.src);
-                        
-                        throw "Trying to append symbol, but no doc available";
+                        //print("Symbol:" + _s);
+                    //print(this.currentDoc.src);
+                        
+                        throw {
+                            name: "ArgumentError", 
+                            message: "Trying to append symbol '" + _s + "', but no doc available\n" +
+                                token.toString()
+                        };
+
+                     
                     }
                         
                     for (var i =0; i < this.currentDoc.tags.length;i++) {
@@ -830,22 +858,30 @@ Walker2 = XObject.define(
                     return;
                 }
             }    
+            //print("Walker.addsymbol - chkdup: " + _s);
             if (typeof(this.symbols[_s]) != 'undefined') {
                 
                 if (this.symbols[_s].comment.hasTags) {
                     // then existing comment doesnt has tags 
-                     throw "DUPLICATE Symbol " + _s;
+                    //throw {
+                    //    name: "ArgumentError", 
+                     //   message:"DUPLICATE Symbol " + _s + "\n" + token.toString()
+                    //};
+                    return;
                 }
                 // otherwise existing comment has tags - overwrite..
                 
                 
             }
+            //print("Walker.addsymbol - ATYPE: " + _s);
+
             if (typeof(atype) == "undefined") {
                 atype = 'OBJECT'; //this.currentDoc.getTag('class').length ? 'OBJECT' : 'FUNCTION';;
                }
             
+            //print("Walker.addsymbol - add : ");
             var symbol = new Symbol(_s, [], atype, this.currentDoc);
-            
+            Parser       = imports.Parser.Parser;
             Parser.addSymbol(symbol);
             this.symbols[_s] = symbol;