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