X-Git-Url: https://git.kianting.info/?a=blobdiff_plain;f=src%2Findex.ts;h=46c4a7205501d288c574df83980d0e910e4bfd63;hb=4fd4c8a4b69464bf1ac74af920175308656e6f6b;hp=3bf281fddc0d462beb6ab89500def42091181a13;hpb=d3447bfe8439ab0ecf7cc6cb51ddb065abeca47d;p=clo diff --git a/src/index.ts b/src/index.ts index 3bf281f..46c4a72 100644 --- a/src/index.ts +++ b/src/index.ts @@ -250,13 +250,19 @@ let midfix = (f : Function, signal? : string) => (x : TokenMatcheePair)=>{ } let circumfix = (f : Function, signal? : string) => (x : TokenMatcheePair)=>{ - var a = f(x); + var a : tk.Maybe = f(x); if (a._tag == "Some"){ console.log("$$$"+repr(a.value.ast)); let inner = a.value.ast[a.value.ast.length-2]; var ast_middle : tkTree[]; + // the list should not be (%list) (%apply) (%lambda) etc. if (Array.isArray(inner)){ - ast_middle = inner; + if ('text' in inner[0] && (inner[0].text.slice(0,1) != "%")){ + ast_middle = inner; + } + else{ + ast_middle = [inner]; + } } else{ ast_middle = [inner]; @@ -442,7 +448,7 @@ let expr = orDo(expr1, expr2); let tokens = tk.tokenize("1"); let tokens2 = tk.tokenize("1(2)"); let tokens3 = tk.tokenize("1(2)(3)"); -let tokens4 = tk.tokenize("2()(4)"); +let tokens4 = tk.tokenize("2()(4)(5,6)(7,8,9,10)"); //let tokens = tk.tokenize("(4-(3/4))"); //tk.tokenize(argv[2]);