summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-prolog.min.js
blob: 26cd926d83b979d56a204f7cfaef457f2fb12647 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
Prism.languages.prolog = {
  comment: { pattern: /\/\*[\s\S]*?\*\/|%.*/, greedy: !0 },
  string: {
    pattern: /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1(?!\1)/,
    greedy: !0,
  },
  builtin: /\b(?:fx|fy|xf[xy]?|yfx?)\b/,
  function: /\b[a-z]\w*(?:(?=\()|\/\d+)/,
  number: /\b\d+(?:\.\d*)?/,
  operator: /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,
  punctuation: /[(){}\[\],]/,
};
pan> // normal string /"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source, /'[^']*'/.source, /\$'(?:[^'\\]|\\[\s\S])*'/.source, // here doc // 2 capturing groups /<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source, ].join('|'); Prism.languages['shell-session'] = { command: { pattern: RegExp( // user info /^/.source + '(?:' + // <user> ":" ( <path> )? (/[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/ .source + '|' + // <path> // Since the path pattern is quite general, we will require it to start with a special character to // prevent false positives. /[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source) + ')?' + // shell symbol /[$#%](?=\s)/.source + // bash command /(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<<str>>)+/.source.replace( /<<str>>/g, function () { return strings; } ), 'm' ), greedy: true, inside: { info: { // foo@bar:~/files$ exit // foo@bar$ exit // ~/files$ exit pattern: /^[^#$%]+/, alias: 'punctuation', inside: { user: /^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/, punctuation: /:/, path: /[\s\S]+/, }, }, bash: { pattern: /(^[$#%]\s*)\S[\s\S]*/, lookbehind: true, alias: 'language-bash', inside: Prism.languages.bash, }, 'shell-symbol': { pattern: /^[$#%]/, alias: 'important', }, }, }, output: /.(?:.*(?:[\r\n]|.$))*/, }; Prism.languages['sh-session'] = Prism.languages['shellsession'] = Prism.languages['shell-session']; })(Prism);