mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-30 18:07:42 +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
 | |
|     ])
 | |
|   };
 | |
| }
 |