CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
cal.js161 linesDownload Raw Back to languages
1/*2Language: C/AL3Author: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>4Description: Provides highlighting of Microsoft Dynamics NAV C/AL code files5Website: https://docs.microsoft.com/en-us/dynamics-nav/programming-in-c-al6Category: enterprise7*/8 9/** @type LanguageFn */10function cal(hljs) {11  const regex = hljs.regex;12  const KEYWORDS = [13    "div",14    "mod",15    "in",16    "and",17    "or",18    "not",19    "xor",20    "asserterror",21    "begin",22    "case",23    "do",24    "downto",25    "else",26    "end",27    "exit",28    "for",29    "local",30    "if",31    "of",32    "repeat",33    "then",34    "to",35    "until",36    "while",37    "with",38    "var"39  ];40  const LITERALS = 'false true';41  const COMMENT_MODES = [42    hljs.C_LINE_COMMENT_MODE,43    hljs.COMMENT(44      /\{/,45      /\}/,46      { relevance: 0 }47    ),48    hljs.COMMENT(49      /\(\*/,50      /\*\)/,51      { relevance: 10 }52    )53  ];54  const STRING = {55    className: 'string',56    begin: /'/,57    end: /'/,58    contains: [ { begin: /''/ } ]59  };60  const CHAR_STRING = {61    className: 'string',62    begin: /(#\d+)+/63  };64  const DATE = {65    className: 'number',66    begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',67    relevance: 068  };69  const DBL_QUOTED_VARIABLE = {70    className: 'string', // not a string technically but makes sense to be highlighted in the same style71    begin: '"',72    end: '"'73  };74 75  const PROCEDURE = {76    match: [77      /procedure/,78      /\s+/,79      /[a-zA-Z_][\w@]*/,80      /\s*/81    ],82    scope: {83      1: "keyword",84      3: "title.function"85    },86    contains: [87      {88        className: 'params',89        begin: /\(/,90        end: /\)/,91        keywords: KEYWORDS,92        contains: [93          STRING,94          CHAR_STRING,95          hljs.NUMBER_MODE96        ]97      },98      ...COMMENT_MODES99    ]100  };101 102  const OBJECT_TYPES = [103    "Table",104    "Form",105    "Report",106    "Dataport",107    "Codeunit",108    "XMLport",109    "MenuSuite",110    "Page",111    "Query"112  ];113  const OBJECT = {114    match: [115      /OBJECT/,116      /\s+/,117      regex.either(...OBJECT_TYPES),118      /\s+/,119      /\d+/,120      /\s+(?=[^\s])/,121      /.*/,122      /$/123    ],124    relevance: 3,125    scope: {126      1: "keyword",127      3: "type",128      5: "number",129      7: "title"130    }131  };132 133  const PROPERTY = {134    match: /[\w]+(?=\=)/,135    scope: "attribute",136    relevance: 0137  };138 139  return {140    name: 'C/AL',141    case_insensitive: true,142    keywords: {143      keyword: KEYWORDS,144      literal: LITERALS145    },146    illegal: /\/\*/,147    contains: [148      PROPERTY,149      STRING,150      CHAR_STRING,151      DATE,152      DBL_QUOTED_VARIABLE,153      hljs.NUMBER_MODE,154      OBJECT,155      PROCEDURE156    ]157  };158}159 160export { cal as default };161 
basant307/AI_Governance_Project · CoolFace