| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | module.exports = function(hljs) {  var KEYWORDS =    'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +    'until while with var';  var LITERALS = 'false true';  var COMMENT_MODES = [    hljs.C_LINE_COMMENT_MODE,    hljs.COMMENT(      /\{/,      /\}/,      {        relevance: 0      }    ),    hljs.COMMENT(      /\(\*/,      /\*\)/,      {        relevance: 10      }    )  ];  var STRING = {    className: 'string',    begin: /'/, end: /'/,    contains: [{begin: /''/}]  };  var CHAR_STRING = {    className: 'string', begin: /(#\d+)+/  };  var DATE = {      className: 'number',      begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',      relevance: 0  };  var DBL_QUOTED_VARIABLE = {      className: 'string', // not a string technically but makes sense to be highlighted in the same style      begin: '"',      end: '"'  };  var PROCEDURE = {    className: 'function',    beginKeywords: 'procedure', end: /[:;]/,    keywords: 'procedure|10',    contains: [      hljs.TITLE_MODE,      {        className: 'params',        begin: /\(/, end: /\)/,        keywords: KEYWORDS,        contains: [STRING, CHAR_STRING]      }    ].concat(COMMENT_MODES)  };  var OBJECT = {    className: 'class',    begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',    returnBegin: true,    contains: [      hljs.TITLE_MODE,        PROCEDURE    ]  };  return {    case_insensitive: true,    keywords: { keyword: KEYWORDS, literal: LITERALS },    illegal: /\/\*/,    contains: [      STRING, CHAR_STRING,      DATE, DBL_QUOTED_VARIABLE,      hljs.NUMBER_MODE,      OBJECT,      PROCEDURE    ]  };};
 |