mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-30 18:07:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			165 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
 | |
| /*
 | |
|  Language: GAMS
 | |
|  Author: Stefan Bechert <stefan.bechert@gmx.net>
 | |
|  Contributors: Oleg Efimov <efimovov@gmail.com>, Mikko Kouhia <mikko.kouhia@iki.fi>
 | |
|  Description: The General Algebraic Modeling System language
 | |
|  Website: https://www.gams.com
 | |
|  Category: scientific
 | |
|  */
 | |
| 
 | |
| export default function (hljs) {
 | |
|   var KEYWORDS = {
 | |
|     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',
 | |
|     literal: 'eps inf na',
 | |
|     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'
 | |
|   };
 | |
|   var PARAMS = {
 | |
|     className: 'params',
 | |
|     begin: /\(/, end: /\)/,
 | |
|     excludeBegin: true,
 | |
|     excludeEnd: true,
 | |
|   };
 | |
|   var SYMBOLS = {
 | |
|     className: 'symbol',
 | |
|     variants: [
 | |
|       {begin: /\=[lgenxc]=/},
 | |
|       {begin: /\$/},
 | |
|     ]
 | |
|   };
 | |
|   var QSTR = { // One-line quoted comment string
 | |
|     className: 'comment',
 | |
|     variants: [
 | |
|       {begin: '\'', end: '\''},
 | |
|       {begin: '"', end: '"'},
 | |
|     ],
 | |
|     illegal: '\\n',
 | |
|     contains: [hljs.BACKSLASH_ESCAPE]
 | |
|   };
 | |
|   var ASSIGNMENT = {
 | |
|     begin: '/',
 | |
|     end: '/',
 | |
|     keywords: KEYWORDS,
 | |
|     contains: [
 | |
|       QSTR,
 | |
|       hljs.C_LINE_COMMENT_MODE,
 | |
|       hljs.C_BLOCK_COMMENT_MODE,
 | |
|       hljs.QUOTE_STRING_MODE,
 | |
|       hljs.APOS_STRING_MODE,
 | |
|       hljs.C_NUMBER_MODE,
 | |
|     ],
 | |
|   };
 | |
|   var DESCTEXT = { // Parameter/set/variable description text
 | |
|     begin: /[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,
 | |
|     excludeBegin: true,
 | |
|     end: '$',
 | |
|     endsWithParent: true,
 | |
|     contains: [
 | |
|       QSTR,
 | |
|       ASSIGNMENT,
 | |
|       {
 | |
|         className: 'comment',
 | |
|         begin: /([ ]*[a-z0-9&#*=?@>\\<:\-,()$\[\]_.{}!+%^]+)+/,
 | |
|         relevance: 0
 | |
|       },
 | |
|     ],
 | |
|   };
 | |
| 
 | |
|   return {
 | |
|     name: 'GAMS',
 | |
|     aliases: ['gms'],
 | |
|     case_insensitive: true,
 | |
|     keywords: KEYWORDS,
 | |
|     contains: [
 | |
|       hljs.COMMENT(/^\$ontext/, /^\$offtext/),
 | |
|       {
 | |
|         className: 'meta',
 | |
|         begin: '^\\$[a-z0-9]+',
 | |
|         end: '$',
 | |
|         returnBegin: true,
 | |
|         contains: [
 | |
|           {
 | |
|             className: 'meta-keyword',
 | |
|             begin: '^\\$[a-z0-9]+',
 | |
|           }
 | |
|         ]
 | |
|       },
 | |
|       hljs.COMMENT('^\\*', '$'),
 | |
|       hljs.C_LINE_COMMENT_MODE,
 | |
|       hljs.C_BLOCK_COMMENT_MODE,
 | |
|       hljs.QUOTE_STRING_MODE,
 | |
|       hljs.APOS_STRING_MODE,
 | |
|       // Declarations
 | |
|       {
 | |
|         beginKeywords:
 | |
|           'set sets parameter parameters variable variables ' +
 | |
|           'scalar scalars equation equations',
 | |
|         end: ';',
 | |
|         contains: [
 | |
|           hljs.COMMENT('^\\*', '$'),
 | |
|           hljs.C_LINE_COMMENT_MODE,
 | |
|           hljs.C_BLOCK_COMMENT_MODE,
 | |
|           hljs.QUOTE_STRING_MODE,
 | |
|           hljs.APOS_STRING_MODE,
 | |
|           ASSIGNMENT,
 | |
|           DESCTEXT,
 | |
|         ]
 | |
|       },
 | |
|       { // table environment
 | |
|         beginKeywords: 'table',
 | |
|         end: ';',
 | |
|         returnBegin: true,
 | |
|         contains: [
 | |
|           { // table header row
 | |
|             beginKeywords: 'table',
 | |
|             end: '$',
 | |
|             contains: [DESCTEXT],
 | |
|           },
 | |
|           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
 | |
|         ]
 | |
|       },
 | |
|       // Function definitions
 | |
|       {
 | |
|         className: 'function',
 | |
|         begin: /^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,
 | |
|         returnBegin: true,
 | |
|         contains: [
 | |
|               { // Function title
 | |
|                 className: 'title',
 | |
|                 begin: /^[a-z0-9_]+/,
 | |
|               },
 | |
|               PARAMS,
 | |
|               SYMBOLS,
 | |
|             ],
 | |
|       },
 | |
|       hljs.C_NUMBER_MODE,
 | |
|       SYMBOLS,
 | |
|     ]
 | |
|   };
 | |
| }
 |