coffeescript function

Mode coffeescript(
  1. Highlight hljs
)

Highlight.js language definition for coffeescript.

Implementation

Mode coffeescript(Highlight hljs) {
  final Mode mode0 = Mode();
  final Mode mode1 = Mode();
  final Mode mode2 = Mode();
  final Mode mode3 = Mode();
  final Mode mode4 = Mode();
  final Mode mode5 = Mode();
  final Mode mode6 = Mode();
  final Mode mode7 = Mode();
  final Mode mode8 = Mode();
  final Mode mode9 = Mode();
  final Mode mode10 = Mode();
  final Mode mode11 = Mode();
  final Mode mode12 = Mode();
  final Mode mode13 = Mode();
  final Mode mode14 = Mode();
  final Mode mode15 = Mode();
  final Mode mode16 = Mode();
  final Mode mode17 = Mode();
  final Mode mode18 = Mode();
  final Mode mode19 = Mode();
  final Mode mode20 = Mode();
  final Mode mode21 = Mode();
  final Mode mode22 = Mode();
  mode0.scope = r'number';
  mode0.begin = r'\b(0b[01]+)';
  mode0.relevance = 0;
  mode1.scope = r'number';
  mode1.begin =
      r'(-?)(\b0[xX][a-fA-F0-9]+|(\b\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?)';
  mode1.relevance = 0;
  mode1.starts = mode2;
  mode2.end = r'(\s*/)?';
  mode2.relevance = 0;
  mode3.scope = r'string';
  mode3.variants = [mode4, mode6, mode7, mode20];
  mode4.begin = r"'''";
  mode4.end = r"'''";
  mode4.contains = [mode5];
  mode5.begin = r'\\[\s\S]';
  mode5.relevance = 0;
  mode6.begin = r"'";
  mode6.end = r"'";
  mode6.contains = [mode5];
  mode7.begin = r'"""';
  mode7.end = r'"""';
  mode7.contains = [mode5, mode8];
  mode8.scope = r'subst';
  mode8.begin = r'#\{';
  mode8.end = r'\}';
  mode8.keywords = {
    r'keyword': [
      r'as',
      r'in',
      r'of',
      r'if',
      r'for',
      r'while',
      r'finally',
      r'new',
      r'do',
      r'return',
      r'void',
      r'else',
      r'break',
      r'catch',
      r'instanceof',
      r'with',
      r'throw',
      r'case',
      r'default',
      r'try',
      r'switch',
      r'continue',
      r'typeof',
      r'delete',
      r'yield',
      r'class',
      r'debugger',
      r'async',
      r'await',
      r'import',
      r'from',
      r'export',
      r'extends',
      r'using',
      r'then',
      r'unless',
      r'until',
      r'loop',
      r'by',
      r'when',
      r'and',
      r'or',
      r'is',
      r'isnt',
      r'not',
    ],
    r'literal': [
      r'true',
      r'false',
      r'null',
      r'undefined',
      r'NaN',
      r'Infinity',
      r'yes',
      r'no',
      r'on',
      r'off',
    ],
    r'built_in': [
      r'setInterval',
      r'setTimeout',
      r'clearInterval',
      r'clearTimeout',
      r'require',
      r'exports',
      r'eval',
      r'isFinite',
      r'isNaN',
      r'parseFloat',
      r'parseInt',
      r'decodeURI',
      r'decodeURIComponent',
      r'encodeURI',
      r'encodeURIComponent',
      r'escape',
      r'unescape',
      r'Object',
      r'Function',
      r'Boolean',
      r'Symbol',
      r'Math',
      r'Date',
      r'Number',
      r'BigInt',
      r'String',
      r'RegExp',
      r'Array',
      r'Float32Array',
      r'Float64Array',
      r'Int8Array',
      r'Uint8Array',
      r'Uint8ClampedArray',
      r'Int16Array',
      r'Int32Array',
      r'Uint16Array',
      r'Uint32Array',
      r'BigInt64Array',
      r'BigUint64Array',
      r'Set',
      r'Map',
      r'WeakSet',
      r'WeakMap',
      r'ArrayBuffer',
      r'SharedArrayBuffer',
      r'Atomics',
      r'DataView',
      r'JSON',
      r'Promise',
      r'Generator',
      r'GeneratorFunction',
      r'AsyncFunction',
      r'Reflect',
      r'Proxy',
      r'Intl',
      r'WebAssembly',
      r'Error',
      r'EvalError',
      r'InternalError',
      r'RangeError',
      r'ReferenceError',
      r'SyntaxError',
      r'TypeError',
      r'URIError',
      r'npm',
      r'print',
    ],
  };
  mode8.contains = [mode0, mode1, mode3, mode9, mode16, mode17];
  mode9.scope = r'regexp';
  mode9.variants = [mode10, mode14, mode15];
  mode10.begin = r'///';
  mode10.end = r'///';
  mode10.contains = [mode8, mode11];
  mode11.scope = r'comment';
  mode11.begin = r'#';
  mode11.end = r'$';
  mode11.contains = [mode12, mode13];
  mode12.scope = r'doctag';
  mode12.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  mode12.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  mode12.excludeBegin = true;
  mode12.relevance = 0;
  mode13.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  mode14.begin = r'//[gim]{0,3}(?=\W)';
  mode14.relevance = 0;
  mode15.begin = r'\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)';
  mode16.begin = r'@[A-Za-z$_][0-9A-Za-z$_]*';
  mode17.subLanguage = r'javascript';
  mode17.excludeBegin = true;
  mode17.excludeEnd = true;
  mode17.variants = [mode18, mode19];
  mode18.begin = r'```';
  mode18.end = r'```';
  mode19.begin = r'`';
  mode19.end = r'`';
  mode20.begin = r'"';
  mode20.end = r'"';
  mode20.contains = [mode5, mode8];
  mode21.scope = r'params';
  mode21.begin = r'\([^\(]';
  mode21.returnBegin = true;
  mode21.contains = [mode22];
  mode22.begin = r'\(';
  mode22.end = r'\)';
  mode22.keywords = {
    r'keyword': [
      r'as',
      r'in',
      r'of',
      r'if',
      r'for',
      r'while',
      r'finally',
      r'new',
      r'do',
      r'return',
      r'void',
      r'else',
      r'break',
      r'catch',
      r'instanceof',
      r'with',
      r'throw',
      r'case',
      r'default',
      r'try',
      r'switch',
      r'continue',
      r'typeof',
      r'delete',
      r'yield',
      r'class',
      r'debugger',
      r'async',
      r'await',
      r'import',
      r'from',
      r'export',
      r'extends',
      r'using',
      r'then',
      r'unless',
      r'until',
      r'loop',
      r'by',
      r'when',
      r'and',
      r'or',
      r'is',
      r'isnt',
      r'not',
    ],
    r'literal': [
      r'true',
      r'false',
      r'null',
      r'undefined',
      r'NaN',
      r'Infinity',
      r'yes',
      r'no',
      r'on',
      r'off',
    ],
    r'built_in': [
      r'setInterval',
      r'setTimeout',
      r'clearInterval',
      r'clearTimeout',
      r'require',
      r'exports',
      r'eval',
      r'isFinite',
      r'isNaN',
      r'parseFloat',
      r'parseInt',
      r'decodeURI',
      r'decodeURIComponent',
      r'encodeURI',
      r'encodeURIComponent',
      r'escape',
      r'unescape',
      r'Object',
      r'Function',
      r'Boolean',
      r'Symbol',
      r'Math',
      r'Date',
      r'Number',
      r'BigInt',
      r'String',
      r'RegExp',
      r'Array',
      r'Float32Array',
      r'Float64Array',
      r'Int8Array',
      r'Uint8Array',
      r'Uint8ClampedArray',
      r'Int16Array',
      r'Int32Array',
      r'Uint16Array',
      r'Uint32Array',
      r'BigInt64Array',
      r'BigUint64Array',
      r'Set',
      r'Map',
      r'WeakSet',
      r'WeakMap',
      r'ArrayBuffer',
      r'SharedArrayBuffer',
      r'Atomics',
      r'DataView',
      r'JSON',
      r'Promise',
      r'Generator',
      r'GeneratorFunction',
      r'AsyncFunction',
      r'Reflect',
      r'Proxy',
      r'Intl',
      r'WebAssembly',
      r'Error',
      r'EvalError',
      r'InternalError',
      r'RangeError',
      r'ReferenceError',
      r'SyntaxError',
      r'TypeError',
      r'URIError',
      r'npm',
      r'print',
    ],
  };
  mode22.contains = [r'self', mode0, mode1, mode3, mode9, mode16, mode17];
  return Mode(
    name: r'CoffeeScript',
    aliases: [r'coffee', r'cson', r'iced'],
    keywords: {
      r'keyword': [
        r'as',
        r'in',
        r'of',
        r'if',
        r'for',
        r'while',
        r'finally',
        r'new',
        r'do',
        r'return',
        r'void',
        r'else',
        r'break',
        r'catch',
        r'instanceof',
        r'with',
        r'throw',
        r'case',
        r'default',
        r'try',
        r'switch',
        r'continue',
        r'typeof',
        r'delete',
        r'yield',
        r'class',
        r'debugger',
        r'async',
        r'await',
        r'import',
        r'from',
        r'export',
        r'extends',
        r'using',
        r'then',
        r'unless',
        r'until',
        r'loop',
        r'by',
        r'when',
        r'and',
        r'or',
        r'is',
        r'isnt',
        r'not',
      ],
      r'literal': [
        r'true',
        r'false',
        r'null',
        r'undefined',
        r'NaN',
        r'Infinity',
        r'yes',
        r'no',
        r'on',
        r'off',
      ],
      r'built_in': [
        r'setInterval',
        r'setTimeout',
        r'clearInterval',
        r'clearTimeout',
        r'require',
        r'exports',
        r'eval',
        r'isFinite',
        r'isNaN',
        r'parseFloat',
        r'parseInt',
        r'decodeURI',
        r'decodeURIComponent',
        r'encodeURI',
        r'encodeURIComponent',
        r'escape',
        r'unescape',
        r'Object',
        r'Function',
        r'Boolean',
        r'Symbol',
        r'Math',
        r'Date',
        r'Number',
        r'BigInt',
        r'String',
        r'RegExp',
        r'Array',
        r'Float32Array',
        r'Float64Array',
        r'Int8Array',
        r'Uint8Array',
        r'Uint8ClampedArray',
        r'Int16Array',
        r'Int32Array',
        r'Uint16Array',
        r'Uint32Array',
        r'BigInt64Array',
        r'BigUint64Array',
        r'Set',
        r'Map',
        r'WeakSet',
        r'WeakMap',
        r'ArrayBuffer',
        r'SharedArrayBuffer',
        r'Atomics',
        r'DataView',
        r'JSON',
        r'Promise',
        r'Generator',
        r'GeneratorFunction',
        r'AsyncFunction',
        r'Reflect',
        r'Proxy',
        r'Intl',
        r'WebAssembly',
        r'Error',
        r'EvalError',
        r'InternalError',
        r'RangeError',
        r'ReferenceError',
        r'SyntaxError',
        r'TypeError',
        r'URIError',
        r'npm',
        r'print',
      ],
    },
    illegal: r'\/\*',
    contains: [
      mode0,
      mode1,
      mode3,
      mode9,
      mode16,
      mode17,
      Mode(
        scope: r'comment',
        begin: r'###',
        end: r'###',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            begin:
                r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
          ),
        ],
      ),
      mode11,
      Mode(
        scope: r'function',
        begin: r'^\s*[A-Za-z$_][0-9A-Za-z$_]*\s*=\s*(\(.*\)\s*)?\B[-=]>',
        end: r'[-=]>',
        returnBegin: true,
        contains: [
          Mode(
            scope: r'title',
            begin: r'[A-Za-z$_][0-9A-Za-z$_]*',
            relevance: 0,
          ),
          mode21,
        ],
      ),
      Mode(
        begin: r'[:\(,=]\s*',
        relevance: 0,
        contains: [
          Mode(
            scope: r'function',
            begin: r'(\(.*\)\s*)?\B[-=]>',
            end: r'[-=]>',
            returnBegin: true,
            contains: [mode21],
          ),
        ],
      ),
      Mode(
        variants: [
          Mode(
            match: [
              r'class\s+',
              r'[A-Za-z$_][0-9A-Za-z$_]*',
              r'\s+extends\s+',
              r'[A-Za-z$_][0-9A-Za-z$_]*',
            ],
          ),
          Mode(match: [r'class\s+', r'[A-Za-z$_][0-9A-Za-z$_]*']),
        ],
        scope: {2: r'title.class', 4: r'title.class.inherited'},
        keywords: {
          r'keyword': [
            r'as',
            r'in',
            r'of',
            r'if',
            r'for',
            r'while',
            r'finally',
            r'new',
            r'do',
            r'return',
            r'void',
            r'else',
            r'break',
            r'catch',
            r'instanceof',
            r'with',
            r'throw',
            r'case',
            r'default',
            r'try',
            r'switch',
            r'continue',
            r'typeof',
            r'delete',
            r'yield',
            r'class',
            r'debugger',
            r'async',
            r'await',
            r'import',
            r'from',
            r'export',
            r'extends',
            r'using',
            r'then',
            r'unless',
            r'until',
            r'loop',
            r'by',
            r'when',
            r'and',
            r'or',
            r'is',
            r'isnt',
            r'not',
          ],
          r'literal': [
            r'true',
            r'false',
            r'null',
            r'undefined',
            r'NaN',
            r'Infinity',
            r'yes',
            r'no',
            r'on',
            r'off',
          ],
          r'built_in': [
            r'setInterval',
            r'setTimeout',
            r'clearInterval',
            r'clearTimeout',
            r'require',
            r'exports',
            r'eval',
            r'isFinite',
            r'isNaN',
            r'parseFloat',
            r'parseInt',
            r'decodeURI',
            r'decodeURIComponent',
            r'encodeURI',
            r'encodeURIComponent',
            r'escape',
            r'unescape',
            r'Object',
            r'Function',
            r'Boolean',
            r'Symbol',
            r'Math',
            r'Date',
            r'Number',
            r'BigInt',
            r'String',
            r'RegExp',
            r'Array',
            r'Float32Array',
            r'Float64Array',
            r'Int8Array',
            r'Uint8Array',
            r'Uint8ClampedArray',
            r'Int16Array',
            r'Int32Array',
            r'Uint16Array',
            r'Uint32Array',
            r'BigInt64Array',
            r'BigUint64Array',
            r'Set',
            r'Map',
            r'WeakSet',
            r'WeakMap',
            r'ArrayBuffer',
            r'SharedArrayBuffer',
            r'Atomics',
            r'DataView',
            r'JSON',
            r'Promise',
            r'Generator',
            r'GeneratorFunction',
            r'AsyncFunction',
            r'Reflect',
            r'Proxy',
            r'Intl',
            r'WebAssembly',
            r'Error',
            r'EvalError',
            r'InternalError',
            r'RangeError',
            r'ReferenceError',
            r'SyntaxError',
            r'TypeError',
            r'URIError',
            r'npm',
            r'print',
          ],
        },
      ),
      Mode(
        begin: r'[A-Za-z$_][0-9A-Za-z$_]*:',
        end: r':',
        returnBegin: true,
        returnEnd: true,
        relevance: 0,
      ),
    ],
  );
}