//altrnative tokenizer/parser to RoyalScript
//time test
function RoyalParse(code){
var tokens = code.split(/(\()|(\))|(,)|( )|\n|\t/);
var repdict = {
"(":"[",
")":"]",
"undefined":''
};
for (var i=0;i<tokens.length;i++){
if(tokens[i] in repdict) tokens[i] = repdict[tokens[i]];
else if(tokens[i+1] === "("){
tokens[i] = '"' + tokens[i] + '",';
}
}
return JSON.parse('[' + tokens.join("") + ']');
}
var start = new Date().getTime()/1000;
var d = RoyalParse('a(4, 5, 6), b(4, c(4, "true")), print("fooo fff"),b(),b(),b(),b(),b(),b(),b(),b(f(g(a(4, 5, y())), 4)),b(),b(d(r())),b(c())');
console.log((new Date().getTime()/1000) - start);
console.log(JSON.stringify(d, null, 3));
/*0.0009999275207519531
[
"a",
[
4,
5,
6
],
"b",
[
4,
"c",
[
4,
"true"
]
],
"print",
[
"fooo fff"
],
"b",
[],
"b",
[],
"b",
[],
"b",
[],
"b",
[],
"b",
[],
"b",
[],
"b",
[
"f",
[
"g",
[
"a",
[
4,
5,
"y",
[]
]
],
4
]
],
"b",
[],
"b",
[
"d",
[
"r",
[]
]
],
"b",
[
"c",
[]
]
]*/