case "PUNC.LEFT_CURLY": // {
case "PUNC.LEFT_PAREN": // (
+ case "PUNC.LEFT_BRACE": // [
//print('SCOPE-CURLY/PAREN:' + token.toString());
//println("<i>"+token.data+"</i>");
var curTS = this.ts;
// key value..
this.ts = new TokenStream(token.props[prop].val);
- this.parseScope(false);
+ this.parseExpression();
}
this.ts = curTS;
if (symbol == "eval") {
// look back one and see if we can find a comment!!!
- if (this.ts.look(-1).type == "COMM") {
+ //if (this.ts.look(-1).type == "COMM") {
+ if (token.prefix && token.prefix.match('/eval/')) {
// look for eval:var:noreplace\n
var _t = this;
- this.ts.look(-1).data.replace(/eval:var:([a-z_]+)/ig, function(m, a) {
+ token.prefix.replace(/eval:var:([a-z_]+)/ig, function(m, a) {
var hi = _t.getIdentifier(a, thisScope, token);
// println("PROTECT "+a+" from munge" + (hi ? "FOUND" : "MISSING"));
case '{': //Token.LC:
case '[': //Token.LB:
//print('SCOPE-CURLY/PAREN/BRACE:' + token.toString());
+ // print('SCOPE-CURLY/PAREN/BRACE:' + JSON.stringify(token, null,4));
//println("<i>"+token.data+"</i>");
var curTS = this.ts;
if (token.props) {
for (var prop in token.props) {
- if (token.props[prop].val.data == 'function') {
+ if (token.props[prop].val[0].data == 'function') {
// parse a function..
- this.parseFunctProp(token.props[prop]);
+ this.ts = new TokenStream(token.props[prop].val);
+ this.ts.nextTok();
+ this.parseFunctionDeclaration();
continue;
}
// key value..
this.ts = new TokenStream(token.props[prop].val);
- this.parseScope(false);
+ this.parseExpression();
}
this.ts = curTS;
if (this.mode == 'BUILDING_SYMBOL_TREE') {
if (symbol == "eval") {
- if (this.ts.look(-1).type == 'COMM') {
+ if (token.prefix && token.prefix.match('/eval/')) {
// look for eval:var:noreplace\n
var _t = this;
- this.ts.look(-1).data.replace(/eval:var:([a-z]+)/ig, function(m, a) {
+ token.prefix.replace(/eval:var:([a-z]+)/ig, function(m, a) {
var hi = _t.getIdentifier(a, currentScope, token);
//println("PROTECT "+a+" from munge" + (hi ? "FOUND" : "MISSING"));
if (hi) {
//assert token.getType() == Token.LP;
if (this.mode == 'BUILDING_SYMBOL_TREE') {
- fnScope = new Scope(1, currentScope, token.n, '');
+ fnScope = new Scope(1, currentScope, token.n, '', token);
//println("STORING SCOPE" + this.ts.cursor);