X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=JSDOC%2FWalker2.js;h=b36685d24aaddad53da22d1f3e83a040250ce30f;hp=7b4ca3f19614d7b8a8547a4c9c4565088ec29d91;hb=723ab7d84a75fbc4c78af637e0f2c91b93487364;hpb=442c1512a6bf94e4f3548d3b197a3ecff6382af7 diff --git a/JSDOC/Walker2.js b/JSDOC/Walker2.js index 7b4ca3f..b36685d 100644 --- a/JSDOC/Walker2.js +++ b/JSDOC/Walker2.js @@ -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 @@ -211,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(); } @@ -247,9 +247,9 @@ Walker2 = XObject.define( // a << scope // xxx.applyIf(a, { // a << scope - if (token.type = 'NAME') { + if (token.type == 'NAME') { - //print("TOK(ident)"+ token.toString()); + print("TOK(ident)"+ token.toString()); @@ -421,19 +421,7 @@ Walker2 = XObject.define( } - - - - - - - - - - - - - + @@ -460,7 +448,7 @@ Walker2 = XObject.define( //print("ADD SYM:" + atype + ":" + token.toString() + this.ts.lookTok(1).toString() + this.ts.lookTok(2).toString()); this.addSymbol( - this.ts.lookTok(-1).tokN == Script.TOKdot ? token.data : fixAlias(token.data), + this.ts.lookTok(-1).data == '.' ? token.data : fixAlias(token.data), false, atype); @@ -469,7 +457,11 @@ Walker2 = XObject.define( continue; // dont care about other idents.. - } + } + + //print ("NOT NAME"); + + if (token.type == "STRN") { if (this.currentDoc) { this.addSymbol(token.data.substring(1,token.data.length-1),false,'OBJECT'); @@ -481,12 +473,15 @@ Walker2 = XObject.define( 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(); @@ -504,7 +499,7 @@ Walker2 = XObject.define( (this.ts.lookTok(-2).type == 'NAME') ) { scopeName = this.ts.lookTok(-2).data; - this.ts.balanceN('('); + this.ts.balance('('); token = this.ts.nextTok(); // should be { //print("FOO=FUNCITON() {}" + this.ts.context() + "\n" + token.toString()); @@ -571,7 +566,7 @@ Walker2 = XObject.define( //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()) @@ -594,7 +589,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, ''); @@ -622,7 +617,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; @@ -637,8 +632,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; @@ -740,7 +739,8 @@ Walker2 = XObject.define( addSymbol: function(lastIdent, appendIt, atype ) { - print("addSymbol : " + lastIndent); + //print("Walker.addSymbol : " + lastIdent); + /*if (!this.currentDoc.tags.length) { @@ -757,18 +757,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 ; } @@ -789,7 +789,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 = ''; @@ -816,7 +816,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??? @@ -825,6 +825,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; @@ -837,10 +838,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++) { @@ -850,22 +857,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;