// print('SCOPE-PROPS:' + JSON.stringify(token.props[prop],null,4));
if (val.vals.get(0).data == "function") {
// parse a function..
- this.ts = new TokenStream(token.props[prop].val);
+ this.ts = new TokenStream(val.vals);
this.ts.nextTok();
this.parseFunctionDeclaration(scope);
}
// key value..
- this.ts = new TokenStream(token.props[prop].val);
+ this.ts = new TokenStream(val.vals);
this.parseExpression(scope);
}
// ( ... ) or { .... } not object literals..
- var _this = this;
- for (var xx =0; xx < token.items.length; xx++) {
- expr = token.items[xx];
+
+ for (var xx =0; xx < token.items.size; xx++) {
+ expr = token.items.get(xx);
//token.items.forEach(function(expr) {
//print(expr.toString());
- _this.ts = new TokenStream(expr);
+ this.ts = new TokenStream(expr);
//if (curTS.data == '(') {
- _this.parseScope(scope)
+ this.parseScope(scope);
//} else {
// _this.parseExpression(scope)
//}
case "KEYW.WITH":
//print('SCOPE-WITH:' + token.toString());
//println("<i>"+token.data+"</i>");
- if (this.mode == "BUILDING_SYMBOL_TREE") {
+ if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
// Inside a 'with' block, it is impossible to figure out
// statically whether a symbol is a local variable or an
// object member. As a consequence, the only thing we can
// print('SCOPE-STRING:' + token.toString());
//println("<i>"+token.data+"</i>");
- if (this.ts.lookTok(-1).data == '{' && this.ts.lookTok(1).data == ':') {
+ if (this.ts.lookTok(-1).data == "{" && this.ts.lookTok(1).data == ":") {
// then we are in an object lit.. -> we need to flag the brace as such...
- isObjectLitAr.pop();
- isObjectLitAr.push(true);
+ isObjectLitAr.remove_at(isObjectLitAr.size-1);
+ isObjectLitAr.add(true);
//print(">>>>>> OBJLIT REPUSH(true)");
}
- isInObjectLitAr = isObjectLitAr[isObjectLitAr.length-1];
+ isInObjectLitAr = isObjectLitAr.get(isObjectLitAr.size-1);
- if (isInObjectLitAr && this.ts.lookTok(1).data == ':' &&
- ( this.ts.lookTok(-1).data == '{' || this.ts.lookTok(-1).data == ':' )) {
+ if (isInObjectLitAr && this.ts.lookTok(1).data == ":" &&
+ ( this.ts.lookTok(-1).data == "{" || this.ts.lookTok(-1).data == ":" )) {
// see if we can replace..
// remove the quotes..
// should do a bit more checking!!!! (what about wierd char's in the string..
var str = token.data.substring(1,token.data.length-1);
- if (/^[a-z_]+$/i.test(str) && ScopeParser.idents.indexOf(str) < 0) {
+
+ if (Regex.match_simple ("^[a-z_]+$", str) && this.idents.index_of(str) < 0) {
token.outData = str;
}
//print("SYMBOL: " + token.toString());
symbol = token.data;
- if (symbol == 'this') {
+ if (symbol == "this") {
break;
}
- if (this.mode == 'PASS2_SYMBOL_TREE') {
+
+ if (this.mode == ScopeParserMode.PASS2_SYMBOL_TREE) {
//println("GOT IDENT: -2 : " + this.ts.lookT(-2).toString() + " <BR> ..... -1 : " + this.ts.lookT(-1).toString() + " <BR> ");
// 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);
}
//println("GOT IDENT IGNORE(3): <B>" + symbol + "</B><BR/>");