/*! `scilab` grammar compiled for Highlight.js 11.10.0 */
var hljsGrammar = (function () {
  'use strict';

  /*
  Language: Scilab
  Author: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com>
  Origin: matlab.js
  Description: Scilab is a port from Matlab
  Website: https://www.scilab.org
  Category: scientific
  */

  function scilab(hljs) {
    const COMMON_CONTAINS = [
      hljs.C_NUMBER_MODE,
      {
        className: 'string',
        begin: '\'|\"',
        end: '\'|\"',
        contains: [
          hljs.BACKSLASH_ESCAPE,
          { begin: '\'\'' }
        ]
      }
    ];

    return {
      name: 'Scilab',
      aliases: [ 'sci' ],
      keywords: {
        $pattern: /%?\w+/,
        keyword: 'abort break case clear catch continue do elseif else endfunction end for function '
          + 'global if pause return resume select try then while',
        literal:
          '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',
        built_in: // Scilab has more than 2000 functions. Just list the most commons
         'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error '
         + 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty '
         + 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log '
         + 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real '
         + 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan '
         + 'type typename warning zeros matrix'
      },
      illegal: '("|#|/\\*|\\s+/\\w+)',
      contains: [
        {
          className: 'function',
          beginKeywords: 'function',
          end: '$',
          contains: [
            hljs.UNDERSCORE_TITLE_MODE,
            {
              className: 'params',
              begin: '\\(',
              end: '\\)'
            }
          ]
        },
        // seems to be a guard against [ident]' or [ident].
        // perhaps to prevent attributes from flagging as keywords?
        {
          begin: '[a-zA-Z_][a-zA-Z_0-9]*[\\.\']+',
          relevance: 0
        },
        {
          begin: '\\[',
          end: '\\][\\.\']*',
          relevance: 0,
          contains: COMMON_CONTAINS
        },
        hljs.COMMENT('//', '$')
      ].concat(COMMON_CONTAINS)
    };
  }

  return scilab;

})();
;
export default hljsGrammar;