forked from mattbierner/apep
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js.map
1 lines (1 loc) · 21.7 KB
/
index.js.map
1
{"version":3,"sources":["index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n APEP\n \n Dada engine inspired library for random text generation.\n*/\n\"use strict\";\nconst walker = require('walker-sample');\n\nconst arrayMap = Function.prototype.call.bind(Array.prototype.map);\nconst arrayFoldr = (f, z, a) => Array.prototype.reduceRight.call(a, f, z);\n\nconst add = (p, c) => p + c;\n\nconst id = x => x;\n\nconst EOF = _ => null;\n\nconst defaultRandom = Math.random;\n\n/**\n Value state pair\n*/\nconst Pair = (x, s) => ({ x: x, s: s });\n\n/**\n Internal state object.\n*/\nconst State = (random, vars, ud) => ({\n 'random': random,\n 'vars': vars,\n 'ud': ud\n});\n\nState.empty = State(defaultRandom, {}, null);\n\nState.setUd = (s, ud) =>\n State(s.random, s.vars, ud);\n\nState.setVars = (s, vars) =>\n State(s.random, vars, s.ud);\n\nState.setRandom = (s, random) =>\n State(random, s.vars, s.ud);\n\nState.getVar = (s, name, def) =>\n typeof s.vars[name] === 'undefined' ? def : s.vars[name];\n\nState.setVar = (s, name, value) => {\n const newVars = Object.create(s.vars);\n newVars[name] = value;\n return State.setVars(s, newVars);\n};\n\nconst Yield = (first, rest) => ({\n first: first,\n rest: rest\n});\n\n/**\n Generator container class.\n*/\nconst Generador = function(impl) {\n this._apep_generadorImpl = impl;\n};\n\n/**\n Run a given generator.\n*/\nconst execute = (p, s, k) =>\n p._apep_generadorImpl(s, k);\n\n/**\n Declare a generator for self reference or late bindings.\n \n @param def Function that takes a reference to generator being defined and\n returns the generator's definition.\n \n Anonymous self reference:\n \n pep.declare((self) =>\n pep.seq(m, self));\n \n Use of forward declarations:\n \n // Use `m` before it is declared or defined.\n const ms = pep.declare(() =>\n pep.seq(m, self));\n \n const m = pep.lit('n');\n \n Later declaration: \n \n // Declare that the some generator `ms` will exist.\n let ms = pep.declare(() => ms);\n \n // Use `ms` in any expression.\n const p = pep.seq('a', ms);\n \n ...\n \n // Actually define `ms` sometime later.\n ms = pep.str('abc');\n\n Also can be used to introduce simple, scoped state:\n \n const counter = pep.declare(() => {\n // declare some variables local to this block.\n let sum = 0;\n\n return pep.seq(\n pep.seq(pep.str(1), pep.str(2), pep.str(3))\n .map(x => {\n // Update the state in an expression.\n sum += i;\n return x;\n }),\n // and use the state sometime later.\n // Declare is used to make sure the current value of `i` is\n // always returned.\n pep.declare(() => pep.lit(i)));\n });\n \n For performance reasons, use declare around the smallest possible generator\n since declare evaluates it's body every time the generator is invoked. \n*/\nexport const declare = (def) => {\n let self;\n return self = new Generador((s, k) =>\n execute(def(self), s, k));\n};\n \n/* Value Generators\n ******************************************************************************/\n/**\n Generate a literal value without any transformations applied.\n*/\nexport const lit = (x) =>\n new Generador((s, k) =>\n Yield(Pair(x, s), k));\n \n/**\n Empty value generator.\n*/\nexport const empty = new Generador((s, k) => k(s));\n\n/**\n Generate a literal string value.\n \n Attempts to convert the input value to a string.\n*/\nexport const str = (x) => lit('' + x);\n\n/**\n Ensure value is inside a generator.\n \n Converts arrays into sequences and wraps any other values that are not\n generators in `str`.\n*/\nconst wrap = (x) => {\n if (typeof x === 'undefined')\n throw new TypeError(\"Cannot convert `undefined` to generator.\");\n \n return x && x._apep_generadorImpl\n ?x\n :Array.isArray(x) ? seqa(x) : str(x);\n};\n \n/* Basic Combinators\n ******************************************************************************/\n/**\n Run `a` and then `run b`.\n*/\nconst next = (a, b) => {\n a = wrap(a);\n b = wrap(b);\n return new Generador((s, k) =>\n execute(a, s, s => execute(b, s, k)));\n};\n\n/**\n Run a sequence of generators left to right.\n \n Literal values are wrapped and converted to strings:\n \n seq('a', g1, 3) === seq(str('a'), g1, str(3))\n*/\nexport const seqa = arrayFoldr.bind(null, (p, c) => next(c, p), empty);\n\n/**\n Same as `seqa` but takes values as arguments.\n*/\nexport const seq = (...generators) => seqa(generators);\n\nGenerador.prototype.seq = function(...generators) {\n return seq(this, ...generators);\n};\n\n/**\n Map function `f` over each element produced by `p`.\n*/\nexport const chain = (p, f) => { \n p = wrap(p);\n \n const loop = (r, k) =>\n r && r.rest \n ?execute(f(r.first.x), r.first.s, s => loop(r.rest(s), k))\n :k(r);\n \n return new Generador((s, k) =>\n loop(execute(p, s, id), k));\n};\n\nGenerador.prototype.chain = function(f) {\n return chain(this, f);\n};\n\n/**\n Map function `f` over each element produced by `p`.\n*/\nexport const map = (p, f) =>\n chain(p, x => lit(f(x)));\n \nGenerador.prototype.map = function(f) {\n return map(this, f);\n};\n\n/**\n Combine the yield results of 1 or more generators.\n \n @param f Accumulate function. Takes accumulated value and current value.\n @param z Initial value.\n @param generators One or more generators to combine.\n*/\nexport const combine = (f, z, ...generators) => {\n const g = seq(...generators);\n return declare(() => {\n let sum = z;\n return seq(\n noop(g.map(x => {\n sum = f(sum, x);\n return x;\n })),\n declare(() => lit(sum)));\n });\n};\n\nGenerador.prototype.combine = function(f, z, ...generators) {\n return combine(f, z, this, ...generators);\n};\n\n/**\n Combine the yielded results of generators into a single string result.\n*/\nexport const join = combine.bind(null, add, '');\n\nGenerador.prototype.join = function(...generators) {\n return join(this, ...generators);\n};\n\n/**\n Combinator that consumes all yielded values.\n \n Still useful for updating state.\n*/\nexport const noop = (...generators) =>\n chain(seq(...generators), _ => empty);\n\n/* Choice\n ******************************************************************************/\n/**\n Choose from along one or more generators, each with its own custom weight.\n*/\nexport const weightedChoice = (weightMap) => {\n const table = walker(arrayMap(weightMap, x => [x[0], wrap(x[1])]));\n return new Generador((s, k) =>\n execute(table(s.random), s, k));\n}; \n\n/**\n Choose from along one or more generators.\n \n Each element has the same weight.\n \n @param elements Array of elements\n*/\nexport const choicea = (elements) =>\n weightedChoice(arrayMap(elements, x => [1, x]));\n\n/**\n Choose from along one or more generators taken as arguments.\n \n @see choicea\n*/\nexport const choice = (...elements) => choicea(elements);\n\n/**\n Generator that optionally produces a value.\n*/\nexport const opt = (g, prob = 0.5) => {\n if (prob > 1 || prob < 0)\n throw new RangeError(\"Probability must be between [0, 1]\");\n \n if (prob === 0)\n return empty;\n else if (prob === 1) \n return g;\n return weightedChoice([[prob, g], [1 - prob, empty]]);\n};\n \n/* Iteration\n ******************************************************************************/\n/**\n Run a generator zero or more times.\n\n @param g Generator\n @param prob At each step, what is the probability that `g` is run.\n 1 means that `g` is run infinity, while 0 means that `g` is never run.\n*/\nexport const many = (g, prob = 0.5) => {\n let self;\n return self = opt(seq(g, declare(() => self)), prob);\n};\n\n/**\n Run a generator one or more times.\n \n @see many\n*/\nexport const many1 = (g, prob = 0.5) =>\n seq(g, many(g, prob));\n\n/* State\n ******************************************************************************/\nconst getState = new Generador((s, k) =>\n Yield(Pair(s, s), k));\n\nconst modifyState = f =>\n new Generador((s, k) => k(f(s)));\n\n/**\n Lookup a stored variable.\n \n @param name Key of the var.\n @param def Value returned if the variable does not exist.\n*/\nexport const get = (name, def = '') =>\n map(getState, s => State.getVar(s, name, def));\n\n/**\n Store the value of a variable.\n \n @param name Key of the var.\n @param value New value.\n*/\nexport const set = (name, value) => \n modify(name, _ => value);\n\n/**\n Update the value of a variable.\n \n @param name Key of the var.\n @param f Map old value to new value value.\n*/\nexport const modify = (name, f) => \n modifyState(s =>\n State.setVar(s, name, f(State.getVar(s, name))));\n \n/**\n Return the current user data.\n*/\nexport const getUd = map(getState, s => s.ud);\n\n/**\n Update the user data with function `f`.\n \n Does not yield any value.\n*/\nexport const modifyUd = f =>\n modifyState(s => State.setUd(s, f(s.ud)));\n\n/**\n Set the current user data.\n \n Does not yield any value.\n*/\nexport const setUd = ud =>\n modifyUd(_ => ud);\n\n/**\n Get the current random number generator.\n*/\nexport const getRandom = map(getState, s => s.random);\n\n/* Execution\n ******************************************************************************/\n/**\n Begin the execution of a generator.\n \n @param g Generator.\n @param ud Optional user data threaded through the generator's states.\n @param r Random number generator.\n \n Returns a Javascript iterator.\n*/\nexport const begin = (g, ud, random = defaultRandom) => {\n let state = State.setRandom(State.setUd(State.empty, ud), random);\n let r = execute(g, state, EOF);\n var z = { \n next: () => {\n if (r && r.rest) {\n const x = r.first.x;\n state = r.first.s;\n r = r.rest(state);\n return { value: x };\n }\n return { done: true };\n }\n };\n z[Symbol.iterator] = () => z;\n return z;\n};\n\nGenerador.prototype.begin = function(ud, random = defaultRandom) {\n return begin(this, ud, random);\n};\n\nGenerador.prototype[Symbol.iterator] = function() {\n return begin(this);\n};\n\n/**\n Left fold over a generator.\n \n @param f Function taking accumulated value and current value.\n @param z Initial value.\n @param g Generator.\n @param ud Optional user data threaded through the generator's states.\n @param r Random number generator.\n*/\nexport const fold = (f, z, g, ud, random = defaultRandom) => {\n let state = State.setRandom(State.setUd(State.empty, ud), random);\n for (let r = execute(g, state, EOF); r && r.rest; r = r.rest(state)) {\n z = f(z, r.first.x);\n state = r.first.s;\n }\n return z;\n};\n\nGenerador.prototype.fold = function(f, z, ud, random = defaultRandom) {\n return fold(f, z, this, ud, random);\n};\n\n/**\n Run a generator to completion, combining results into a string.\n \n @param g Generator.\n @param ud Optional user data threaded through the generator's states.\n @param r Random number generator.\n*/\nexport const run = fold.bind(null, add, '');\n \nGenerador.prototype.run = function(ud, random = defaultRandom) {\n return run(this, ud, random);\n};"],"sourceRoot":"/source/"}