{"version":3,"file":"gams.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/gams.js"],"sourcesContent":["/*\n Language: GAMS\n Author: Stefan Bechert <stefan.bechert@gmx.net>\n Contributors: Oleg Efimov <efimovov@gmail.com>, Mikko Kouhia <mikko.kouhia@iki.fi>\n Description: The General Algebraic Modeling System language\n Website: https://www.gams.com\n Category: scientific\n */\n\n/** @type LanguageFn */\nfunction gams(hljs) {\n  const regex = hljs.regex;\n  const KEYWORDS = {\n    keyword:\n      'abort acronym acronyms alias all and assign binary card diag display '\n      + 'else eq file files for free ge gt if integer le loop lt maximizing '\n      + 'minimizing model models ne negative no not option options or ord '\n      + 'positive prod put putpage puttl repeat sameas semicont semiint smax '\n      + 'smin solve sos1 sos2 sum system table then until using while xor yes',\n    literal:\n      'eps inf na',\n    built_in:\n      'abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy '\n      + 'cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact '\n      + 'floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max '\n      + 'min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power '\n      + 'randBinomial randLinear randTriangle round rPower sigmoid sign '\n      + 'signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt '\n      + 'tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp '\n      + 'bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt '\n      + 'rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear '\n      + 'jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion '\n      + 'handleCollect handleDelete handleStatus handleSubmit heapFree '\n      + 'heapLimit heapSize jobHandle jobKill jobStatus jobTerminate '\n      + 'licenseLevel licenseStatus maxExecError sleep timeClose timeComp '\n      + 'timeElapsed timeExec timeStart'\n  };\n  const PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true\n  };\n  const SYMBOLS = {\n    className: 'symbol',\n    variants: [\n      { begin: /=[lgenxc]=/ },\n      { begin: /\\$/ }\n    ]\n  };\n  const QSTR = { // One-line quoted comment string\n    className: 'comment',\n    variants: [\n      {\n        begin: '\\'',\n        end: '\\''\n      },\n      {\n        begin: '\"',\n        end: '\"'\n      }\n    ],\n    illegal: '\\\\n',\n    contains: [ hljs.BACKSLASH_ESCAPE ]\n  };\n  const ASSIGNMENT = {\n    begin: '/',\n    end: '/',\n    keywords: KEYWORDS,\n    contains: [\n      QSTR,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n  const COMMENT_WORD = /[a-z0-9&#*=?@\\\\><:,()$[\\]_.{}!+%^-]+/;\n  const DESCTEXT = { // Parameter/set/variable description text\n    begin: /[a-z][a-z0-9_]*(\\([a-z0-9_, ]*\\))?[ \\t]+/,\n    excludeBegin: true,\n    end: '$',\n    endsWithParent: true,\n    contains: [\n      QSTR,\n      ASSIGNMENT,\n      {\n        className: 'comment',\n        // one comment word, then possibly more\n        begin: regex.concat(\n          COMMENT_WORD,\n          // [ ] because \\s would be too broad (matching newlines)\n          regex.anyNumberOfTimes(regex.concat(/[ ]+/, COMMENT_WORD))\n        ),\n        relevance: 0\n      }\n    ]\n  };\n\n  return {\n    name: 'GAMS',\n    aliases: [ 'gms' ],\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    contains: [\n      hljs.COMMENT(/^\\$ontext/, /^\\$offtext/),\n      {\n        className: 'meta',\n        begin: '^\\\\$[a-z0-9]+',\n        end: '$',\n        returnBegin: true,\n        contains: [\n          {\n            className: 'keyword',\n            begin: '^\\\\$[a-z0-9]+'\n          }\n        ]\n      },\n      hljs.COMMENT('^\\\\*', '$'),\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n      // Declarations\n      {\n        beginKeywords:\n          'set sets parameter parameters variable variables '\n          + 'scalar scalars equation equations',\n        end: ';',\n        contains: [\n          hljs.COMMENT('^\\\\*', '$'),\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          ASSIGNMENT,\n          DESCTEXT\n        ]\n      },\n      { // table environment\n        beginKeywords: 'table',\n        end: ';',\n        returnBegin: true,\n        contains: [\n          { // table header row\n            beginKeywords: 'table',\n            end: '$',\n            contains: [ DESCTEXT ]\n          },\n          hljs.COMMENT('^\\\\*', '$'),\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          hljs.C_NUMBER_MODE\n          // Table does not contain DESCTEXT or ASSIGNMENT\n        ]\n      },\n      // Function definitions\n      {\n        className: 'function',\n        begin: /^[a-z][a-z0-9_,\\-+' ()$]+\\.{2}/,\n        returnBegin: true,\n        contains: [\n          { // Function title\n            className: 'title',\n            begin: /^[a-z0-9_]+/\n          },\n          PARAMS,\n          SYMBOLS\n        ]\n      },\n      hljs.C_NUMBER_MODE,\n      SYMBOLS\n    ]\n  };\n}\n\nmodule.exports = gams;\n"],"names":["gams","hljs","regex","KEYWORDS","PARAMS","SYMBOLS","QSTR","ASSIGNMENT","COMMENT_WORD","DESCTEXT","gams_1"],"mappings":";;;;AAUA,WAASA,EAAKC,GAAM;AAClB,UAAMC,IAAQD,EAAK,OACbE,IAAW;AAAA,MACf,SACE;AAAA,MAKF,SACE;AAAA,MACF,UACE;AAAA,IAcN,GACQC,IAAS;AAAA,MACb,WAAW;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,MACL,cAAc;AAAA,MACd,YAAY;AAAA,IAChB,GACQC,IAAU;AAAA,MACd,WAAW;AAAA,MACX,UAAU;AAAA,QACR,EAAE,OAAO,aAAY;AAAA,QACrB,EAAE,OAAO,KAAI;AAAA;IAEnB,GACQC,IAAO;AAAA;AAAA,MACX,WAAW;AAAA,MACX,UAAU;AAAA,QACR;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA;QAEP;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA;;MAGT,SAAS;AAAA,MACT,UAAU,CAAEL,EAAK,gBAAgB;AAAA,IACrC,GACQM,IAAa;AAAA,MACjB,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAUJ;AAAA,MACV,UAAU;AAAA,QACRG;AAAA,QACAL,EAAK;AAAA,QACLA,EAAK;AAAA,QACLA,EAAK;AAAA,QACLA,EAAK;AAAA,QACLA,EAAK;AAAA;IAEX,GACQO,IAAe,wCACfC,IAAW;AAAA;AAAA,MACf,OAAO;AAAA,MACP,cAAc;AAAA,MACd,KAAK;AAAA,MACL,gBAAgB;AAAA,MAChB,UAAU;AAAA,QACRH;AAAA,QACAC;AAAA,QACA;AAAA,UACE,WAAW;AAAA;AAAA,UAEX,OAAOL,EAAM;AAAA,YACXM;AAAA;AAAA,YAEAN,EAAM,iBAAiBA,EAAM,OAAO,QAAQM,CAAY,CAAC;AAAA;UAE3D,WAAW;AAAA;;IAGnB;AAEE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAE,KAAK;AAAA,MAChB,kBAAkB;AAAA,MAClB,UAAUL;AAAA,MACV,UAAU;AAAA,QACRF,EAAK,QAAQ,aAAa,YAAY;AAAA,QACtC;AAAA,UACE,WAAW;AAAA,UACX,OAAO;AAAA,UACP,KAAK;AAAA,UACL,aAAa;AAAA,UACb,UAAU;AAAA,YACR;AAAA,cACE,WAAW;AAAA,cACX,OAAO;AAAA;;;QAIbA,EAAK,QAAQ,QAAQ,GAAG;AAAA,QACxBA,EAAK;AAAA,QACLA,EAAK;AAAA,QACLA,EAAK;AAAA,QACLA,EAAK;AAAA;AAAA,QAEL;AAAA,UACE,eACE;AAAA,UAEF,KAAK;AAAA,UACL,UAAU;AAAA,YACRA,EAAK,QAAQ,QAAQ,GAAG;AAAA,YACxBA,EAAK;AAAA,YACLA,EAAK;AAAA,YACLA,EAAK;AAAA,YACLA,EAAK;AAAA,YACLM;AAAA,YACAE;AAAA;;QAGJ;AAAA;AAAA,UACE,eAAe;AAAA,UACf,KAAK;AAAA,UACL,aAAa;AAAA,UACb,UAAU;AAAA,YACR;AAAA;AAAA,cACE,eAAe;AAAA,cACf,KAAK;AAAA,cACL,UAAU,CAAEA,CAAQ;AAAA;YAEtBR,EAAK,QAAQ,QAAQ,GAAG;AAAA,YACxBA,EAAK;AAAA,YACLA,EAAK;AAAA,YACLA,EAAK;AAAA,YACLA,EAAK;AAAA,YACLA,EAAK;AAAA;AAAA;;;QAKT;AAAA,UACE,WAAW;AAAA,UACX,OAAO;AAAA,UACP,aAAa;AAAA,UACb,UAAU;AAAA,YACR;AAAA;AAAA,cACE,WAAW;AAAA,cACX,OAAO;AAAA;YAETG;AAAA,YACAC;AAAA;;QAGJJ,EAAK;AAAA,QACLI;AAAA;IAEN;AAAA,EACA;AAEA,SAAAK,IAAiBV;;","x_google_ignoreList":[0]}