{"version":3,"file":"cal.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/cal.js"],"sourcesContent":["/*\nLanguage: C/AL\nAuthor: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>\nDescription: Provides highlighting of Microsoft Dynamics NAV C/AL code files\nWebsite: https://docs.microsoft.com/en-us/dynamics-nav/programming-in-c-al\nCategory: enterprise\n*/\n\n/** @type LanguageFn */\nfunction cal(hljs) {\n  const regex = hljs.regex;\n  const KEYWORDS = [\n    \"div\",\n    \"mod\",\n    \"in\",\n    \"and\",\n    \"or\",\n    \"not\",\n    \"xor\",\n    \"asserterror\",\n    \"begin\",\n    \"case\",\n    \"do\",\n    \"downto\",\n    \"else\",\n    \"end\",\n    \"exit\",\n    \"for\",\n    \"local\",\n    \"if\",\n    \"of\",\n    \"repeat\",\n    \"then\",\n    \"to\",\n    \"until\",\n    \"while\",\n    \"with\",\n    \"var\"\n  ];\n  const LITERALS = 'false true';\n  const COMMENT_MODES = [\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.COMMENT(\n      /\\{/,\n      /\\}/,\n      { relevance: 0 }\n    ),\n    hljs.COMMENT(\n      /\\(\\*/,\n      /\\*\\)/,\n      { relevance: 10 }\n    )\n  ];\n  const STRING = {\n    className: 'string',\n    begin: /'/,\n    end: /'/,\n    contains: [ { begin: /''/ } ]\n  };\n  const CHAR_STRING = {\n    className: 'string',\n    begin: /(#\\d+)+/\n  };\n  const DATE = {\n    className: 'number',\n    begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(DT|D|T)',\n    relevance: 0\n  };\n  const DBL_QUOTED_VARIABLE = {\n    className: 'string', // not a string technically but makes sense to be highlighted in the same style\n    begin: '\"',\n    end: '\"'\n  };\n\n  const PROCEDURE = {\n    match: [\n      /procedure/,\n      /\\s+/,\n      /[a-zA-Z_][\\w@]*/,\n      /\\s*/\n    ],\n    scope: {\n      1: \"keyword\",\n      3: \"title.function\"\n    },\n    contains: [\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: KEYWORDS,\n        contains: [\n          STRING,\n          CHAR_STRING,\n          hljs.NUMBER_MODE\n        ]\n      },\n      ...COMMENT_MODES\n    ]\n  };\n\n  const OBJECT_TYPES = [\n    \"Table\",\n    \"Form\",\n    \"Report\",\n    \"Dataport\",\n    \"Codeunit\",\n    \"XMLport\",\n    \"MenuSuite\",\n    \"Page\",\n    \"Query\"\n  ];\n  const OBJECT = {\n    match: [\n      /OBJECT/,\n      /\\s+/,\n      regex.either(...OBJECT_TYPES),\n      /\\s+/,\n      /\\d+/,\n      /\\s+(?=[^\\s])/,\n      /.*/,\n      /$/\n    ],\n    relevance: 3,\n    scope: {\n      1: \"keyword\",\n      3: \"type\",\n      5: \"number\",\n      7: \"title\"\n    }\n  };\n\n  const PROPERTY = {\n    match: /[\\w]+(?=\\=)/,\n    scope: \"attribute\",\n    relevance: 0\n  };\n\n  return {\n    name: 'C/AL',\n    case_insensitive: true,\n    keywords: {\n      keyword: KEYWORDS,\n      literal: LITERALS\n    },\n    illegal: /\\/\\*/,\n    contains: [\n      PROPERTY,\n      STRING,\n      CHAR_STRING,\n      DATE,\n      DBL_QUOTED_VARIABLE,\n      hljs.NUMBER_MODE,\n      OBJECT,\n      PROCEDURE\n    ]\n  };\n}\n\nmodule.exports = cal;\n"],"names":["cal","hljs","regex","KEYWORDS","LITERALS","COMMENT_MODES","STRING","CHAR_STRING","DATE","DBL_QUOTED_VARIABLE","PROCEDURE","OBJECT_TYPES","OBJECT","cal_1"],"mappings":";;;;AASA,WAASA,EAAIC,GAAM;AACjB,UAAMC,IAAQD,EAAK,OACbE,IAAW;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,GACQC,IAAW,cACXC,IAAgB;AAAA,MACpBJ,EAAK;AAAA,MACLA,EAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,EAAE,WAAW,EAAC;AAAA;MAEhBA,EAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,EAAE,WAAW,GAAE;AAAA;IAErB,GACQK,IAAS;AAAA,MACb,WAAW;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAU,CAAE,EAAE,OAAO,KAAI,CAAE;AAAA,IAC/B,GACQC,IAAc;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA,IACX,GACQC,IAAO;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,IACf,GACQC,IAAsB;AAAA,MAC1B,WAAW;AAAA;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,IACT,GAEQC,IAAY;AAAA,MAChB,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;MAEF,OAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAG;AAAA;MAEL,UAAU;AAAA,QACR;AAAA,UACE,WAAW;AAAA,UACX,OAAO;AAAA,UACP,KAAK;AAAA,UACL,UAAUP;AAAA,UACV,UAAU;AAAA,YACRG;AAAA,YACAC;AAAA,YACAN,EAAK;AAAA;;QAGT,GAAGI;AAAA;IAET,GAEQM,IAAe;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,GACQC,IAAS;AAAA,MACb,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACAV,EAAM,OAAO,GAAGS,CAAY;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;MAEF,WAAW;AAAA,MACX,OAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA;IAET;AAQE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,kBAAkB;AAAA,MAClB,UAAU;AAAA,QACR,SAASR;AAAA,QACT,SAASC;AAAA;MAEX,SAAS;AAAA,MACT,UAAU;AAAA,QAdK;AAAA,UACf,OAAO;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,QACf;AAAA,QAYME;AAAA,QACAC;AAAA,QACAC;AAAA,QACAC;AAAA,QACAR,EAAK;AAAA,QACLW;AAAA,QACAF;AAAA;IAEN;AAAA,EACA;AAEA,SAAAG,IAAiBb;;","x_google_ignoreList":[0]}