mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 13:58:13 +08:00
27 lines
838 B
JavaScript
27 lines
838 B
JavaScript
|
'use strict'
|
||
|
|
||
|
module.exports = prolog
|
||
|
prolog.displayName = 'prolog'
|
||
|
prolog.aliases = []
|
||
|
function prolog(Prism) {
|
||
|
Prism.languages.prolog = {
|
||
|
// Syntax depends on the implementation
|
||
|
comment: {
|
||
|
pattern: /\/\*[\s\S]*?\*\/|%.*/,
|
||
|
greedy: true
|
||
|
},
|
||
|
// Depending on the implementation, strings may allow escaped newlines and quote-escape
|
||
|
string: {
|
||
|
pattern: /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1(?!\1)/,
|
||
|
greedy: true
|
||
|
},
|
||
|
builtin: /\b(?:fx|fy|xf[xy]?|yfx?)\b/,
|
||
|
// 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: /[(){}\[\],]/
|
||
|
}
|
||
|
}
|