JSDOC/ScopeParser.js
[gnome.introspection-doc-generator] / JSDOC / ScopeParser.js
index d515586..3ca7931 100644 (file)
@@ -313,7 +313,8 @@ ScopeParser.prototype = {
                     
                     break;
                 case "KEYW.FUNCTION":
-                    print('SCOPE-FUNC:' + JSON.stringify(token,null,4));
+                    if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                        print('SCOPE-FUNC:' + JSON.stringify(token,null,4));
                     //println("<i>"+token.data+"</i>");
                      var bn = this.braceNesting;
                     this.parseFunctionDeclaration();
@@ -328,9 +329,13 @@ ScopeParser.prototype = {
                     if (token.props) {
                         
                         for (var prop in token.props) {
-                            if (token.props[prop].val.data == 'function') {
+                            
+                            print('SCOPE-PROPS:' + JSON.stringify(token.props[prop],null,4));
+                            if (token.props[prop].val[0].data == 'function') {
                                 // parse a function..
-                                this.parseFunctProp(token.props[prop]);
+                                this.ts = new TokenStream(token.props[prop].val);
+                                this.parseFunctionDeclaration();
+                                
                                 continue;
                             }
                             // key value..
@@ -611,19 +616,16 @@ ScopeParser.prototype = {
             //this.log("EXP:" + token.data);
             switch (token.type) {
                 case 'PUNC':
-                    print("EXPR-PUNC:" + JSON.stringify(token, null, 4));
+                    print("EXPR-PUNC:" + token.toString());
                     
                     switch(token.data) {
                          
                         case ';':
+                            print("<< EXIT EXPRESSION");
+                            break;
+
                         case ',':
-                            if (this.braceNesting == expressionBraceNesting &&
-                                    bracketNesting == 0 &&
-                                    parensNesting == 0) {
-                                print("<< EXIT EXPRESSION");
-                                this.expN--;
-                                return;
-                            }
+                            
                             break;
 
                        
@@ -688,7 +690,8 @@ ScopeParser.prototype = {
                     break;
                     
                 case 'STRN': // used for object lit detection..
-                    print("EXPR-STR:" + JSON.stringify(token, null, 4));
+                    if (this.mode == 'BUILDING_SYMBOL_TREE')    
+                        print("EXPR-STR:" + JSON.stringify(token, null, 4));
                     if (this.ts.lookTok(-1).data == "{" && this.ts.lookTok(1).data == ":" ) {
                         // then we are in an object lit.. -> we need to flag the brace as such...
                         isObjectLitAr.pop();
@@ -717,7 +720,8 @@ ScopeParser.prototype = {
                       
              
                 case 'NAME':
-                    print("EXPR-NAME:" + JSON.stringify(token, null, 4));
+                    if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                        print("EXPR-NAME:" + JSON.stringify(token, null, 4));
                     symbol = token.data;
                     //print("in NAME = " + token.toString());
                     //print("in NAME 0: " + this.ts.look(0).toString());
@@ -774,7 +778,8 @@ ScopeParser.prototype = {
                     
                     //println("<B>EID</B>");
                 case 'KEYW':   
-                    print("EXPR-KEYW:" + JSON.stringify(token, null, 4));
+                    if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                        print("EXPR-KEYW:" + JSON.stringify(token, null, 4));
                     if (token.name == "FUNCTION") {
                         
                         this.parseFunctionDeclaration();
@@ -810,8 +815,9 @@ ScopeParser.prototype = {
                         }
                         break;
                     } 
-                default: 
-                    print("EXPR-SKIP:" + JSON.stringify(token, null, 4));
+                default:
+                    if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                        print("EXPR-SKIP:" + JSON.stringify(token, null, 4));
                     break;
             }
             
@@ -892,8 +898,8 @@ ScopeParser.prototype = {
             fnScope = this.indexedScopes[this.ts.cursor];
           
         }
-        
-        print('FUNC-PARSE:' + JSON.stringify(token,null,4));
+        if (this.mode == 'BUILDING_SYMBOL_TREE') 
+            print('FUNC-PARSE:' + JSON.stringify(token,null,4));
         // Parse function arguments.
         var args = token.items;
         for (var argpos =0; argpos < args.length; argpos++) {