//<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 into first element.
* c) items = , seperation within the above..
*
- *
+ * usage: x = new Collapse(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;
}
tok.prefix = '';
if (pref.length) {
- Roo.each(pref, function(e) {
+ pref.forEach( function(e) {
if (!e) {
return;
}
// Seed.print(TokenStream.toString(ret));
return ret;
}
- // console.log(tok.data);
+ // console.log(tok.data);
switch(tok.type) {
-
+ case "VOID":
+ return ret; //EOF
+
case "KEYW":
case "TOKN":
var start = st.cursor;
st.next(1);
- var add = st.balance(tok.name);
+ var add = st.balance(tok.data);
if (!add) {
console.dump(tok);
console.dump(start + '...' + st.cursor);
if (add) {
add.shift();
}
- //Seed.print(TokenStream.toString(aa));
+ //Seed.print("ADD");
+ //Seed.print(JSON.stringify(add, null,4));
+
var toks = add ? this.collapse(add) : [];
tok.items = false;
tok.props = false;
+
+
if (tok.data != '{') {
// paramters or array elements..
tok.items = this.toItems(toks, [',']);
Seed.print("OOPS");
continue;
default :
- Seed.print("OOPS");
+ Seed.print("OOPS" + tok.type);
continue;
}
}
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
+});