(function (Prism) { Prism.languages.xeora = Prism.languages.extend('markup', { constant: { pattern: /\$(?:DomainContents|PageRenderDuration)\$/, inside: { punctuation: { pattern: /\$/, }, }, }, variable: { pattern: /\$@?(?:#+|[-+*~=^])?[\w.]+\$/, inside: { punctuation: { pattern: /[$.]/, }, operator: { pattern: /#+|[-+*~=^@]/, }, }, }, 'function-inline': { pattern: /\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/, inside: { variable: { pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/, inside: { punctuation: { pattern: /[,.|]/, }, operator: { pattern: /#+|[-+*~=^@]/, }, }, }, punctuation: { pattern: /\$\w:|[$:?.,|]/, }, }, alias: 'function', }, 'function-block': { pattern: /\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/, inside: { punctuation: { pattern: /[$:{}?.,|]/, }, }, alias: 'function', }, 'directive-inline': { pattern: /\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/, inside: { punctuation: { pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/, inside: { tag: { pattern: /#\d/, }, }, }, }, alias: 'function', }, 'directive-block-open': { pattern: /\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/, inside: { punctuation: { pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/, inside: { tag: { pattern: /#\d/, }, }, }, attribute: { pattern: /![A-Z]+$/, inside: { punctuation: { pattern: /!/, }, }, alias: 'keyword', }, }, alias: 'function', }, 'directive-block-separator': { pattern: /\}:[-\w.]+:\{/, inside: { punctuation: { pattern: /[:{}]/, }, }, alias: 'function', }, 'directive-block-close': { pattern: /\}:[-\w.]+\$/, inside: { punctuation: { pattern: /[:{}$]/, }, }, alias: 'function', }, }); Prism.languages.insertBefore( 'inside', 'punctuation', { variable: Prism.languages.xeora['function-inline'].inside['variable'], }, Prism.languages.xeora['function-block'] ); Prism.languages.xeoracube = Prism.languages.xeora; })(Prism); lic/prism/prism-sml.min.js?h=v1.1.0&id=9004b22d7fb53f9dc98e65e4f450589b5d78cbd5'>prism-sml.min.js
blob: 16ab61268db42466331ba2bae8b7a88e718b6a52 (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
!(function (e) {
  var n =
    /\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;
  (e.languages.sml = {
    comment:
      /\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,
    string: { pattern: /#?"(?:[^"\\]|\\.)*"/, greedy: !0 },
    'class-name': [
      {
        pattern: RegExp(
          '((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*'
            .replace(/<NOT-LAST>/g, function () {
              return '\\s*(?:[*,]|->)';
            })
            .replace(/<TERMINAL>/g, function () {
              return "(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*";
            })
            .replace(/<LONG-ID>/g, function () {
              return "(?!<KEYWORD>)[a-z\\d_][\\w'.]*";
            })
            .replace(/<KEYWORD>/g, function () {
              return n.source;
            }),
          'i'
        ),
        lookbehind: !0,
        greedy: !0,
        inside: null,
      },
      {
        pattern:
          /((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,
        lookbehind: !0,
      },
    ],
    function: { pattern: /((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i, lookbehind: !0 },
    keyword: n,
    variable: { pattern: /(^|[^\w'])'[\w']*/, lookbehind: !0 },
    number: /~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,
    word: { pattern: /\b0w(?:\d+|x[\da-f]+)\b/i, alias: 'constant' },
    boolean: /\b(?:false|true)\b/i,
    operator: /\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,
    punctuation: /[(){}\[\].:,;]/,
  }),
    (e.languages.sml['class-name'][0].inside = e.languages.sml),
    (e.languages.smlnj = e.languages.sml);
})(Prism);