let ast_tail = slice(a.value.ast, a.value.ast.length - 3);
let new_ast = [ast_tail];
a.value.ast = new_ast;
let ast_tail = slice(a.value.ast, a.value.ast.length - 3);
let new_ast = [ast_tail];
a.value.ast = new_ast;
let fac1Appliee = circumfix((x) => thenDo(thenDo(thenDo(tk.toSome(x), tLParen), tInt), tRParen), "fac1");
let fac1 = (x) => {
let raw = thenDo(thenDo(toSome(x), single), OnceOrMoreDo(fac1Appliee));
let fac1Appliee = circumfix((x) => thenDo(thenDo(thenDo(tk.toSome(x), tLParen), tInt), tRParen), "fac1");
let fac1 = (x) => {
let raw = thenDo(thenDo(toSome(x), single), OnceOrMoreDo(fac1Appliee));
if (raw._tag == "Some") {
var result = raw.value.ast[0];
let applyToken = { text: '%apply', ln: 0, col: 0 };
for (var i = 1; i < raw.value.ast.length; i++) {
result = [applyToken, result, raw.value.ast[i]];
}
if (raw._tag == "Some") {
var result = raw.value.ast[0];
let applyToken = { text: '%apply', ln: 0, col: 0 };
for (var i = 1; i < raw.value.ast.length; i++) {
result = [applyToken, result, raw.value.ast[i]];
}
*/
let expr = orDo(expr1, expr2);
let tokens = tk.tokenize("1");
*/
let expr = orDo(expr1, expr2);
let tokens = tk.tokenize("1");