Scope = imports.Scope.Scope;
DocComment = imports.DocComment.DocComment;
Symbol = imports.Symbol.Symbol;
-Parser = imports.Parser.Parser;
+
/**
* Scope stuff
//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')) {
// a << scope
// xxx.applyIf(a, {
// a << scope
- if (token.type = 'NAME') {
+ if (token.type == 'NAME') {
//print("TOK(ident)"+ token.toString());
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');
if (token.name == 'FUNCTION') {
-
+ print("GOT FUNCTION");
// see if we have an unconsumed doc...
if (this.currentDoc) {
(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());
(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())
(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, '');
// (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;
addSymbol: function(lastIdent, appendIt, atype )
{
- print("addSymbol : " + lastIndent);
+ print("Walker.addSymbol : " + lastIdent);
+
/*if (!this.currentDoc.tags.length) {
return;
}
- var token = this.ts.cur();
+ var token = this.ts.lookTok(0);
if (typeof(appendIt) == 'undefined') {
appendIt= false;
}
/// 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???
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;
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
+ };
+
}
// 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;