X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=JSDOC%2FWalker2.js;h=e525fab3607b57b9cbf7f6889e4e5c3f61ab99da;hp=55ae03f77b1a69acba9ab5d8aa450b01ceae5b93;hb=c8377bbd183de807c4b8924f660c7a09cf842312;hpb=76c74d90b66edd7dbea96d3b78d927b9a54923a9 diff --git a/JSDOC/Walker2.js b/JSDOC/Walker2.js index 55ae03f..e525fab 100644 --- a/JSDOC/Walker2.js +++ b/JSDOC/Walker2.js @@ -156,7 +156,7 @@ Walker2 = XObject.define( //print(JSON.stringify(this.ts, null, 4)); Seed.quit(); while (null != (token = this.ts.next())) { - print("TOK"+ token.toString()); + //print("TOK"+ token.toString()); // this.timerPrint("parseScope AFTER lookT: " + token.toString()); if (token.is('COMM')) { @@ -170,11 +170,11 @@ Walker2 = XObject.define( // 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.. @@ -250,11 +250,7 @@ Walker2 = XObject.define( if (token.type == 'NAME') { //print("TOK(ident)"+ token.toString()); - - - - - + if (/\.extend$/.test(token.data) && this.ts.lookTok(1).data == '(' && this.ts.lookTok(2).type == 'NAME' && @@ -421,19 +417,7 @@ Walker2 = XObject.define( } - - - - - - - - - - - - - + @@ -454,6 +438,8 @@ Walker2 = XObject.define( 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'; } @@ -464,6 +450,9 @@ Walker2 = XObject.define( false, atype); + this.currentDoc = false; + + } @@ -471,10 +460,10 @@ Walker2 = XObject.define( } - print ("NOT NAME"); + //print ("NOT NAME"); - if (token.type == "STRN") { + if (token.type == "STRN") { // THIS WILL NOT HAPPEN HERE?!!? if (this.currentDoc) { this.addSymbol(token.data.substring(1,token.data.length-1),false,'OBJECT'); @@ -484,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') { - print("GOT 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(); @@ -542,7 +534,7 @@ Walker2 = XObject.define( (this.ts.lookTok(-3).type = 'FUNCTION') ) { //scopeName = this.ts.look(-3).data; - this.ts.balanceN(Script.TOKlparen); + this.ts.balance("("); token = this.ts.nextTok(); // should be { scopeName = fixAlias(scopeName); var fnScope = new Scope(this.braceNesting, scope, token.n, '$private$'); @@ -572,10 +564,10 @@ Walker2 = XObject.define( (this.ts.lookTok(-2).type == 'NAME') && (this.ts.lookTok(-3).data == '(' || this.ts.lookTok(-3).data== ',') ) { - print("got for : function() {"); + //print("got for : function() {"); //scopeName = this.ts.look(-3).data; - this.ts.balanceN(Script.TOKlparen); + this.ts.balance('('); //print(token.toString()) token = this.ts.nextTok(); // should be { //print(token.toString()) @@ -598,7 +590,7 @@ Walker2 = XObject.define( (this.ts.lookTok(1).type == 'NAME') ) { //scopeName = this.ts.look(-3).data; - this.ts.balanceN('('); + this.ts.balance('('); token = this.ts.nextTok(); // should be { var fnScope = new Scope(this.braceNesting, scope, token.n, ''); @@ -626,7 +618,7 @@ Walker2 = XObject.define( // (this.ts.lookTok(-4).tokN == Script.TOKidentifier) ) { //scopeName = this.ts.look(-3).data; - this.ts.balanceN('('); + 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; @@ -641,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; @@ -708,7 +704,7 @@ Walker2 = XObject.define( continue; } - if (token.data == '{') { + if (token.data == '}') { if (this.currentDoc) { @@ -744,7 +740,8 @@ Walker2 = XObject.define( addSymbol: function(lastIdent, appendIt, atype ) { - print("Walker.addSymbol : " + lastIdent); + //print("Walker.addSymbol : " + lastIdent); + //print("Walker.curdoc: " + JSON.stringify(this.currentDoc, null,4)); /*if (!this.currentDoc.tags.length) { @@ -762,7 +759,7 @@ 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; } @@ -773,7 +770,7 @@ Walker2 = XObject.define( // 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 ; } @@ -793,8 +790,12 @@ Walker2 = XObject.define( } s.push(lastIdent); + //print("FULLSCOPE: " + JSON.stringify(s)); + + var s = s.join('|').split('|'); - print("Walker:ADDSymbol: " + s.join('|') ); + //print("FULLSCOPE: " + s); + // print("Walker:ADDSymbol: " + s.join('|') ); var _t = ''; _s = ''; @@ -811,17 +812,18 @@ Walker2 = XObject.define( if (s[i].substring(0,6) == '$this$') { var ts = s[i].split('='); _t = ts[1]; + _s = ''; // ??? VERY QUESTIONABLE!!! continue; } // when to use $this$ (probabl for events) _s += _s.length ? '.' : ''; _s += s[i]; } - + //print("FULLSCOPE: s , t : " + _s +', ' + _t); /// calc scope!! //print("ADDING SYMBOL: "+ s.join('|') +"\n"+ _s + "\n" +Script.prettyDump(this.currentDoc.toSource())); - print("Walker.addsymbol - add : " + _s); + //print("Walker.addsymbol - add : " + _s); if (appendIt && !lastIdent.length) { // append, and no symbol??? @@ -843,10 +845,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" + + this.ts.lookTok(0).toString() + }; + + } for (var i =0; i < this.currentDoc.tags.length;i++) { @@ -856,28 +864,28 @@ Walker2 = XObject.define( return; } } - print("Walker.addsymbol - chkdup: " + _s); + //print("Walker.addsymbol - chkdup: " + _s); if (typeof(this.symbols[_s]) != 'undefined') { if (this.symbols[_s].comment.hasTags) { // then existing comment doesnt has tags - throw { - name: "ArgumentError", - message:"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); + //print("Walker.addsymbol - ATYPE: " + _s); if (typeof(atype) == "undefined") { atype = 'OBJECT'; //this.currentDoc.getTag('class').length ? 'OBJECT' : 'FUNCTION';; } - print("Walker.addsymbol - add : "); + //print("Walker.addsymbol - add : "); var symbol = new Symbol(_s, [], atype, this.currentDoc); Parser = imports.Parser.Parser; Parser.addSymbol(symbol);