// 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 (token.name == 'VAR' &&
this.ts.lookTok(1).type == 'NAME' &&
- this.ts.lookTok(2).data == '-' &&
+ this.ts.lookTok(2).data == '=' &&
this.ts.lookTok(3).type == 'NAME' &&
this.ts.lookTok(4).data == ';'
}
-
+ if ((token.data == 'eval') || /\.eval$/.test(token.data)) {
+ this.currentDoc = false;
+ continue;
+ }
// extends scoping *** not sure if the can be x = Roo.apply(....)
// xxx.extends(a,b, {
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' &&
}
-
-
-
-
-
-
-
-
-
-
-
-
-
+
// eval can be prefixed with a hint hider for the compresser..
- if ((token.data == 'eval') || /\.eval$/.test(token.data)) {
- this.currentDoc = false;
- continue;
- }
+
if (this.currentDoc) {
//print(token.toString());
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';
}
false,
atype);
+ this.currentDoc = false;
+
+
}
//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');
// 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.dump(this.ts.cursor-20, this.ts.cursor+20));
- 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();
(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$');
}
- print(this.ts.dump(this.ts.cursor-20, this.ts.cursor+20));
- throw "dont know how to handle function syntax??";
+ throw {
+ name: "ArgumentError",
+ message: "dont know how to handle function syntax??\n" +
+ token.toString()
+ };
+
continue;
if (
(this.ts.lookTok(-1).data == '=') &&
(this.ts.lookTok(-2).type == 'NAME') &&
- (this.ts.lookTok(-3).nane != 'VAR')
+ (this.ts.lookTok(-3).name != 'VAR')
) {
scopeName = this.ts.look(-2).data;
+ //print(scopeName);
scopeName = fixAlias(scopeName);
+
+ //print(this.scopes.length);
var fnScope = new Scope(this.braceNesting, scope, token.n,
'$this$='+scopeName + '|'+scopeName
);
+
this.indexedScopes[this.ts.cursor] = fnScope;
scope = fnScope;
+ // push the same scope onto the stack..
this.scopesIn(fnScope);
+ //this.scopesIn(this.scopes[this.scopes.length-1]);
locBraceNest++;
continue;
}
- if (token.data == '{') {
+ if (token.data == '}') {
if (this.currentDoc) {
addSymbol: function(lastIdent, appendIt, atype )
{
//print("Walker.addSymbol : " + lastIdent);
+ // print("Walker.curdoc: " + JSON.stringify(this.currentDoc, null,4));
/*if (!this.currentDoc.tags.length) {
}
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 = '';
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()));
_s = _s.replace(/\.prototype.*$/, '');
if (typeof(this.symbols[_s]) == 'undefined') {
//print("Symbol:" + _s);
- //print(this.currentDoc.src);
+ //print(this.currentDoc.src);
- throw "Trying to append symbol, but no doc available";
+ //throw {
+ // name: "ArgumentError",
+ // message: "Trying to append symbol '" + _s + "', but no doc available\n" +
+ // this.ts.lookTok(0).toString()
+ //};
+ this.currentDoc = false;
+ return;
+
}
for (var i =0; i < this.currentDoc.tags.length;i++) {
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..