mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-11-04 12:28:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
Language: Prolog
 | 
						|
Description: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.
 | 
						|
Author: Raivo Laanemets <raivo@infdot.com>
 | 
						|
Website: https://en.wikipedia.org/wiki/Prolog
 | 
						|
*/
 | 
						|
 | 
						|
export default 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 {
 | 
						|
    name: 'Prolog',
 | 
						|
    contains: inner.concat([
 | 
						|
      {begin: /\.$/} // relevance booster
 | 
						|
    ])
 | 
						|
  };
 | 
						|
}
 |