{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/cal.js"],"names":["module","exports","hljs","KEYWORDS","COMMENT_MODES","C_LINE_COMMENT_MODE","COMMENT","relevance","STRING","className","begin","end","contains","CHAR_STRING","PROCEDURE","beginKeywords","keywords","TITLE_MODE","concat","OBJECT","returnBegin","name","case_insensitive","keyword","literal","illegal","NUMBER_MODE"],"mappings":"8EAsEAA,EAAOC,QA9DP,SAAaC,GACX,IAAIC,EAAW,yHAEXC,EAAgB,CAACF,EAAKG,oBAAqBH,EAAKI,QAAQ,KAAM,KAAM,CACtEC,UAAW,IACTL,EAAKI,QAAQ,OAAQ,OAAQ,CAC/BC,UAAW,MAETC,EAAS,CACXC,UAAW,SACXC,MAAO,IACPC,IAAK,IACLC,SAAU,CAAC,CACTF,MAAO,QAGPG,EAAc,CAChBJ,UAAW,SACXC,MAAO,WAaLI,EAAY,CACdL,UAAW,WACXM,cAAe,YACfJ,IAAK,OACLK,SAAU,eACVJ,SAAU,CAACV,EAAKe,WAAY,CAC1BR,UAAW,SACXC,MAAO,KACPC,IAAK,KACLK,SAAUb,EACVS,SAAU,CAACJ,EAAQK,KAClBK,OAAOd,IAERe,EAAS,CACXV,UAAW,QACXC,MAAO,gGACPU,aAAa,EACbR,SAAU,CAACV,EAAKe,WAAYH,IAE9B,MAAO,CACLO,KAAM,OACNC,kBAAkB,EAClBN,SAAU,CACRO,QAASpB,EACTqB,QArDW,cAuDbC,QAAS,OACTb,SAAU,CAACJ,EAAQK,EAtCV,CACTJ,UAAW,SACXC,MAAO,4BACPH,UAAW,GAEa,CACxBE,UAAW,SAEXC,MAAO,IACPC,IAAK,KA6BsDT,EAAKwB,YAAaP,EAAQL","file":"react-syntax-highlighter_languages_highlight_cal-cf14de5a1c0a7c806ab3.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\n*/\n\n/** @type LanguageFn */\nfunction cal(hljs) {\n  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';\n  var LITERALS = 'false true';\n  var COMMENT_MODES = [hljs.C_LINE_COMMENT_MODE, hljs.COMMENT(/\\{/, /\\}/, {\n    relevance: 0\n  }), hljs.COMMENT(/\\(\\*/, /\\*\\)/, {\n    relevance: 10\n  })];\n  var STRING = {\n    className: 'string',\n    begin: /'/,\n    end: /'/,\n    contains: [{\n      begin: /''/\n    }]\n  };\n  var CHAR_STRING = {\n    className: 'string',\n    begin: /(#\\d+)+/\n  };\n  var DATE = {\n    className: 'number',\n    begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(DT|D|T)',\n    relevance: 0\n  };\n  var DBL_QUOTED_VARIABLE = {\n    className: 'string',\n    // not a string technically but makes sense to be highlighted in the same style\n    begin: '\"',\n    end: '\"'\n  };\n  var PROCEDURE = {\n    className: 'function',\n    beginKeywords: 'procedure',\n    end: /[:;]/,\n    keywords: 'procedure|10',\n    contains: [hljs.TITLE_MODE, {\n      className: 'params',\n      begin: /\\(/,\n      end: /\\)/,\n      keywords: KEYWORDS,\n      contains: [STRING, CHAR_STRING]\n    }].concat(COMMENT_MODES)\n  };\n  var OBJECT = {\n    className: 'class',\n    begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\\\d+) ([^\\\\r\\\\n]+)',\n    returnBegin: true,\n    contains: [hljs.TITLE_MODE, PROCEDURE]\n  };\n  return {\n    name: 'C/AL',\n    case_insensitive: true,\n    keywords: {\n      keyword: KEYWORDS,\n      literal: LITERALS\n    },\n    illegal: /\\/\\*/,\n    contains: [STRING, CHAR_STRING, DATE, DBL_QUOTED_VARIABLE, hljs.NUMBER_MODE, OBJECT, PROCEDURE]\n  };\n}\n\nmodule.exports = cal;"],"sourceRoot":""}