diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:10:37 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:11:17 +0200 |
commit | 7a3df06eb573d36142bd1a8e03c5ce8752d300b3 (patch) | |
tree | 70bfaea8884c374876f607774850a3a51c0cb381 /node_modules/highlight.js/lib/languages/mercury.js | |
parent | aca1143cb9eed16cf37f04e475e4257418dd18ac (diff) |
fix build issues and add typedoc
Diffstat (limited to 'node_modules/highlight.js/lib/languages/mercury.js')
-rw-r--r-- | node_modules/highlight.js/lib/languages/mercury.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/mercury.js b/node_modules/highlight.js/lib/languages/mercury.js new file mode 100644 index 000000000..32568449d --- /dev/null +++ b/node_modules/highlight.js/lib/languages/mercury.js @@ -0,0 +1,81 @@ +module.exports = function(hljs) { + var KEYWORDS = { + 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', + meta: + // pragma + '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 + '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', + 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' + }; + + var COMMENT = hljs.COMMENT('%', '$'); + + var NUMCODE = { + className: 'number', + begin: "0'.\\|0[box][0-9a-fA-F]*" + }; + + var ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {relevance: 0}); + var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {relevance: 0}); + var STRING_FMT = { + className: 'subst', + begin: '\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]', + relevance: 0 + }; + STRING.contains.push(STRING_FMT); + + var IMPLICATION = { + className: 'built_in', + variants: [ + {begin: '<=>'}, + {begin: '<=', relevance: 0}, + {begin: '=>', relevance: 0}, + {begin: '/\\\\'}, + {begin: '\\\\/'} + ] + }; + + var HEAD_BODY_CONJUNCTION = { + className: 'built_in', + variants: [ + {begin: ':-\\|-->'}, + {begin: '=', relevance: 0} + ] + }; + + return { + aliases: ['m', 'moo'], + keywords: KEYWORDS, + contains: [ + IMPLICATION, + HEAD_BODY_CONJUNCTION, + COMMENT, + hljs.C_BLOCK_COMMENT_MODE, + NUMCODE, + hljs.NUMBER_MODE, + ATOM, + STRING, + {begin: /:-/} // relevance booster + ] + }; +};
\ No newline at end of file |