basant307/AI_Governance_Project
048
1/*2Language: Prolog3Description: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.4Author: Raivo Laanemets <raivo@infdot.com>5Website: https://en.wikipedia.org/wiki/Prolog6Category: functional7*/8 9function prolog(hljs) {10 const ATOM = {11 12 begin: /[a-z][A-Za-z0-9_]*/,13 relevance: 014 };15 16 const VAR = {17 18 className: 'symbol',19 variants: [20 { begin: /[A-Z][a-zA-Z0-9_]*/ },21 { begin: /_[A-Za-z0-9_]*/ }22 ],23 relevance: 024 };25 26 const PARENTED = {27 28 begin: /\(/,29 end: /\)/,30 relevance: 031 };32 33 const LIST = {34 35 begin: /\[/,36 end: /\]/37 };38 39 const LINE_COMMENT = {40 41 className: 'comment',42 begin: /%/,43 end: /$/,44 contains: [ hljs.PHRASAL_WORDS_MODE ]45 };46 47 const BACKTICK_STRING = {48 49 className: 'string',50 begin: /`/,51 end: /`/,52 contains: [ hljs.BACKSLASH_ESCAPE ]53 };54 55 const CHAR_CODE = {56 className: 'string', // 0'a etc.57 begin: /0'(\\'|.)/58 };59 60 const SPACE_CODE = {61 className: 'string',62 begin: /0'\\s/ // 0'\s63 };64 65 const PRED_OP = { // relevance booster66 begin: /:-/ };67 68 const inner = [69 70 ATOM,71 VAR,72 PARENTED,73 PRED_OP,74 LIST,75 LINE_COMMENT,76 hljs.C_BLOCK_COMMENT_MODE,77 hljs.QUOTE_STRING_MODE,78 hljs.APOS_STRING_MODE,79 BACKTICK_STRING,80 CHAR_CODE,81 SPACE_CODE,82 hljs.C_NUMBER_MODE83 ];84 85 PARENTED.contains = inner;86 LIST.contains = inner;87 88 return {89 name: 'Prolog',90 contains: inner.concat([91 { // relevance booster92 begin: /\.$/ }93 ])94 };95}96 97export { prolog as default };98 