mini-program-cljs
Version:
1 lines • 80.2 kB
JSON
["^ ","~:output",["^ ","~:js","goog.provide('instaparse.combinators_source');\ninstaparse.combinators_source.Epsilon = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"epsilon\",\"epsilon\",-730158570)], null);\n/**\n * Optional, i.e., parser?\n */\ninstaparse.combinators_source.opt = (function instaparse$combinators_source$opt(parser){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(parser,instaparse.combinators_source.Epsilon)){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"opt\",\"opt\",-794706369),new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310),parser], null);\n}\n});\n/**\n * One or more, i.e., parser+\n */\ninstaparse.combinators_source.plus = (function instaparse$combinators_source$plus(parser){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(parser,instaparse.combinators_source.Epsilon)){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"plus\",\"plus\",211540661),new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310),parser], null);\n}\n});\n/**\n * Zero or more, i.e., parser*\n */\ninstaparse.combinators_source.star = (function instaparse$combinators_source$star(parser){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(parser,instaparse.combinators_source.Epsilon)){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"star\",\"star\",279424429),new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310),parser], null);\n}\n});\n/**\n * Between m and n repetitions\n */\ninstaparse.combinators_source.rep = (function instaparse$combinators_source$rep(m,n,parser){\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(parser,instaparse.combinators_source.Epsilon)){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"rep\",\"rep\",-1226820564),new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310),parser,new cljs.core.Keyword(null,\"min\",\"min\",444991522),m,new cljs.core.Keyword(null,\"max\",\"max\",61366548),n], null);\n}\n});\n/**\n * Alternation, i.e., parser1 | parser2 | parser3 | ...\n */\ninstaparse.combinators_source.alt = (function instaparse$combinators_source$alt(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___26059 = arguments.length;\nvar i__4790__auto___26061 = (0);\nwhile(true){\nif((i__4790__auto___26061 < len__4789__auto___26059)){\nargs__4795__auto__.push((arguments[i__4790__auto___26061]));\n\nvar G__26062 = (i__4790__auto___26061 + (1));\ni__4790__auto___26061 = G__26062;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn instaparse.combinators_source.alt.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(instaparse.combinators_source.alt.cljs$core$IFn$_invoke$arity$variadic = (function (parsers){\nif(cljs.core.every_QMARK_(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,instaparse.combinators_source.Epsilon),parsers)){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nif(instaparse.reduction.singleton_QMARK_(parsers)){\nreturn cljs.core.first(parsers);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"alt\",\"alt\",-3214426),new cljs.core.Keyword(null,\"parsers\",\"parsers\",-804353827),parsers], null);\n\n}\n}\n}));\n\n(instaparse.combinators_source.alt.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(instaparse.combinators_source.alt.cljs$lang$applyTo = (function (seq26001){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq26001));\n}));\n\ninstaparse.combinators_source.ord2 = (function instaparse$combinators_source$ord2(parser1,parser2){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"ord\",\"ord\",1142548323),new cljs.core.Keyword(null,\"parser1\",\"parser1\",-439601422),parser1,new cljs.core.Keyword(null,\"parser2\",\"parser2\",1013754688),parser2], null);\n});\n/**\n * Ordered choice, i.e., parser1 / parser2\n */\ninstaparse.combinators_source.ord = (function instaparse$combinators_source$ord(var_args){\nvar G__26005 = arguments.length;\nswitch (G__26005) {\ncase 0:\nreturn instaparse.combinators_source.ord.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___26070 = arguments.length;\nvar i__4790__auto___26071 = (0);\nwhile(true){\nif((i__4790__auto___26071 < len__4789__auto___26070)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___26071]));\n\nvar G__26072 = (i__4790__auto___26071 + (1));\ni__4790__auto___26071 = G__26072;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((1)),(0),null));\nreturn instaparse.combinators_source.ord.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4811__auto__);\n\n}\n});\n\n(instaparse.combinators_source.ord.cljs$core$IFn$_invoke$arity$0 = (function (){\nreturn instaparse.combinators_source.Epsilon;\n}));\n\n(instaparse.combinators_source.ord.cljs$core$IFn$_invoke$arity$variadic = (function (parser1,parsers){\nvar parsers__$1 = ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(parser1,instaparse.combinators_source.Epsilon))?cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.createAsIfByAssoc([instaparse.combinators_source.Epsilon]),parsers):parsers);\nif(cljs.core.seq(parsers__$1)){\nreturn instaparse.combinators_source.ord2(parser1,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(instaparse.combinators_source.ord,parsers__$1));\n} else {\nreturn parser1;\n}\n}));\n\n/** @this {Function} */\n(instaparse.combinators_source.ord.cljs$lang$applyTo = (function (seq26003){\nvar G__26004 = cljs.core.first(seq26003);\nvar seq26003__$1 = cljs.core.next(seq26003);\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__26004,seq26003__$1);\n}));\n\n(instaparse.combinators_source.ord.cljs$lang$maxFixedArity = (1));\n\n/**\n * Concatenation, i.e., parser1 parser2 ...\n */\ninstaparse.combinators_source.cat = (function instaparse$combinators_source$cat(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___26073 = arguments.length;\nvar i__4790__auto___26074 = (0);\nwhile(true){\nif((i__4790__auto___26074 < len__4789__auto___26073)){\nargs__4795__auto__.push((arguments[i__4790__auto___26074]));\n\nvar G__26124 = (i__4790__auto___26074 + (1));\ni__4790__auto___26074 = G__26124;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn instaparse.combinators_source.cat.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(instaparse.combinators_source.cat.cljs$core$IFn$_invoke$arity$variadic = (function (parsers){\nif(cljs.core.every_QMARK_(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,instaparse.combinators_source.Epsilon),parsers)){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nvar parsers__$1 = cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.createAsIfByAssoc([instaparse.combinators_source.Epsilon]),parsers);\nif(instaparse.reduction.singleton_QMARK_(parsers__$1)){\nreturn cljs.core.first(parsers__$1);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"cat\",\"cat\",-1457810207),new cljs.core.Keyword(null,\"parsers\",\"parsers\",-804353827),parsers__$1], null);\n}\n}\n}));\n\n(instaparse.combinators_source.cat.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(instaparse.combinators_source.cat.cljs$lang$applyTo = (function (seq26006){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq26006));\n}));\n\n/**\n * Create a string terminal out of s\n */\ninstaparse.combinators_source.string = (function instaparse$combinators_source$string(s){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\"\")){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"string\",\"string\",-1989541586),new cljs.core.Keyword(null,\"string\",\"string\",-1989541586),s], null);\n}\n});\n/**\n * Create a case-insensitive string terminal out of s\n */\ninstaparse.combinators_source.string_ci = (function instaparse$combinators_source$string_ci(s){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\"\")){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"string-ci\",\"string-ci\",374631805),new cljs.core.Keyword(null,\"string\",\"string\",-1989541586),s], null);\n}\n});\n/**\n * Matches a Unicode code point or a range of code points\n */\ninstaparse.combinators_source.unicode_char = (function instaparse$combinators_source$unicode_char(var_args){\nvar G__26008 = arguments.length;\nswitch (G__26008) {\ncase 1:\nreturn instaparse.combinators_source.unicode_char.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn instaparse.combinators_source.unicode_char.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(instaparse.combinators_source.unicode_char.cljs$core$IFn$_invoke$arity$1 = (function (code_point){\nreturn instaparse.combinators_source.unicode_char.cljs$core$IFn$_invoke$arity$2(code_point,code_point);\n}));\n\n(instaparse.combinators_source.unicode_char.cljs$core$IFn$_invoke$arity$2 = (function (lo,hi){\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"char\",\"char\",-641587586),new cljs.core.Keyword(null,\"lo\",\"lo\",-931799889),lo,new cljs.core.Keyword(null,\"hi\",\"hi\",-1821422114),hi], null);\n}));\n\n(instaparse.combinators_source.unicode_char.cljs$lang$maxFixedArity = 2);\n\n/**\n * JavaScript regexes have no .lookingAt method, so in cljs we just\n * add a '^' character to the front of the regex.\n */\ninstaparse.combinators_source.add_beginning_constraint = (function instaparse$combinators_source$add_beginning_constraint(r){\nif(cljs.core.regexp_QMARK_(r)){\nreturn (new RegExp([\"^\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(r.source)].join(''),instaparse.util.regexp_flags(r)));\n} else {\nreturn r;\n}\n});\n/**\n * Create a regexp terminal out of regular expression r\n */\ninstaparse.combinators_source.regexp = (function instaparse$combinators_source$regexp(r){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,\"\")){\nreturn instaparse.combinators_source.Epsilon;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"regexp\",\"regexp\",-541372782),new cljs.core.Keyword(null,\"regexp\",\"regexp\",-541372782),instaparse.combinators_source.add_beginning_constraint(cljs.core.re_pattern(r))], null);\n}\n});\n/**\n * Refers to a non-terminal defined by the grammar map\n */\ninstaparse.combinators_source.nt = (function instaparse$combinators_source$nt(s){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"nt\",\"nt\",-835425781),new cljs.core.Keyword(null,\"keyword\",\"keyword\",811389747),s], null);\n});\n/**\n * Lookahead, i.e., &parser\n */\ninstaparse.combinators_source.look = (function instaparse$combinators_source$look(parser){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"look\",\"look\",-539441433),new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310),parser], null);\n});\n/**\n * Negative lookahead, i.e., !parser\n */\ninstaparse.combinators_source.neg = (function instaparse$combinators_source$neg(parser){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Keyword(null,\"neg\",\"neg\",1800032960),new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310),parser], null);\n});\n/**\n * Hide the result of parser, i.e., <parser>\n */\ninstaparse.combinators_source.hide = (function instaparse$combinators_source$hide(parser){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\"hide\",\"hide\",-596913169),true);\n});\n/**\n * Hide the tag associated with this rule. \n * Wrap this combinator around the entire right-hand side.\n */\ninstaparse.combinators_source.hide_tag = (function instaparse$combinators_source$hide_tag(parser){\nreturn instaparse.reduction.red(parser,instaparse.reduction.raw_non_terminal_reduction);\n});\n/**\n * Tests whether parser was created with hide-tag combinator\n */\ninstaparse.combinators_source.hidden_tag_QMARK_ = (function instaparse$combinators_source$hidden_tag_QMARK_(parser){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"red\",\"red\",-969428204).cljs$core$IFn$_invoke$arity$1(parser),instaparse.reduction.raw_non_terminal_reduction);\n});\n/**\n * Recursively undoes the effect of hide on one parser\n */\ninstaparse.combinators_source.unhide_content = (function instaparse$combinators_source$unhide_content(parser){\nvar parser__$1 = (cljs.core.truth_(new cljs.core.Keyword(null,\"hide\",\"hide\",-596913169).cljs$core$IFn$_invoke$arity$1(parser))?cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(parser,new cljs.core.Keyword(null,\"hide\",\"hide\",-596913169)):parser);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310).cljs$core$IFn$_invoke$arity$1(parser__$1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser__$1,new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310),(function (){var G__26009 = new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310).cljs$core$IFn$_invoke$arity$1(parser__$1);\nreturn (instaparse.combinators_source.unhide_content.cljs$core$IFn$_invoke$arity$1 ? instaparse.combinators_source.unhide_content.cljs$core$IFn$_invoke$arity$1(G__26009) : instaparse.combinators_source.unhide_content.call(null,G__26009));\n})());\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\"parsers\",\"parsers\",-804353827).cljs$core$IFn$_invoke$arity$1(parser__$1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser__$1,new cljs.core.Keyword(null,\"parsers\",\"parsers\",-804353827),cljs.core.map.cljs$core$IFn$_invoke$arity$2(instaparse.combinators_source.unhide_content,new cljs.core.Keyword(null,\"parsers\",\"parsers\",-804353827).cljs$core$IFn$_invoke$arity$1(parser__$1)));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223).cljs$core$IFn$_invoke$arity$1(parser__$1),new cljs.core.Keyword(null,\"ord\",\"ord\",1142548323))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser__$1,new cljs.core.Keyword(null,\"parser1\",\"parser1\",-439601422),(function (){var G__26010 = new cljs.core.Keyword(null,\"parser1\",\"parser1\",-439601422).cljs$core$IFn$_invoke$arity$1(parser__$1);\nreturn (instaparse.combinators_source.unhide_content.cljs$core$IFn$_invoke$arity$1 ? instaparse.combinators_source.unhide_content.cljs$core$IFn$_invoke$arity$1(G__26010) : instaparse.combinators_source.unhide_content.call(null,G__26010));\n})(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"parser2\",\"parser2\",1013754688),(function (){var G__26011 = new cljs.core.Keyword(null,\"parser2\",\"parser2\",1013754688).cljs$core$IFn$_invoke$arity$1(parser__$1);\nreturn (instaparse.combinators_source.unhide_content.cljs$core$IFn$_invoke$arity$1 ? instaparse.combinators_source.unhide_content.cljs$core$IFn$_invoke$arity$1(G__26011) : instaparse.combinators_source.unhide_content.call(null,G__26011));\n})()], 0));\n} else {\nreturn parser__$1;\n\n}\n}\n}\n});\n/**\n * Recursively undoes the effect of hide on all parsers in the grammar\n */\ninstaparse.combinators_source.unhide_all_content = (function instaparse$combinators_source$unhide_all_content(grammar){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__4582__auto__ = (function instaparse$combinators_source$unhide_all_content_$_iter__26012(s__26013){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__26013__$1 = s__26013;\nwhile(true){\nvar temp__5735__auto__ = cljs.core.seq(s__26013__$1);\nif(temp__5735__auto__){\nvar s__26013__$2 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__26013__$2)){\nvar c__4580__auto__ = cljs.core.chunk_first(s__26013__$2);\nvar size__4581__auto__ = cljs.core.count(c__4580__auto__);\nvar b__26015 = cljs.core.chunk_buffer(size__4581__auto__);\nif((function (){var i__26014 = (0);\nwhile(true){\nif((i__26014 < size__4581__auto__)){\nvar vec__26016 = cljs.core._nth(c__4580__auto__,i__26014);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26016,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26016,(1),null);\ncljs.core.chunk_append(b__26015,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,instaparse.combinators_source.unhide_content(v)], null));\n\nvar G__26139 = (i__26014 + (1));\ni__26014 = G__26139;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26015),instaparse$combinators_source$unhide_all_content_$_iter__26012(cljs.core.chunk_rest(s__26013__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26015),null);\n}\n} else {\nvar vec__26019 = cljs.core.first(s__26013__$2);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26019,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26019,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,instaparse.combinators_source.unhide_content(v)], null),instaparse$combinators_source$unhide_all_content_$_iter__26012(cljs.core.rest(s__26013__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__4582__auto__(grammar);\n})());\n});\n/**\n * Recursively undoes the effect of hide-tag\n */\ninstaparse.combinators_source.unhide_tags = (function instaparse$combinators_source$unhide_tags(reduction_type,grammar){\nvar temp__5733__auto__ = (instaparse.reduction.reduction_types.cljs$core$IFn$_invoke$arity$1 ? instaparse.reduction.reduction_types.cljs$core$IFn$_invoke$arity$1(reduction_type) : instaparse.reduction.reduction_types.call(null,reduction_type));\nif(cljs.core.truth_(temp__5733__auto__)){\nvar reduction = temp__5733__auto__;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__4582__auto__ = (function instaparse$combinators_source$unhide_tags_$_iter__26022(s__26023){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__26023__$1 = s__26023;\nwhile(true){\nvar temp__5735__auto__ = cljs.core.seq(s__26023__$1);\nif(temp__5735__auto__){\nvar s__26023__$2 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__26023__$2)){\nvar c__4580__auto__ = cljs.core.chunk_first(s__26023__$2);\nvar size__4581__auto__ = cljs.core.count(c__4580__auto__);\nvar b__26025 = cljs.core.chunk_buffer(size__4581__auto__);\nif((function (){var i__26024 = (0);\nwhile(true){\nif((i__26024 < size__4581__auto__)){\nvar vec__26026 = cljs.core._nth(c__4580__auto__,i__26024);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26026,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26026,(1),null);\ncljs.core.chunk_append(b__26025,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,new cljs.core.Keyword(null,\"red\",\"red\",-969428204),(reduction.cljs$core$IFn$_invoke$arity$1 ? reduction.cljs$core$IFn$_invoke$arity$1(k) : reduction.call(null,k)))], null));\n\nvar G__26145 = (i__26024 + (1));\ni__26024 = G__26145;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26025),instaparse$combinators_source$unhide_tags_$_iter__26022(cljs.core.chunk_rest(s__26023__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26025),null);\n}\n} else {\nvar vec__26029 = cljs.core.first(s__26023__$2);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26029,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26029,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,new cljs.core.Keyword(null,\"red\",\"red\",-969428204),(reduction.cljs$core$IFn$_invoke$arity$1 ? reduction.cljs$core$IFn$_invoke$arity$1(k) : reduction.call(null,k)))], null),instaparse$combinators_source$unhide_tags_$_iter__26022(cljs.core.rest(s__26023__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__4582__auto__(grammar);\n})());\n} else {\nreturn instaparse.util.throw_illegal_argument_exception.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"Invalid output format \",reduction_type,\". Use :enlive or :hiccup.\"], 0));\n}\n});\n/**\n * Recursively undoes the effect of both hide and hide-tag\n */\ninstaparse.combinators_source.unhide_all = (function instaparse$combinators_source$unhide_all(reduction_type,grammar){\nvar temp__5733__auto__ = (instaparse.reduction.reduction_types.cljs$core$IFn$_invoke$arity$1 ? instaparse.reduction.reduction_types.cljs$core$IFn$_invoke$arity$1(reduction_type) : instaparse.reduction.reduction_types.call(null,reduction_type));\nif(cljs.core.truth_(temp__5733__auto__)){\nvar reduction = temp__5733__auto__;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__4582__auto__ = (function instaparse$combinators_source$unhide_all_$_iter__26032(s__26033){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__26033__$1 = s__26033;\nwhile(true){\nvar temp__5735__auto__ = cljs.core.seq(s__26033__$1);\nif(temp__5735__auto__){\nvar s__26033__$2 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__26033__$2)){\nvar c__4580__auto__ = cljs.core.chunk_first(s__26033__$2);\nvar size__4581__auto__ = cljs.core.count(c__4580__auto__);\nvar b__26035 = cljs.core.chunk_buffer(size__4581__auto__);\nif((function (){var i__26034 = (0);\nwhile(true){\nif((i__26034 < size__4581__auto__)){\nvar vec__26036 = cljs.core._nth(c__4580__auto__,i__26034);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26036,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26036,(1),null);\ncljs.core.chunk_append(b__26035,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(instaparse.combinators_source.unhide_content(v),new cljs.core.Keyword(null,\"red\",\"red\",-969428204),(reduction.cljs$core$IFn$_invoke$arity$1 ? reduction.cljs$core$IFn$_invoke$arity$1(k) : reduction.call(null,k)))], null));\n\nvar G__26147 = (i__26034 + (1));\ni__26034 = G__26147;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26035),instaparse$combinators_source$unhide_all_$_iter__26032(cljs.core.chunk_rest(s__26033__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26035),null);\n}\n} else {\nvar vec__26039 = cljs.core.first(s__26033__$2);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26039,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26039,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(instaparse.combinators_source.unhide_content(v),new cljs.core.Keyword(null,\"red\",\"red\",-969428204),(reduction.cljs$core$IFn$_invoke$arity$1 ? reduction.cljs$core$IFn$_invoke$arity$1(k) : reduction.call(null,k)))], null),instaparse$combinators_source$unhide_all_$_iter__26032(cljs.core.rest(s__26033__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__4582__auto__(grammar);\n})());\n} else {\nreturn instaparse.util.throw_illegal_argument_exception.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"Invalid output format \",reduction_type,\". Use :enlive or :hiccup.\"], 0));\n}\n});\ninstaparse.combinators_source.auto_whitespace_parser = (function instaparse$combinators_source$auto_whitespace_parser(parser,ws_parser){\nvar G__26043 = new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__26043__$1 = (((G__26043 instanceof cljs.core.Keyword))?G__26043.fqn:null);\nswitch (G__26043__$1) {\ncase \"nt\":\ncase \"epsilon\":\nreturn parser;\n\nbreak;\ncase \"opt\":\ncase \"plus\":\ncase \"star\":\ncase \"rep\":\ncase \"look\":\ncase \"neg\":\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"parser\",\"parser\",-1543495310)], null),instaparse.combinators_source.auto_whitespace_parser,ws_parser);\n\nbreak;\ncase \"alt\":\ncase \"cat\":\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\"parsers\",\"parsers\",-804353827),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26042_SHARP_){\nreturn (instaparse.combinators_source.auto_whitespace_parser.cljs$core$IFn$_invoke$arity$2 ? instaparse.combinators_source.auto_whitespace_parser.cljs$core$IFn$_invoke$arity$2(p1__26042_SHARP_,ws_parser) : instaparse.combinators_source.auto_whitespace_parser.call(null,p1__26042_SHARP_,ws_parser));\n}),new cljs.core.Keyword(null,\"parsers\",\"parsers\",-804353827).cljs$core$IFn$_invoke$arity$1(parser)));\n\nbreak;\ncase \"ord\":\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser,new cljs.core.Keyword(null,\"parser1\",\"parser1\",-439601422),(function (){var G__26044 = new cljs.core.Keyword(null,\"parser1\",\"parser1\",-439601422).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__26045 = ws_parser;\nreturn (instaparse.combinators_source.auto_whitespace_parser.cljs$core$IFn$_invoke$arity$2 ? instaparse.combinators_source.auto_whitespace_parser.cljs$core$IFn$_invoke$arity$2(G__26044,G__26045) : instaparse.combinators_source.auto_whitespace_parser.call(null,G__26044,G__26045));\n})(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"parser2\",\"parser2\",1013754688),(function (){var G__26046 = new cljs.core.Keyword(null,\"parser2\",\"parser2\",1013754688).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__26047 = ws_parser;\nreturn (instaparse.combinators_source.auto_whitespace_parser.cljs$core$IFn$_invoke$arity$2 ? instaparse.combinators_source.auto_whitespace_parser.cljs$core$IFn$_invoke$arity$2(G__26046,G__26047) : instaparse.combinators_source.auto_whitespace_parser.call(null,G__26046,G__26047));\n})()], 0));\n\nbreak;\ncase \"string\":\ncase \"string-ci\":\ncase \"regexp\":\nif(cljs.core.truth_(new cljs.core.Keyword(null,\"red\",\"red\",-969428204).cljs$core$IFn$_invoke$arity$1(parser))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(instaparse.combinators_source.cat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ws_parser,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(parser,new cljs.core.Keyword(null,\"red\",\"red\",-969428204))], 0)),new cljs.core.Keyword(null,\"red\",\"red\",-969428204),new cljs.core.Keyword(null,\"red\",\"red\",-969428204).cljs$core$IFn$_invoke$arity$1(parser));\n} else {\nreturn instaparse.combinators_source.cat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ws_parser,parser], 0));\n}\n\nbreak;\ndefault:\nthrow (new Error([\"No matching clause: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__26043__$1)].join('')));\n\n}\n});\ninstaparse.combinators_source.auto_whitespace = (function instaparse$combinators_source$auto_whitespace(grammar,start,grammar_ws,start_ws){\nvar ws_parser = instaparse.combinators_source.hide(instaparse.combinators_source.opt(instaparse.combinators_source.nt(start_ws)));\nvar grammar_ws__$1 = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(grammar_ws,start_ws,instaparse.combinators_source.hide_tag((grammar_ws.cljs$core$IFn$_invoke$arity$1 ? grammar_ws.cljs$core$IFn$_invoke$arity$1(start_ws) : grammar_ws.call(null,start_ws))));\nvar modified_grammar = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__4582__auto__ = (function instaparse$combinators_source$auto_whitespace_$_iter__26048(s__26049){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__26049__$1 = s__26049;\nwhile(true){\nvar temp__5735__auto__ = cljs.core.seq(s__26049__$1);\nif(temp__5735__auto__){\nvar s__26049__$2 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__26049__$2)){\nvar c__4580__auto__ = cljs.core.chunk_first(s__26049__$2);\nvar size__4581__auto__ = cljs.core.count(c__4580__auto__);\nvar b__26051 = cljs.core.chunk_buffer(size__4581__auto__);\nif((function (){var i__26050 = (0);\nwhile(true){\nif((i__26050 < size__4581__auto__)){\nvar vec__26052 = cljs.core._nth(c__4580__auto__,i__26050);\nvar nt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26052,(0),null);\nvar parser = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26052,(1),null);\ncljs.core.chunk_append(b__26051,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nt,instaparse.combinators_source.auto_whitespace_parser(parser,ws_parser)], null));\n\nvar G__26177 = (i__26050 + (1));\ni__26050 = G__26177;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26051),instaparse$combinators_source$auto_whitespace_$_iter__26048(cljs.core.chunk_rest(s__26049__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__26051),null);\n}\n} else {\nvar vec__26055 = cljs.core.first(s__26049__$2);\nvar nt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26055,(0),null);\nvar parser = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26055,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nt,instaparse.combinators_source.auto_whitespace_parser(parser,ws_parser)], null),instaparse$combinators_source$auto_whitespace_$_iter__26048(cljs.core.rest(s__26049__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__4582__auto__(grammar);\n})());\nvar final_grammar = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(modified_grammar,start,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(instaparse.combinators_source.cat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((modified_grammar.cljs$core$IFn$_invoke$arity$1 ? modified_grammar.cljs$core$IFn$_invoke$arity$1(start) : modified_grammar.call(null,start)),new cljs.core.Keyword(null,\"red\",\"red\",-969428204)),ws_parser], 0)),new cljs.core.Keyword(null,\"red\",\"red\",-969428204),new cljs.core.Keyword(null,\"red\",\"red\",-969428204).cljs$core$IFn$_invoke$arity$1((modified_grammar.cljs$core$IFn$_invoke$arity$1 ? modified_grammar.cljs$core$IFn$_invoke$arity$1(start) : modified_grammar.call(null,start)))));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([final_grammar,grammar_ws__$1], 0));\n});\n","~:ns-info",["^ ","~:rename-macros",null,"~:renames",["^ "],"~:meta",["^ ","~:doc","This is the underlying implementation of the various combinators.","~:file","instaparse/combinators_source.cljc","~:line",1,"~:column",5,"~:end-line",1,"~:end-column",34],"~:ns-aliases",["^ ","~$cljs.loader","~$shadow.loader"],"~:use-macros",null,"~:excludes",["~#set",["~$cat"]],"~:name","~$instaparse.combinators-source","~:op","~:ns","~:imports",null,"~:requires",["^ ","~$instaparse.reduction","^I","~$instaparse.util","^J","~$cljs.core","^K","~$goog","^L"],"~:seen",["^A",["~:require"]],"~:uses",["^ ","~$singleton?","^I","~$red","^I","~$raw-non-terminal-reduction","^I","~$reduction-types","^I","~$throw-illegal-argument-exception","^J","~$regexp-flags","^J"],"~:require-macros",["^ ","^K","^K"],"~:form",["~#list",["~$ns","^D","This is the underlying implementation of the various combinators.",["^X",["~:refer-clojure","~:exclude",["^B"]]],["^X",["^N",["^I","~:refer",["^P","^Q","^R","^S"]],["^J","^10",["^T","^U"]]]]]],"~:flags",["^ ","^N",["^A",[]]],"~:js-deps",["^ "],"~:deps",["^L","^K","^I","^J"]],"^F","^D","~:resource-id",["~:shadow.build.classpath/resource","instaparse/combinators_source.cljc"],"~:compiled-at",1590236740731,"~:resource-name","instaparse/combinators_source.cljc","~:warnings",[],"~:source","(ns instaparse.combinators-source\r\n \"This is the underlying implementation of the various combinators.\"\r\n (:refer-clojure :exclude [cat])\r\n (:require [instaparse.reduction :refer [singleton? red\r\n raw-non-terminal-reduction\r\n reduction-types]]\r\n [instaparse.util :refer [throw-illegal-argument-exception #?(:cljs regexp-flags)]]))\r\n\r\n;; Ways to build parsers\r\n\r\n(def Epsilon {:tag :epsilon})\r\n\r\n(defn opt \"Optional, i.e., parser?\"\r\n [parser] \r\n (if (= parser Epsilon) Epsilon\r\n {:tag :opt :parser parser}))\r\n\r\n(defn plus \"One or more, i.e., parser+\"\r\n [parser]\r\n (if (= parser Epsilon) Epsilon\r\n {:tag :plus :parser parser}))\r\n\r\n(defn star \"Zero or more, i.e., parser*\"\r\n [parser] \r\n (if (= parser Epsilon) Epsilon\r\n {:tag :star :parser parser}))\r\n\r\n(defn rep \"Between m and n repetitions\"\r\n [m n parser]\r\n {:pre [(<= m n)]}\r\n (if (= parser Epsilon) Epsilon\r\n {:tag :rep :parser parser :min m :max n}))\r\n\r\n(defn alt \"Alternation, i.e., parser1 | parser2 | parser3 | ...\"\r\n [& parsers] \r\n (cond\r\n (every? (partial = Epsilon) parsers) Epsilon\r\n (singleton? parsers) (first parsers)\r\n :else {:tag :alt :parsers parsers}))\r\n\r\n(defn- ord2 [parser1 parser2]\r\n {:tag :ord :parser1 parser1 :parser2 parser2})\r\n\r\n(defn ord \"Ordered choice, i.e., parser1 / parser2\"\r\n ([] Epsilon)\r\n ([parser1 & parsers]\r\n (let [parsers (if (= parser1 Epsilon)\r\n (remove #{Epsilon} parsers)\r\n parsers)]\r\n (if (seq parsers)\r\n (ord2 parser1 (apply ord parsers))\r\n parser1))))\r\n\r\n(defn cat \"Concatenation, i.e., parser1 parser2 ...\"\r\n [& parsers]\r\n (if (every? (partial = Epsilon) parsers) Epsilon\r\n (let [parsers (remove #{Epsilon} parsers)]\r\n (if (singleton? parsers) (first parsers) ; apply vector reduction\r\n {:tag :cat :parsers parsers}))))\r\n\r\n(defn string \"Create a string terminal out of s\" \r\n [s] \r\n (if (= s \"\") Epsilon\r\n {:tag :string :string s}))\r\n\r\n(defn string-ci \"Create a case-insensitive string terminal out of s\" \r\n [s] \r\n (if (= s \"\") Epsilon\r\n {:tag :string-ci :string s}))\r\n\r\n(defn unicode-char\r\n \"Matches a Unicode code point or a range of code points\"\r\n ([code-point]\r\n (unicode-char code-point code-point))\r\n ([lo hi]\r\n (assert (<= lo hi) \"Character range minimum must be less than or equal the maximum\")\r\n {:tag :char :lo lo :hi hi}))\r\n\r\n#?(:cljs\r\n (defn- add-beginning-constraint\r\n \"JavaScript regexes have no .lookingAt method, so in cljs we just\r\n add a '^' character to the front of the regex.\"\r\n [r]\r\n (if (regexp? r)\r\n (js/RegExp. (str \"^\" (.-source r)) (regexp-flags r))\r\n r)))\r\n\r\n(defn regexp \"Create a regexp terminal out of regular expression r\"\r\n [r]\r\n (if (= r \"\") Epsilon\r\n {:tag :regexp\r\n :regexp (-> (re-pattern r)\r\n #?(:cljs add-beginning-constraint))}))\r\n\r\n(defn nt \"Refers to a non-terminal defined by the grammar map\"\r\n [s] \r\n {:tag :nt :keyword s})\r\n\r\n(defn look \"Lookahead, i.e., &parser\" \r\n [parser] \r\n {:tag :look :parser parser}) \r\n\r\n(defn neg \"Negative lookahead, i.e., !parser\"\r\n [parser] \r\n {:tag :neg :parser parser})\r\n\r\n(defn hide \"Hide the result of parser, i.e., <parser>\"\r\n [parser] \r\n (assoc parser :hide true))\r\n\r\n(defn hide-tag \"Hide the tag associated with this rule. \r\n Wrap this combinator around the entire right-hand side.\" \r\n [parser]\r\n (red parser raw-non-terminal-reduction))\r\n\r\n; Ways to alter a parser with hidden information, unhiding that information\r\n\r\n(defn hidden-tag?\r\n \"Tests whether parser was created with hide-tag combinator\"\r\n [parser]\r\n (= (:red parser) raw-non-terminal-reduction))\r\n\r\n(defn unhide-content\r\n \"Recursively undoes the effect of hide on one parser\"\r\n [parser]\r\n (let [parser (if (:hide parser) (dissoc parser :hide) parser)]\r\n (cond\r\n (:parser parser) (assoc parser :parser (unhide-content (:parser parser)))\r\n (:parsers parser) (assoc parser :parsers (map unhide-content (:parsers parser)))\r\n (= (:tag parser) :ord) (assoc parser \r\n :parser1 (unhide-content (:parser1 parser))\r\n :parser2 (unhide-content (:parser2 parser)))\r\n :else parser)))\r\n\r\n(defn unhide-all-content\r\n \"Recursively undoes the effect of hide on all parsers in the grammar\"\r\n [grammar]\r\n (into {} (for [[k v] grammar]\r\n [k (unhide-content v)])))\r\n\r\n(defn unhide-tags \r\n \"Recursively undoes the effect of hide-tag\"\r\n [reduction-type grammar]\r\n (if-let [reduction (reduction-types reduction-type)]\r\n (into {} (for [[k v] grammar]\r\n [k (assoc v :red (reduction k))]))\r\n (throw-illegal-argument-exception\r\n \"Invalid output format \" reduction-type \". Use :enlive or :hiccup.\")))\r\n\r\n(defn unhide-all\r\n \"Recursively undoes the effect of both hide and hide-tag\"\r\n [reduction-type grammar]\r\n (if-let [reduction (reduction-types reduction-type)]\r\n (into {} (for [[k v] grammar]\r\n [k (assoc (unhide-content v) :red (reduction k))]))\r\n (throw-illegal-argument-exception\r\n \"Invalid output format \" reduction-type \". Use :enlive or :hiccup.\")))\r\n\r\n\r\n;; New beta feature: automatically add whitespace\r\n\r\n(defn auto-whitespace-parser [parser ws-parser]\r\n (case (:tag parser)\r\n (:nt :epsilon) parser \r\n (:opt :plus :star :rep :look :neg) (update-in parser [:parser] auto-whitespace-parser ws-parser)\r\n (:alt :cat) (assoc parser :parsers \r\n (map #(auto-whitespace-parser % ws-parser) (:parsers parser)))\r\n :ord (assoc parser \r\n :parser1 (auto-whitespace-parser (:parser1 parser) ws-parser)\r\n :parser2 (auto-whitespace-parser (:parser2 parser) ws-parser))\r\n (:string :string-ci :regexp) \r\n ; If the string/regexp has a reduction associated with it,\r\n ; we need to \"lift\" that reduction out to the (cat whitespace string)\r\n ; parser that is being created.\r\n (if (:red parser)\r\n (assoc (cat ws-parser (dissoc parser :red)) :red (:red parser))\r\n (cat ws-parser parser))))\r\n\r\n(defn auto-whitespace [grammar start grammar-ws start-ws]\r\n (let [ws-parser (hide (opt (nt start-ws)))\r\n grammar-ws (assoc grammar-ws start-ws (hide-tag (grammar-ws start-ws)))\r\n modified-grammar (into {} \r\n (for [[nt parser] grammar] \r\n [nt (auto-whitespace-parser parser ws-parser)]))\r\n final-grammar (assoc modified-grammar start \r\n (assoc (cat (dissoc (modified-grammar start) :red) \r\n ws-parser)\r\n :red (:red (modified-grammar start))))]\r\n (merge final-grammar grammar-ws)))\r\n","~:reader-features",["^A",["~:cljs"]],"~:cljc",true,"~:source-map-compact",["^ ","mappings","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