{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/clojure.js"],"names":["module","exports","hljs","SYMBOL_RE","globals","keywords","$pattern","SYMBOL","begin","relevance","NUMBER","className","STRING","inherit","QUOTE_STRING_MODE","illegal","COMMENT","LITERAL","COLLECTION","end","HINT","HINT_COL","KEY","LIST","BODY","endsWithParent","NAME","starts","DEFAULT_CONTAINS","GLOBAL","beginKeywords","lexemes","contains","excludeEnd","endsParent","concat","name","aliases"],"mappings":"8EA2FAA,EAAOC,QAlFP,SAAiBC,GACf,IACIC,EAAY,wDACZC,EAAU,6FACVC,EAAW,CACbC,SAAUH,EACV,eACAC,29EAGEG,EAAS,CACXC,MAAOL,EACPM,UAAW,GAETC,EAAS,CACXC,UAAW,SACXH,MAPqB,sBAQrBC,UAAW,GAETG,EAASV,EAAKW,QAAQX,EAAKY,kBAAmB,CAChDC,QAAS,OAEPC,EAAUd,EAAKc,QAAQ,IAAK,IAAK,CACnCP,UAAW,IAETQ,EAAU,CACZN,UAAW,UACXH,MAAO,wBAELU,EAAa,CACfV,MAAO,WACPW,IAAK,YAEHC,EAAO,CACTT,UAAW,UACXH,MAAO,MAAQL,GAEbkB,EAAWnB,EAAKc,QAAQ,SAAU,OAClCM,EAAM,CACRX,UAAW,SACXH,MAAO,WAAaL,GAElBoB,EAAO,CACTf,MAAO,MACPW,IAAK,OAEHK,EAAO,CACTC,gBAAgB,EAChBhB,UAAW,GAETiB,EAAO,CACTrB,SAAUA,EACVM,UAAW,OACXH,MAAOL,EACPwB,OAAQH,GAENI,EAAmB,CAACL,EAAMX,EAAQQ,EAAMC,EAAUL,EAASM,EAAKJ,EAAYR,EAAQO,EAASV,GAC7FsB,EAAS,CACXC,cAAe1B,EACf2B,QAAS5B,EACTgB,IAAK,kCACLa,SAAU,CAAC,CACTrB,UAAW,QACXH,MAAOL,EACPM,UAAW,EACXwB,YAAY,EAEZC,YAAY,IACXC,OAAOP,IAMZ,OAJAL,EAAKS,SAAW,CAAC9B,EAAKc,QAAQ,UAAW,IAAKa,EAAQH,EAAMF,GAC5DA,EAAKQ,SAAWJ,EAChBV,EAAWc,SAAWJ,EACtBP,EAASW,SAAW,CAACd,GACd,CACLkB,KAAM,UACNC,QAAS,CAAC,OACVtB,QAAS,KACTiB,SAAU,CAACT,EAAMX,EAAQQ,EAAMC,EAAUL,EAASM,EAAKJ,EAAYR,EAAQO","file":"react-syntax-highlighter_languages_highlight_clojure-5ff9f862fd063930bd77.js","sourcesContent":["/*\nLanguage: Clojure\nDescription: Clojure syntax (based on lisp.js)\nAuthor: mfornos\nWebsite: https://clojure.org\nCategory: lisp\n*/\n\n/** @type LanguageFn */\nfunction clojure(hljs) {\n  var SYMBOLSTART = 'a-zA-Z_\\\\-!.?+*=<>&#\\'';\n  var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';\n  var globals = 'def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord';\n  var keywords = {\n    $pattern: SYMBOL_RE,\n    'builtin-name': // Clojure keywords\n    globals + ' ' + 'cond apply if-not if-let if not not= = < > <= >= == + / * - rem ' + 'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? ' + 'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? ' + 'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? ' + 'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . ' + 'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last ' + 'drop-while while intern condp case reduced cycle split-at split-with repeat replicate ' + 'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext ' + 'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends ' + 'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler ' + 'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter ' + 'monitor-exit macroexpand macroexpand-1 for dosync and or ' + 'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert ' + 'peek pop doto proxy first rest cons cast coll last butlast ' + 'sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import ' + 'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! ' + 'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger ' + 'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline ' + 'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking ' + 'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! ' + 'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! ' + 'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty ' + 'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list ' + 'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer ' + 'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate ' + 'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta ' + 'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'\n  };\n  var SIMPLE_NUMBER_RE = '[-+]?\\\\d+(\\\\.\\\\d+)?';\n  var SYMBOL = {\n    begin: SYMBOL_RE,\n    relevance: 0\n  };\n  var NUMBER = {\n    className: 'number',\n    begin: SIMPLE_NUMBER_RE,\n    relevance: 0\n  };\n  var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    illegal: null\n  });\n  var COMMENT = hljs.COMMENT(';', '$', {\n    relevance: 0\n  });\n  var LITERAL = {\n    className: 'literal',\n    begin: /\\b(true|false|nil)\\b/\n  };\n  var COLLECTION = {\n    begin: '[\\\\[\\\\{]',\n    end: '[\\\\]\\\\}]'\n  };\n  var HINT = {\n    className: 'comment',\n    begin: '\\\\^' + SYMBOL_RE\n  };\n  var HINT_COL = hljs.COMMENT('\\\\^\\\\{', '\\\\}');\n  var KEY = {\n    className: 'symbol',\n    begin: '[:]{1,2}' + SYMBOL_RE\n  };\n  var LIST = {\n    begin: '\\\\(',\n    end: '\\\\)'\n  };\n  var BODY = {\n    endsWithParent: true,\n    relevance: 0\n  };\n  var NAME = {\n    keywords: keywords,\n    className: 'name',\n    begin: SYMBOL_RE,\n    starts: BODY\n  };\n  var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];\n  var GLOBAL = {\n    beginKeywords: globals,\n    lexemes: SYMBOL_RE,\n    end: '(\\\\[|\\\\#|\\\\d|\"|:|\\\\{|\\\\)|\\\\(|$)',\n    contains: [{\n      className: 'title',\n      begin: SYMBOL_RE,\n      relevance: 0,\n      excludeEnd: true,\n      // we can only have a single title\n      endsParent: true\n    }].concat(DEFAULT_CONTAINS)\n  };\n  LIST.contains = [hljs.COMMENT('comment', ''), GLOBAL, NAME, BODY];\n  BODY.contains = DEFAULT_CONTAINS;\n  COLLECTION.contains = DEFAULT_CONTAINS;\n  HINT_COL.contains = [COLLECTION];\n  return {\n    name: 'Clojure',\n    aliases: ['clj'],\n    illegal: /\\S/,\n    contains: [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]\n  };\n}\n\nmodule.exports = clojure;"],"sourceRoot":""}