Urara-Blog/node_modules/.pnpm-store/v3/files/ab/c38364b3eba33bdba9917106217b6c3efc034a01ffe39d860a75c64b9670f01e887ce74a586654fc6c9166c7077ab5636c0e58f3e2bcab6a21cec1e53885c1
2022-08-14 01:14:53 +08:00

19 lines
679 B
Text

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': /[(){}\[\],]/
};