{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/gams.js"],"names":["module","exports","hljs","KEYWORDS","keyword","literal","built_in","SYMBOLS","className","variants","begin","QSTR","end","illegal","contains","BACKSLASH_ESCAPE","ASSIGNMENT","keywords","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","QUOTE_STRING_MODE","APOS_STRING_MODE","C_NUMBER_MODE","DESCTEXT","excludeBegin","endsWithParent","relevance","name","aliases","case_insensitive","COMMENT","returnBegin","beginKeywords","excludeEnd"],"mappings":"gFAyGAA,EAAOC,QAjGP,SAAcC,GACZ,IAAIC,EAAW,CACbC,QAAS,oVACTC,QAAS,aACTC,SAAU,u3BASRC,EAAU,CACZC,UAAW,SACXC,SAAU,CAAC,CACTC,MAAO,eACN,CACDA,MAAO,QAGPC,EAAO,CAETH,UAAW,UACXC,SAAU,CAAC,CACTC,MAAO,IACPE,IAAK,KACJ,CACDF,MAAO,IACPE,IAAK,MAEPC,QAAS,MACTC,SAAU,CAACZ,EAAKa,mBAEdC,EAAa,CACfN,MAAO,IACPE,IAAK,IACLK,SAAUd,EACVW,SAAU,CAACH,EAAMT,EAAKgB,oBAAqBhB,EAAKiB,qBAAsBjB,EAAKkB,kBAAmBlB,EAAKmB,iBAAkBnB,EAAKoB,gBAExHC,EAAW,CAEbb,MAAO,2CACPc,cAAc,EACdZ,IAAK,IACLa,gBAAgB,EAChBX,SAAU,CAACH,EAAMK,EAAY,CAC3BR,UAAW,UACXE,MAAO,gDACPgB,UAAW,KAGf,MAAO,CACLC,KAAM,OACNC,QAAS,CAAC,OACVC,kBAAkB,EAClBZ,SAAUd,EACVW,SAAU,CAACZ,EAAK4B,QAAQ,YAAa,cAAe,CAClDtB,UAAW,OACXE,MAAO,gBACPE,IAAK,IACLmB,aAAa,EACbjB,SAAU,CAAC,CACTN,UAAW,eACXE,MAAO,mBAERR,EAAK4B,QAAQ,OAAQ,KAAM5B,EAAKgB,oBAAqBhB,EAAKiB,qBAAsBjB,EAAKkB,kBAAmBlB,EAAKmB,iBAChH,CACEW,cAAe,qFACfpB,IAAK,IACLE,SAAU,CAACZ,EAAK4B,QAAQ,OAAQ,KAAM5B,EAAKgB,oBAAqBhB,EAAKiB,qBAAsBjB,EAAKkB,kBAAmBlB,EAAKmB,iBAAkBL,EAAYO,IACrJ,CAEDS,cAAe,QACfpB,IAAK,IACLmB,aAAa,EACbjB,SAAU,CAAC,CAETkB,cAAe,QACfpB,IAAK,IACLE,SAAU,CAACS,IACVrB,EAAK4B,QAAQ,OAAQ,KAAM5B,EAAKgB,oBAAqBhB,EAAKiB,qBAAsBjB,EAAKkB,kBAAmBlB,EAAKmB,iBAAkBnB,EAAKoB,gBAGzI,CACEd,UAAW,WACXE,MAAO,iCACPqB,aAAa,EACbjB,SAAU,CAAC,CAETN,UAAW,QACXE,MAAO,eArFA,CACXF,UAAW,SACXE,MAAO,KACPE,IAAK,KACLY,cAAc,EACdS,YAAY,GAiFC1B,IACVL,EAAKoB,cAAef","file":"react-syntax-highlighter_languages_highlight_gams-5644a0dc4ff13b263bc0.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 */\nfunction gams(hljs) {\n  var KEYWORDS = {\n    keyword: 'abort acronym acronyms alias all and assign binary card diag display ' + 'else eq file files for free ge gt if integer le loop lt maximizing ' + 'minimizing model models ne negative no not option options or ord ' + 'positive prod put putpage puttl repeat sameas semicont semiint smax ' + 'smin solve sos1 sos2 sum system table then until using while xor yes',\n    literal: 'eps inf na',\n    built_in: 'abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy ' + 'cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact ' + 'floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max ' + 'min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power ' + 'randBinomial randLinear randTriangle round rPower sigmoid sign ' + 'signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt ' + 'tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp ' + 'bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt ' + 'rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear ' + 'jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion ' + 'handleCollect handleDelete handleStatus handleSubmit heapFree ' + 'heapLimit heapSize jobHandle jobKill jobStatus jobTerminate ' + 'licenseLevel licenseStatus maxExecError sleep timeClose timeComp ' + 'timeElapsed timeExec timeStart'\n  };\n  var PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true\n  };\n  var SYMBOLS = {\n    className: 'symbol',\n    variants: [{\n      begin: /\\=[lgenxc]=/\n    }, {\n      begin: /\\$/\n    }]\n  };\n  var QSTR = {\n    // One-line quoted comment string\n    className: 'comment',\n    variants: [{\n      begin: '\\'',\n      end: '\\''\n    }, {\n      begin: '\"',\n      end: '\"'\n    }],\n    illegal: '\\\\n',\n    contains: [hljs.BACKSLASH_ESCAPE]\n  };\n  var ASSIGNMENT = {\n    begin: '/',\n    end: '/',\n    keywords: KEYWORDS,\n    contains: [QSTR, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, hljs.C_NUMBER_MODE]\n  };\n  var DESCTEXT = {\n    // 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: [QSTR, ASSIGNMENT, {\n      className: 'comment',\n      begin: /([ ]*[a-z0-9&#*=?@>\\\\<:\\-,()$\\[\\]_.{}!+%^]+)+/,\n      relevance: 0\n    }]\n  };\n  return {\n    name: 'GAMS',\n    aliases: ['gms'],\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    contains: [hljs.COMMENT(/^\\$ontext/, /^\\$offtext/), {\n      className: 'meta',\n      begin: '^\\\\$[a-z0-9]+',\n      end: '$',\n      returnBegin: true,\n      contains: [{\n        className: 'meta-keyword',\n        begin: '^\\\\$[a-z0-9]+'\n      }]\n    }, hljs.COMMENT('^\\\\*', '$'), hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, // Declarations\n    {\n      beginKeywords: 'set sets parameter parameters variable variables ' + 'scalar scalars equation equations',\n      end: ';',\n      contains: [hljs.COMMENT('^\\\\*', '$'), hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, ASSIGNMENT, DESCTEXT]\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      }, hljs.COMMENT('^\\\\*', '$'), hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, hljs.C_NUMBER_MODE // Table does not contain DESCTEXT or ASSIGNMENT\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      }, PARAMS, SYMBOLS]\n    }, hljs.C_NUMBER_MODE, SYMBOLS]\n  };\n}\n\nmodule.exports = gams;"],"sourceRoot":""}