git.iko.soy/rowtype-yoga/psfp
on 8e9130c help sign in
136 lines 4.9 kB history raw
1// Generated by purs version 0.13.6
2"use strict";
3var $foreign = require("./foreign.js");
4var Data_Array = require("../Data.Array/index.js");
5var Data_Bounded = require("../Data.Bounded/index.js");
6var Data_Enum = require("../Data.Enum/index.js");
7var Data_Eq = require("../Data.Eq/index.js");
8var Data_EuclideanRing = require("../Data.EuclideanRing/index.js");
9var Data_Functor = require("../Data.Functor/index.js");
10var Data_Maybe = require("../Data.Maybe/index.js");
11var Data_Ord = require("../Data.Ord/index.js");
12var Data_String_CodeUnits = require("../Data.String.CodeUnits/index.js");
13var Data_String_Unsafe = require("../Data.String.Unsafe/index.js");
14var Data_Tuple = require("../Data.Tuple/index.js");
15var Data_Unfoldable = require("../Data.Unfoldable/index.js");
16var CodePoint = function (x) {
17 return x;
18};
19var unsurrogate = function (lead) {
20 return function (trail) {
21 return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;
22 };
23};
24var isTrail = function (cu) {
25 return 56320 <= cu && cu <= 57343;
26};
27var isLead = function (cu) {
28 return 55296 <= cu && cu <= 56319;
29};
30var uncons = function (s) {
31 var v = Data_String_CodeUnits.length(s);
32 if (v === 0) {
33 return Data_Maybe.Nothing.value;
34 };
35 if (v === 1) {
36 return new Data_Maybe.Just({
37 head: Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s)),
38 tail: ""
39 });
40 };
41 var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));
42 var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));
43 var $264 = isLead(cu0) && isTrail(cu1);
44 if ($264) {
45 return new Data_Maybe.Just({
46 head: unsurrogate(cu0)(cu1),
47 tail: Data_String_CodeUnits.drop(2)(s)
48 });
49 };
50 return new Data_Maybe.Just({
51 head: cu0,
52 tail: Data_String_CodeUnits.drop(1)(s)
53 });
54};
55var unconsButWithTuple = function (s) {
56 return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {
57 return new Data_Tuple.Tuple(v.head, v.tail);
58 })(uncons(s));
59};
60var toCodePointArrayFallback = function (s) {
61 return Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray)(unconsButWithTuple)(s);
62};
63var unsafeCodePointAt0Fallback = function (s) {
64 var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));
65 var $268 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;
66 if ($268) {
67 var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));
68 var $269 = isTrail(cu1);
69 if ($269) {
70 return unsurrogate(cu0)(cu1);
71 };
72 return cu0;
73 };
74 return cu0;
75};
76var unsafeCodePointAt0 = $foreign["_unsafeCodePointAt0"](unsafeCodePointAt0Fallback);
77var toCodePointArray = $foreign["_toCodePointArray"](toCodePointArrayFallback)(unsafeCodePointAt0);
78var length = function ($281) {
79 return Data_Array.length(toCodePointArray($281));
80};
81var fromCharCode = (function () {
82 var $282 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));
83 return function ($283) {
84 return Data_String_CodeUnits.singleton($282($283));
85 };
86})();
87var singletonFallback = function (v) {
88 if (v <= 65535) {
89 return fromCharCode(v);
90 };
91 var lead = Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 55296 | 0;
92 var trail = Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 56320 | 0;
93 return fromCharCode(lead) + fromCharCode(trail);
94};
95var singleton = $foreign["_singleton"](singletonFallback);
96var takeFallback = function (n) {
97 return function (v) {
98 if (n < 1) {
99 return "";
100 };
101 var v1 = uncons(v);
102 if (v1 instanceof Data_Maybe.Just) {
103 return singleton(v1.value0.head) + takeFallback(n - 1 | 0)(v1.value0.tail);
104 };
105 return v;
106 };
107};
108var take = $foreign["_take"](takeFallback);
109var eqCodePoint = new Data_Eq.Eq(function (x) {
110 return function (y) {
111 return x === y;
112 };
113});
114var ordCodePoint = new Data_Ord.Ord(function ($dollar__unused) {
115 return eqCodePoint;
116}, function (x) {
117 return function (y) {
118 return Data_Ord.compare(Data_Ord.ordInt)(x)(y);
119 };
120});
121var codePointFromChar = (function () {
122 var $284 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar);
123 return function ($285) {
124 return CodePoint($284($285));
125 };
126})();
127module.exports = {
128 codePointFromChar: codePointFromChar,
129 singleton: singleton,
130 toCodePointArray: toCodePointArray,
131 uncons: uncons,
132 length: length,
133 take: take,
134 eqCodePoint: eqCodePoint,
135 ordCodePoint: ordCodePoint
136};