//<Script type="text/javascript">
-Scope = imports.Scope.Scope;
-TokenStream = imports.TokenStream.TokenStream;
+const Scope = imports.Scope.Scope;
+const TokenStream = imports.TokenStream.TokenStream;
/**
* Scope stuff
*
*
*/
-ScopeParser = function(ts) {
+const ScopeParser = function(ts) {
this.ts = ts; // {TokenStream}
this.warnings = [];
this.indexedg = {};
this.parseScope(this.globalScope);
- this.globalScope.dump();
+ //this.globalScope.dump();
this.globalScope.munge();
+ this.globalScope.dump();
+
},
//this.dumpToken(token , this.scopes, this.braceNesting);
//print('SCOPE:' + token.toString());
//this.log(token.data);
- if (token.type == 'NAME') {
+ //if (token.type == 'NAME') {
// print('*' + token.data);
- }
+ //}
switch(token.type + '.' + token.name) {
case "KEYW.VAR":
case "KEYW.CONST": // not really relivant as it's only mozzy that does this.
while (true) {
token = this.ts.nextTok();
//!this.debug|| print( token.toString());
- //print('SCOPE-VAR-VAL:' + JSON.stringify(token, null, 4));
+ // print('SCOPE-VAR-VAL:' + JSON.stringify(token, null, 4));
if (!token) { // can return false at EOF!
break;
}
//this.logR("parseScope DONE : <B>ParseExpression</B> - tok is:" + this.ts.lookT(0).toString());
token = this.ts.lookTok(1);
- !this.debug|| print("AFTER EXP: " + token.toString());
+ //!this.debug||
+ // print("AFTER EXP: " + token.toString());
if (token.data == ';') {
break;
}
var curTS = this.ts;
if (token.props) {
+ // { a : ... , c : .... }
+
for (var prop in token.props) {
break;
}
+ // ( ... ) or { .... } not object literals..
var _this = this;
- token.items.forEach(function(expr) {
- _this.ts = new TokenStream(expr);
- _this.parseExpression(scope)
- });
+ for (var xx =0; xx < token.items.length; xx++) {
+ expr = token.items[xx];
+ //token.items.forEach(function(expr) {
+ //print(expr.toString());
+ _this.ts = new TokenStream(expr);
+ //if (curTS.data == '(') {
+ _this.parseScope(scope)
+ //} else {
+ // _this.parseExpression(scope)
+ //}
+
+ }
this.ts = curTS;
//print("NOT PROPS"); Seed.quit();
//print(scopeIndent + ">> ENTER EXPRESSION" + this.expN);
- while (token = this.ts.nextTok()) {
+ while ((token = this.ts.nextTok())) {
*/
//this.dumpToken(token, this.scopes, this.braceNesting );
- //print('EXPR' + token.toString());
+ //print('EXPR' + token.toString());
//println("<i>"+token.data+"</i>");
break;
}
-
-
+
symbol = token.data;
if (this.mode == 'BUILDING_SYMBOL_TREE') {
var symbol;
var token;
- var scope;
+
var identifier;
//token = getToken(-1);
//assert token.getType() == Token.CATCH;
- token = this.ts.nextTok();
+ token = this.ts.nextTok(1);
+ token = this.ts.nextTok(1);
+
- //print(JSON.stringify(token,null,4));
+ //print(JSON.stringify(this.ts,null,4));
//assert token.getType() == Token.LP; (
//token = this.ts.nextTok();
//assert token.getType() == Token.NAME;
identifier.refcount++;
}
- token = this.ts.nextTok();
+ //token = this.ts.nextTok();
//assert token.getType() == Token.RP; // )
},
// return function() {....
while (token.data != "(") {
- print(token.toString());
+ //print(token.toString());
token = this.ts.nextTok();
-
-
-
+
}
}
return false;
}
-};
\ No newline at end of file
+};