{"version":3,"sources":["jsdelivr-header.js","/npm/nearley-make@1.0.1/nearley-make.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,QAAU,QAAQ,WAClB,SAAW,QAAQ,gDACnB,SAAW,QAAQ,0BACnB,IAAM,QAAQ,2BAEpB,OAAO,QAAU,SAAqB,EAAS,GAC7C,IAAI,EACA,EACA,EAAO,GAAQ,CAAC,EAEpB,IAAI,EAAU,GACV,EAAY,GAOhB,GALA,OAAO,KAAK,GAAM,SAAQ,SAAS,GACjC,EAAQ,KAAK,GACb,EAAU,KAAK,EAAK,GACtB,IAEsB,iBAAZ,EACR,MAAM,IAAI,UAAU,sCAAwC,GAkB9D,OAdA,EAAS,IAAI,QAAQ,OAAO,SAAS,YAAa,SAAS,aAC3D,EAAU,SAAS,EAAO,KAAK,GAAS,QAAQ,GAAI,CAAC,GACrD,EAAS,IAAI,EAAS,WAGtB,EAAS,EAAO,QAAQ,iBAAkB,yBAC1C,EAAS,EAAO,QAAQ,mBAAoB,UAG5C,EAAU,IAAK,YAAY,EAAS,EAA1B,IAAsC,GAGhD,EAAS,IAAI,QAAQ,OAAO,EAAQ,YAAa,EAAQ,aAElD,CACT","file":"/npm/nearley-make@1.0.1/nearley-make.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/nearley-make@1.0.1/nearley-make.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict'\n\nconst nearley = require('nearley')\nconst nearleyg = require('nearley/lib/nearley-language-bootstrapped.js')\nconst nearleyc = require('nearley/lib/compile.js')\nconst gen = require('nearley/lib/generate.js')\n\nmodule.exports = function nearleyMake(grammar, args) {\n  let parser\n  let genned\n      args = args || {}\n\n  let argKeys = []\n  let argValues = []\n\n  Object.keys(args).forEach(function(key) {\n    argKeys.push(key)\n    argValues.push(args[key])\n  })\n\n  if(typeof grammar !== 'string') {\n    throw new TypeError('arg#1 must be a string, got ' + typeof grammar)\n  }\n\n  // fork of https://github.com/Hardmath123/nearley/blob/master/bin/nearleyc.js\n  parser = new nearley.Parser(nearleyg.ParserRules, nearleyg.ParserStart)\n  grammar = nearleyc(parser.feed(grammar).results[0], {})\n  genned = gen(grammar, 'grammar')\n\n  // this is an amazing hack, you have to agree :P\n  genned = genned.replace('(function () {', 'return (function () {')\n  genned = genned.replace('window.grammar =', 'return')\n\n  // eval the generated code & pass arguments\n  grammar = (new Function(...argKeys, genned))(...argValues)\n\n  // generate parser\n  parser = new nearley.Parser(grammar.ParserRules, grammar.ParserStart)\n\n  return parser\n}\n"]}