time-to-botec/squiggle/node_modules/@rescript/std/lib/js/stream.js
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

495 lines
10 KiB
JavaScript

'use strict';
var List = require("./list.js");
var Curry = require("./curry.js");
var Caml_bytes = require("./caml_bytes.js");
var Caml_option = require("./caml_option.js");
var Caml_string = require("./caml_string.js");
var Caml_exceptions = require("./caml_exceptions.js");
var CamlinternalLazy = require("./camlinternalLazy.js");
var Failure = /* @__PURE__ */Caml_exceptions.create("Stream.Failure");
var $$Error = /* @__PURE__ */Caml_exceptions.create("Stream.Error");
function count(param) {
if (param !== undefined) {
return param.count;
} else {
return 0;
}
}
function data(param) {
if (param !== undefined) {
return param.data;
} else {
return /* Sempty */0;
}
}
function get_data(count, _d) {
while(true) {
var d = _d;
if (typeof d === "number") {
return d;
}
switch (d.TAG | 0) {
case /* Scons */0 :
return d;
case /* Sapp */1 :
var d2 = d._1;
var match = get_data(count, d._0);
if (typeof match === "number") {
_d = d2;
continue ;
}
if (match.TAG === /* Scons */0) {
return {
TAG: /* Scons */0,
_0: match._0,
_1: {
TAG: /* Sapp */1,
_0: match._1,
_1: d2
}
};
}
throw {
RE_EXN_ID: "Assert_failure",
_1: [
"stream.ml",
48,
12
],
Error: new Error()
};
case /* Slazy */2 :
_d = CamlinternalLazy.force(d._0);
continue ;
case /* Sgen */3 :
var g = d._0;
var match$1 = g.curr;
if (match$1 !== undefined) {
var a = Caml_option.valFromOption(match$1);
if (a !== undefined) {
g.curr = undefined;
return {
TAG: /* Scons */0,
_0: Caml_option.valFromOption(a),
_1: d
};
} else {
return /* Sempty */0;
}
}
var a$1 = Curry._1(g.func, count);
if (a$1 !== undefined) {
return {
TAG: /* Scons */0,
_0: Caml_option.valFromOption(a$1),
_1: d
};
} else {
g.curr = Caml_option.some(undefined);
return /* Sempty */0;
}
}
};
}
function peek_data(s) {
while(true) {
var f = s.data;
if (typeof f === "number") {
return ;
}
switch (f.TAG | 0) {
case /* Scons */0 :
return Caml_option.some(f._0);
case /* Sapp */1 :
var d = get_data(s.count, s.data);
if (typeof d === "number") {
return ;
}
if (d.TAG === /* Scons */0) {
s.data = d;
return Caml_option.some(d._0);
}
throw {
RE_EXN_ID: "Assert_failure",
_1: [
"stream.ml",
71,
12
],
Error: new Error()
};
case /* Slazy */2 :
s.data = CamlinternalLazy.force(f._0);
continue ;
case /* Sgen */3 :
var g = f._0;
var a = g.curr;
if (a !== undefined) {
return Caml_option.valFromOption(a);
}
var x = Curry._1(g.func, s.count);
g.curr = Caml_option.some(x);
return x;
}
};
}
function peek(s) {
if (s !== undefined) {
return peek_data(s);
}
}
function junk_data(s) {
while(true) {
var g = s.data;
if (typeof g !== "number") {
switch (g.TAG | 0) {
case /* Scons */0 :
s.count = s.count + 1 | 0;
s.data = g._1;
return ;
case /* Sgen */3 :
var g$1 = g._0;
var match = g$1.curr;
if (match !== undefined) {
s.count = s.count + 1 | 0;
g$1.curr = undefined;
return ;
}
break;
default:
}
}
var match$1 = peek_data(s);
if (match$1 === undefined) {
return ;
}
continue ;
};
}
function junk(data) {
if (data !== undefined) {
return junk_data(data);
}
}
function nget_data(n, s) {
if (n <= 0) {
return [
/* [] */0,
s.data,
0
];
}
var a = peek_data(s);
if (a === undefined) {
return [
/* [] */0,
s.data,
0
];
}
var a$1 = Caml_option.valFromOption(a);
junk_data(s);
var match = nget_data(n - 1 | 0, s);
return [
{
hd: a$1,
tl: match[0]
},
{
TAG: /* Scons */0,
_0: a$1,
_1: match[1]
},
match[2] + 1 | 0
];
}
function npeek(n, d) {
if (d !== undefined) {
var match = nget_data(n, d);
d.count = d.count - match[2] | 0;
d.data = match[1];
return match[0];
} else {
return /* [] */0;
}
}
function next(s) {
var a = peek(s);
if (a !== undefined) {
junk(s);
return Caml_option.valFromOption(a);
}
throw {
RE_EXN_ID: Failure,
Error: new Error()
};
}
function empty(s) {
var match = peek(s);
if (match === undefined) {
return ;
}
throw {
RE_EXN_ID: Failure,
Error: new Error()
};
}
function iter(f, strm) {
var _param;
while(true) {
var a = peek(strm);
if (a === undefined) {
return ;
}
junk(strm);
Curry._1(f, Caml_option.valFromOption(a));
_param = undefined;
continue ;
};
}
function from(f) {
return {
count: 0,
data: {
TAG: /* Sgen */3,
_0: {
curr: undefined,
func: f
}
}
};
}
function of_list(l) {
return {
count: 0,
data: List.fold_right((function (x, l) {
return {
TAG: /* Scons */0,
_0: x,
_1: l
};
}), l, /* Sempty */0)
};
}
function of_string(s) {
var count = {
contents: 0
};
return from(function (param) {
var c = count.contents;
if (c < s.length) {
count.contents = count.contents + 1 | 0;
return Caml_string.get(s, c);
}
});
}
function of_bytes(s) {
var count = {
contents: 0
};
return from(function (param) {
var c = count.contents;
if (c < s.length) {
count.contents = count.contents + 1 | 0;
return Caml_bytes.get(s, c);
}
});
}
function iapp(i, s) {
return {
count: 0,
data: {
TAG: /* Sapp */1,
_0: data(i),
_1: data(s)
}
};
}
function icons(i, s) {
return {
count: 0,
data: {
TAG: /* Scons */0,
_0: i,
_1: data(s)
}
};
}
function ising(i) {
return {
count: 0,
data: {
TAG: /* Scons */0,
_0: i,
_1: /* Sempty */0
}
};
}
function lapp(f, s) {
return {
count: 0,
data: {
TAG: /* Slazy */2,
_0: {
LAZY_DONE: false,
VAL: (function () {
return {
TAG: /* Sapp */1,
_0: data(Curry._1(f, undefined)),
_1: data(s)
};
})
}
}
};
}
function lcons(f, s) {
return {
count: 0,
data: {
TAG: /* Slazy */2,
_0: {
LAZY_DONE: false,
VAL: (function () {
return {
TAG: /* Scons */0,
_0: Curry._1(f, undefined),
_1: data(s)
};
})
}
}
};
}
function lsing(f) {
return {
count: 0,
data: {
TAG: /* Slazy */2,
_0: {
LAZY_DONE: false,
VAL: (function () {
return {
TAG: /* Scons */0,
_0: Curry._1(f, undefined),
_1: /* Sempty */0
};
})
}
}
};
}
function slazy(f) {
return {
count: 0,
data: {
TAG: /* Slazy */2,
_0: {
LAZY_DONE: false,
VAL: (function () {
return data(Curry._1(f, undefined));
})
}
}
};
}
function dump_data(f, param) {
if (typeof param === "number") {
console.log("Sempty");
return ;
}
switch (param.TAG | 0) {
case /* Scons */0 :
console.log("Scons (");
Curry._1(f, param._0);
console.log(", ");
dump_data(f, param._1);
console.log(")");
return ;
case /* Sapp */1 :
console.log("Sapp (");
dump_data(f, param._0);
console.log(", ");
dump_data(f, param._1);
console.log(")");
return ;
case /* Slazy */2 :
console.log("Slazy");
return ;
case /* Sgen */3 :
console.log("Sgen");
return ;
}
}
function dump(f, s) {
console.log("{count = ");
var i = count(s);
console.log(String(i));
console.log("; data = ");
dump_data(f, data(s));
console.log("}");
console.log("");
}
var sempty;
exports.Failure = Failure;
exports.$$Error = $$Error;
exports.from = from;
exports.of_list = of_list;
exports.of_string = of_string;
exports.of_bytes = of_bytes;
exports.iter = iter;
exports.next = next;
exports.empty = empty;
exports.peek = peek;
exports.junk = junk;
exports.count = count;
exports.npeek = npeek;
exports.iapp = iapp;
exports.icons = icons;
exports.ising = ising;
exports.lapp = lapp;
exports.lcons = lcons;
exports.lsing = lsing;
exports.sempty = sempty;
exports.slazy = slazy;
exports.dump = dump;
/* No side effect */