summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-nevod.min.js
blob: 2243947ca268b1f0ec1e91d42be14f24b542f9f8 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Prism.languages.nevod = {
  comment: /\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,
  string: {
    pattern: /(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,
    greedy: !0,
    inside: { 'string-attrs': /!$|!\*$|\*$/ },
  },
  namespace: {
    pattern: /(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,
    lookbehind: !0,
  },
  pattern: {
    pattern:
      /(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,
    lookbehind: !0,
    inside: {
      'pattern-name': { pattern: /^#?[a-zA-Z0-9\-.]+/, alias: 'class-name' },
      fields: {
        pattern: /\(.*\)/,
        inside: {
          'field-name': { pattern: /[a-zA-Z0-9\-.]+/, alias: 'variable' },
          punctuation: /[,()]/,
          operator: { pattern: /~/, alias: 'field-hidden-mark' },
        },
      },
    },
  },
  search: {
    pattern: /(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,
    alias: 'function',
    lookbehind: !0,
  },
  keyword:
    /@(?:having|inside|namespace|outside|pattern|require|search|where)\b/,
  'standard-pattern': {
    pattern:
      /\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\b(?:\([a-zA-Z0-9\-.,\s+]*\))?/,
    inside: {
      'standard-pattern-name': {
        pattern: /^[a-zA-Z0-9\-.]+/,
        alias: 'builtin',
      },
      quantifier: {
        pattern: /\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,
        alias: 'number',
      },
      'standard-pattern-attr': { pattern: /[a-zA-Z0-9\-.]+/, alias: 'builtin' },
      punctuation: /[,()]/,
    },
  },
  quantifier: { pattern: /\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/, alias: 'number' },
  operator: [
    { pattern: /=/, alias: 'pattern-def' },
    { pattern: /&/, alias: 'conjunction' },
    { pattern: /~/, alias: 'exception' },
    { pattern: /\?/, alias: 'optionality' },
    { pattern: /[[\]]/, alias: 'repetition' },
    { pattern: /[{}]/, alias: 'variation' },
    { pattern: /[+_]/, alias: 'sequence' },
    { pattern: /\.{2,3}/, alias: 'span' },
  ],
  'field-capture': [
    {
      pattern:
        /([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,
      lookbehind: !0,
      inside: {
        'field-name': { pattern: /[a-zA-Z0-9\-.]+/, alias: 'variable' },
        colon: /:/,
      },
    },
    {
      pattern: /[a-zA-Z0-9\-.]+\s*:/,
      inside: {
        'field-name': { pattern: /[a-zA-Z0-9\-.]+/, alias: 'variable' },
        colon: /:/,
      },
    },
  ],
  punctuation: /[:;,()]/,
  name: /[a-zA-Z0-9\-.]+/,
};