git.iko.soy/rowtype-yoga/purescript-backend-optimizer
on main help sign in
70 lines 2.7 kB history raw
1// @inline export mapU arity=1
2// @inline export filterMapU arity=1
3// @inline export filterU arity=1
4// @inline export fromArray arity=1
5// @inline export toArray arity=1
6// @inline export overArray arity=1
7import * as $runtime from "../runtime.js";
8import * as Data$dArray from "../Data.Array/index.js";
9import * as Data$dList$dTypes from "../Data.List.Types/index.js";
10import * as Data$dMaybe from "../Data.Maybe/index.js";
11import * as Data$dShow from "../Data.Show/index.js";
12import * as Data$dString$dCodeUnits from "../Data.String.CodeUnits/index.js";
13import * as Data$dTuple from "../Data.Tuple/index.js";
14import * as Data$dUnfoldable from "../Data.Unfoldable/index.js";
15const toUnfoldable = /* #__PURE__ */ (() => Data$dUnfoldable.unfoldableArray.unfoldr(xs => {
16 if (xs.tag === "Nil") { return Data$dMaybe.Nothing; }
17 if (xs.tag === "Cons") { return Data$dMaybe.$Maybe("Just", Data$dTuple.$Tuple(xs._1, xs._2)); }
18 $runtime.fail();
19}))();
20const test = x => {
21 const loop = loop$a0$copy => loop$a1$copy => {
22 let loop$a0 = loop$a0$copy, loop$a1 = loop$a1$copy, loop$c = true, loop$r;
23 while (loop$c) {
24 const s2 = loop$a0, acc = loop$a1;
25 const loop$1 = loop$1$a0$copy => {
26 let loop$1$a0 = loop$1$a0$copy, loop$1$c = true, loop$1$r;
27 while (loop$1$c) {
28 const s3 = loop$1$a0;
29 const loop$2 = loop$2$a0$copy => {
30 let loop$2$a0 = loop$2$a0$copy, loop$2$c = true, loop$2$r;
31 while (loop$2$c) {
32 const s3$1 = loop$2$a0;
33 if (s3$1 === x.length) {
34 loop$c = loop$1$c = loop$2$c = false;
35 loop$r = Data$dArray.reverse(toUnfoldable(acc));
36 continue;
37 }
38 const $0 = s3$1 + 1 | 0;
39 const v1 = Data$dString$dCodeUnits.stripPrefix("1")(Data$dShow.showIntImpl(1 + x[s3$1] | 0));
40 if (v1.tag === "Nothing") {
41 loop$2$a0 = $0;
42 continue;
43 }
44 if (v1.tag === "Just") {
45 const $1 = "2" + v1._1;
46 if ($1 !== "wat") {
47 loop$1$c = loop$2$c = false;
48 loop$a0 = $0;
49 loop$a1 = Data$dList$dTypes.$List("Cons", $1 + "1", acc);
50 continue;
51 }
52 loop$2$c = false;
53 loop$1$a0 = $0;
54 continue;
55 }
56 $runtime.fail();
57 }
58 return loop$2$r;
59 };
60 loop$2(s3);
61 }
62 return loop$1$r;
63 };
64 loop$1(s2);
65 }
66 return loop$r;
67 };
68 return loop(0)(Data$dList$dTypes.Nil);
69};
70export {test, toUnfoldable};