- case ')': //Token.RP:
- case ']': //Token.RB:
- case '}': //Token.RB:
+ case ")": //Token.RP:
+ case "]": //Token.RB:
+ case "}": //Token.RB:
//print("<< EXIT EXPRESSION");
return;
}
break;
- case 'STRN': // used for object lit detection..
+ case "STRN": // used for object lit detection..
//if (this.mode == 'BUILDING_SYMBOL_TREE')
//print("EXPR-STR:" + JSON.stringify(token, null, 4));
- case 'NAME':
- if (this.mode == 'BUILDING_SYMBOL_TREE') {
+ case "NAME":
+ if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
//print("EXPR-NAME:" + JSON.stringify(token, null, 4));
} else {
//print("EXPR-NAME:" + token.toString());
}
- symbol = token.data;
+ var symbol = token.data;
//print("in NAME = " + token.toString());
//print("in NAME 0: " + this.ts.look(0).toString());
//print("in NAME 2: " + this.ts.lookTok(2).toString());
//skip '.'
break;
}
- if (symbol == 'this') {
+ if (symbol == "this") {
break;
- }
+ }
- if (this.mode == 'PASS2_SYMBOL_TREE') {
+ if (this.mode == ScopeParserMode.PASS2_SYMBOL_TREE) {
- identifier = this.getIdentifier(symbol, scope, token);
+ var identifier = this.getIdentifier(symbol, scope, token);
//println("<B>??</B>");
if (identifier == false) {
// We don't need to declare longer symbols since they won't cause
// any conflict with other munged symbols.
this.globalScope.declareIdentifier(symbol, token);
- this.warn("Found an undeclared symbol: " + symbol + ' (line:' + token.line + ')', true);
+ this.warn("Found an undeclared symbol: " + symbol + " (line:" + token.line + ")", true);
//print("Found an undeclared symbol: " + symbol + ' (line:' + token.line + ')');
//throw "OOPS";
} else {
//println("<B>EID</B>");
- case 'KEYW':
+ case "KEYW":
//if (this.mode == 'BUILDING_SYMBOL_TREE')
// print("EXPR-KEYW:" + JSON.stringify(token, null, 4));
}
- symbol = token.data;
- if (this.mode == 'BUILDING_SYMBOL_TREE') {
+ var symbol = token.data;
+ if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
if (token.name == "EVAL") {
//print(JSON.stringify(token,null,4));
}
//print("<< EXIT EXPRESSION");
this.expN--;
- },
+ }
- parseCatch : function(scope) {
+ void parseCatch(scope) {
- var symbol;
- var token;
-
- var identifier;
//token = getToken(-1);
//assert token.getType() == Token.CATCH;
- token = this.ts.nextTok(1);
+ var token = this.ts.nextTok(1);
token = this.ts.nextTok(1);
//token = this.ts.nextTok();
//assert token.getType() == Token.NAME;
- symbol = token.items[0][0].data;
+ var symbol = token.items[0][0].data;
- if (this.mode == 'BUILDING_SYMBOL_TREE') {
+ if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
// We must declare the exception identifier in the containing function
// scope to avoid errors related to the obfuscation process. No need to
// display a warning if the symbol was already declared here...
scope.declareIdentifier(symbol, token.items[0][0]);
} else {
//?? why inc the refcount?? - that should be set when building the tree???
- identifier = this.getIdentifier(symbol, scope, token.items[0][0]);
+ var identifier = this.getIdentifier(symbol, scope, token.items[0][0]);
identifier.refcount++;
}
//token = this.ts.nextTok();
//assert token.getType() == Token.RP; // )
- },
+ }
- parseFunctionDeclaration : function(scope)
+ void parseFunctionDeclaration (Scope scope)
{
//print("PARSE FUNCTION");
- var symbol;
- var token;
var fnScope = false;
- var identifier;
+
var b4braceNesting = this.braceNesting + 0;
//this.logR("<B>PARSING FUNCTION</B>");
- token = this.ts.nextTok();
+ var token = this.ts.nextTok();
if (token.type == "NAME") {
- if (this.mode == 'BUILDING_SYMBOL_TREE') {
+ if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
// Get the name of the function and declare it in the current scope.
symbol = token.data;
if (scope.getIdentifier(symbol,token) != false) {
}
-
+ Scope fnScope;
//assert token.getType() == Token.LP;
- if (this.mode == 'BUILDING_SYMBOL_TREE') {
+ if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
fnScope = new Scope(1, scope, token.n, '', token);
//println("STORING SCOPE" + this.ts.cursor);
// print('FUNC-PARSE:' + JSON.stringify(token,null,4));
// Parse function arguments.
var args = token.items;
- for (var argpos =0; argpos < args.length; argpos++) {
+ for (var argpos =0; argpos < args.size; argpos++) {
- token = args[argpos][0];
+ token = args.get(argpos).get(0);
//print ("FUNC ARGS: " + token.toString())
//assert token.getType() == Token.NAME ||
// token.getType() == Token.COMMA;
- if (token.type == 'NAME' && this.mode == 'BUILDING_SYMBOL_TREE') {
+ if (token.type == "NAME" && this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
symbol = token.data;
identifier = fnScope.declareIdentifier(symbol,token);
if (symbol == "$super" && argpos == 0) {