//<script type="text/javscript">
-XObject = imports.XObject.XObject;
+const XObject = imports.XObject.XObject;
-console = imports.console.console;
+const console = imports.console.console;
// make sure parent is loaded..
-TokenStream = imports.TokenStream.TokenStream;
+const TokenStream = imports.TokenStream.TokenStream;
+
/**
*
* base class for parsing segments of token array..
*
*/
-Collapse = XObject.define(
+const Collapse = XObject.define(
function (ar)
{
-
Collapse.superclass.constructor.call(this, ar);
this.spaces();
- var ar = this.collapse(this.tokens);
+ ar = this.collapse(this.tokens);
this.tokens = ar;
// Seed.print(TokenStream.toString(ret));
return ret;
}
- console.log(tok.data);
+ // console.log(tok.data);
switch(tok.type) {
case "VOID":
- return; //EOF
+ return ret; //EOF
case "KEYW":
if (add) {
add.shift();
}
- Seed.print("ADD");
- Seed.print(JSON.stringify(add, null,4));
+ //Seed.print("ADD");
+ //Seed.print(JSON.stringify(add, null,4));
tok.items = false;
tok.props = false;
+
+
if (tok.data != '{') {
// paramters or array elements..
tok.items = this.toItems(toks, [',']);
g.push(ar[i]);
continue;
}
+ // var a=..., b =...
+ if ((ar[i].data != ';') && g.length && (g[0].name == "VAR")) {;
+ g.push(ar[i]);
+ continue;
+ }
+
g.push(ar[i]);
ret.push(g);
g = [];
}
}
- // last..
- if (k.length) {
+ // last.. - if g.val.length is 0 then it's a trailing ','...
+ // we should really throw a syntax error in that case..
+ if (k.length && g.val.length) {
ret[k] = g;
}
return ret;
-});
\ No newline at end of file
+});