aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/prolog.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/prolog.js')
-rw-r--r--node_modules/highlight.js/lib/languages/prolog.js87
1 files changed, 87 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/prolog.js b/node_modules/highlight.js/lib/languages/prolog.js
new file mode 100644
index 000000000..cf2c60b19
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/prolog.js
@@ -0,0 +1,87 @@
+module.exports = function(hljs) {
+
+ var ATOM = {
+
+ begin: /[a-z][A-Za-z0-9_]*/,
+ relevance: 0
+ };
+
+ var VAR = {
+
+ className: 'symbol',
+ variants: [
+ {begin: /[A-Z][a-zA-Z0-9_]*/},
+ {begin: /_[A-Za-z0-9_]*/},
+ ],
+ relevance: 0
+ };
+
+ var PARENTED = {
+
+ begin: /\(/,
+ end: /\)/,
+ relevance: 0
+ };
+
+ var LIST = {
+
+ begin: /\[/,
+ end: /\]/
+ };
+
+ var LINE_COMMENT = {
+
+ className: 'comment',
+ begin: /%/, end: /$/,
+ contains: [hljs.PHRASAL_WORDS_MODE]
+ };
+
+ var BACKTICK_STRING = {
+
+ className: 'string',
+ begin: /`/, end: /`/,
+ contains: [hljs.BACKSLASH_ESCAPE]
+ };
+
+ var CHAR_CODE = {
+
+ className: 'string', // 0'a etc.
+ begin: /0\'(\\\'|.)/
+ };
+
+ var SPACE_CODE = {
+
+ className: 'string',
+ begin: /0\'\\s/ // 0'\s
+ };
+
+ var PRED_OP = { // relevance booster
+ begin: /:-/
+ };
+
+ var inner = [
+
+ ATOM,
+ VAR,
+ PARENTED,
+ PRED_OP,
+ LIST,
+ LINE_COMMENT,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.APOS_STRING_MODE,
+ BACKTICK_STRING,
+ CHAR_CODE,
+ SPACE_CODE,
+ hljs.C_NUMBER_MODE
+ ];
+
+ PARENTED.contains = inner;
+ LIST.contains = inner;
+
+ return {
+ contains: inner.concat([
+ {begin: /\.$/} // relevance booster
+ ])
+ };
+}; \ No newline at end of file