aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-odin.min.js
blob: 2ffc5e21765c6b3448d697a76d5a5147d5860c32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
!(function (e) {
  var t =
    /\\(?:["'\\abefnrtv]|0[0-7]{2}|U[\dA-Fa-f]{6}|u[\dA-Fa-f]{4}|x[\dA-Fa-f]{2})/;
  e.languages.odin = {
    comment: [
      {
        pattern:
          /\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:\*(?!\/)|[^*])*(?:\*\/|$))*(?:\*\/|$)/,
        greedy: !0,
      },
      { pattern: /#![^\n\r]*/, greedy: !0 },
      { pattern: /\/\/[^\n\r]*/, greedy: !0 },
    ],
    char: {
      pattern: /'(?:\\(?:.|[0Uux][0-9A-Fa-f]{1,6})|[^\n\r'\\])'/,
      greedy: !0,
      inside: { symbol: t },
    },
    string: [
      { pattern: /`[^`]*`/, greedy: !0 },
      { pattern: /"(?:\\.|[^\n\r"\\])*"/, greedy: !0, inside: { symbol: t } },
    ],
    directive: { pattern: /#\w+/, alias: 'property' },
    number:
      /\b0(?:b[01_]+|d[\d_]+|h_*(?:(?:(?:[\dA-Fa-f]_*){8}){1,2}|(?:[\dA-Fa-f]_*){4})|o[0-7_]+|x[\dA-F_a-f]+|z[\dAB_ab]+)\b|(?:\b\d+(?:\.(?!\.)\d*)?|\B\.\d+)(?:[Ee][+-]?\d*)?[ijk]?(?!\w)/,
    discard: { pattern: /\b_\b/, alias: 'keyword' },
    'procedure-definition': {
      pattern: /\b\w+(?=[ \t]*(?::\s*){2}proc\b)/,
      alias: 'function',
    },
    keyword:
      /\b(?:asm|auto_cast|bit_set|break|case|cast|context|continue|defer|distinct|do|dynamic|else|enum|fallthrough|for|foreign|if|import|in|map|matrix|not_in|or_else|or_return|package|proc|return|struct|switch|transmute|typeid|union|using|when|where)\b/,
    'procedure-name': { pattern: /\b\w+(?=[ \t]*\()/, alias: 'function' },
    boolean: /\b(?:false|nil|true)\b/,
    'constant-parameter-sign': { pattern: /\$/, alias: 'important' },
    undefined: { pattern: /---/, alias: 'operator' },
    arrow: { pattern: /->/, alias: 'punctuation' },
    operator: /\+\+|--|\.\.[<=]?|(?:&~|[-!*+/=~]|[%&<>|]{1,2})=?|[?^]/,
    punctuation: /[(),.:;@\[\]{}]/,
  };
})(Prism);