CS-Notes/docs/_style/prism-master/components/prism-prolog.js
2018-12-19 14:09:39 +08:00

20 lines
676 B
Java

Prism.languages.prolog = {
// Syntax depends on the implementation
'comment': [
/%.+/,
/\/\*[\s\S]*?\*\//
],
// Depending on the implementation, strings may allow escaped newlines and quote-escape
'string': {
pattern: /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
greedy: true
},
'builtin': /\b(?:fx|fy|xf[xy]?|yfx?)\b/,
'variable': /\b[A-Z_]\w*/,
// FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?
'function': /\b[a-z]\w*(?:(?=\()|\/\d+)/,
'number': /\b\d+\.?\d*/,
// Custom operators are allowed
'operator': /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,
'punctuation': /[(){}\[\],]/
};