{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/mercury.js"],"names":["module","exports","hljs","COMMENT","ATOM","inherit","APOS_STRING_MODE","relevance","STRING","QUOTE_STRING_MODE","contains","slice","push","className","begin","name","aliases","keywords","keyword","meta","built_in","variants","C_BLOCK_COMMENT_MODE","NUMBER_MODE"],"mappings":"gFAwEAA,EAAOC,QAlEP,SAAiBC,GACf,IAOIC,EAAUD,EAAKC,QAAQ,IAAK,KAK5BC,EAAOF,EAAKG,QAAQH,EAAKI,iBAAkB,CAC7CC,UAAW,IAETC,EAASN,EAAKG,QAAQH,EAAKO,kBAAmB,CAChDF,UAAW,IAmCb,OA5BAC,EAAOE,SAAWF,EAAOE,SAASC,QAElCH,EAAOE,SAASE,KAPC,CACfC,UAAW,QACXC,MAAO,wEACPP,UAAW,IA8BN,CACLQ,KAAM,UACNC,QAAS,CAAC,IAAK,OACfC,SAtDa,CACbC,QAAS,odACTC,KACA,grBAEAC,SAAU,qIAkDVV,SAAU,CA7BM,CAChBG,UAAW,WACXQ,SAAU,CAAC,CACTP,MAAO,OACN,CACDA,MAAO,KACPP,UAAW,GACV,CACDO,MAAO,KACPP,UAAW,GACV,CACDO,MAAO,SACN,CACDA,MAAO,WAGiB,CAC1BD,UAAW,WACXQ,SAAU,CAAC,CACTP,MAAO,eACN,CACDA,MAAO,IACPP,UAAW,KAOkCJ,EAASD,EAAKoB,qBA/CjD,CACZT,UAAW,SACXC,MAAO,4BA6CqFZ,EAAKqB,YAAanB,EAAMI,EAAQ,CAC1HM,MAAO,MAET,CACEA,MAAO","file":"react-syntax-highlighter_languages_highlight_mercury-4f47b343390d4bb04014.js","sourcesContent":["/*\nLanguage: Mercury\nAuthor: mucaho <mkucko@gmail.com>\nDescription: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.\nWebsite: https://www.mercurylang.org\n*/\nfunction mercury(hljs) {\n  var KEYWORDS = {\n    keyword: 'module use_module import_module include_module end_module initialise ' + 'mutable initialize finalize finalise interface implementation pred ' + 'mode func type inst solver any_pred any_func is semidet det nondet ' + 'multi erroneous failure cc_nondet cc_multi typeclass instance where ' + 'pragma promise external trace atomic or_else require_complete_switch ' + 'require_det require_semidet require_multi require_nondet ' + 'require_cc_multi require_cc_nondet require_erroneous require_failure',\n    meta: // pragma\n    'inline no_inline type_spec source_file fact_table obsolete memo ' + 'loop_check minimal_model terminates does_not_terminate ' + 'check_termination promise_equivalent_clauses ' + // preprocessor\n    'foreign_proc foreign_decl foreign_code foreign_type ' + 'foreign_import_module foreign_export_enum foreign_export ' + 'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' + 'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' + 'tabled_for_io local untrailed trailed attach_to_io_state ' + 'can_pass_as_mercury_type stable will_not_throw_exception ' + 'may_modify_trail will_not_modify_trail may_duplicate ' + 'may_not_duplicate affects_liveness does_not_affect_liveness ' + 'doesnt_affect_liveness no_sharing unknown_sharing sharing',\n    built_in: 'some all not if then else true fail false try catch catch_any ' + 'semidet_true semidet_false semidet_fail impure_true impure semipure'\n  };\n  var COMMENT = hljs.COMMENT('%', '$');\n  var NUMCODE = {\n    className: 'number',\n    begin: \"0'.\\\\|0[box][0-9a-fA-F]*\"\n  };\n  var ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {\n    relevance: 0\n  });\n  var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    relevance: 0\n  });\n  var STRING_FMT = {\n    className: 'subst',\n    begin: '\\\\\\\\[abfnrtv]\\\\|\\\\\\\\x[0-9a-fA-F]*\\\\\\\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',\n    relevance: 0\n  };\n  STRING.contains = STRING.contains.slice(); // we need our own copy of contains\n\n  STRING.contains.push(STRING_FMT);\n  var IMPLICATION = {\n    className: 'built_in',\n    variants: [{\n      begin: '<=>'\n    }, {\n      begin: '<=',\n      relevance: 0\n    }, {\n      begin: '=>',\n      relevance: 0\n    }, {\n      begin: '/\\\\\\\\'\n    }, {\n      begin: '\\\\\\\\/'\n    }]\n  };\n  var HEAD_BODY_CONJUNCTION = {\n    className: 'built_in',\n    variants: [{\n      begin: ':-\\\\|-->'\n    }, {\n      begin: '=',\n      relevance: 0\n    }]\n  };\n  return {\n    name: 'Mercury',\n    aliases: ['m', 'moo'],\n    keywords: KEYWORDS,\n    contains: [IMPLICATION, HEAD_BODY_CONJUNCTION, COMMENT, hljs.C_BLOCK_COMMENT_MODE, NUMCODE, hljs.NUMBER_MODE, ATOM, STRING, {\n      begin: /:-/\n    }, // relevance booster\n    {\n      begin: /\\.$/\n    } // relevance booster\n    ]\n  };\n}\n\nmodule.exports = mercury;"],"sourceRoot":""}