1 | Prism.languages.parser = Prism.languages.extend('markup', {
|
2 | 'keyword': {
|
3 | pattern: /(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,
|
4 | lookbehind: true
|
5 | },
|
6 | 'variable': {
|
7 | pattern: /(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,
|
8 | lookbehind: true,
|
9 | inside: {
|
10 | 'punctuation': /\.|:+/
|
11 | }
|
12 | },
|
13 | 'function': {
|
14 | pattern: /(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,
|
15 | lookbehind: true,
|
16 | inside: {
|
17 | 'keyword': {
|
18 | pattern: /(^@)(?:GET_|SET_)/,
|
19 | lookbehind: true
|
20 | },
|
21 | 'punctuation': /\.|:+/
|
22 | }
|
23 | },
|
24 | 'escape': {
|
25 | pattern: /\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,
|
26 | alias: 'builtin'
|
27 | },
|
28 | 'punctuation': /[\[\](){};]/
|
29 | });
|
30 | Prism.languages.insertBefore('parser', 'keyword', {
|
31 | 'parser-comment': {
|
32 | pattern: /(\s)#.*/,
|
33 | lookbehind: true,
|
34 | alias: 'comment'
|
35 | },
|
36 | 'expression': {
|
37 |
|
38 | pattern: /(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,
|
39 | greedy: true,
|
40 | lookbehind: true,
|
41 | inside: {
|
42 | 'string': {
|
43 | pattern: /(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,
|
44 | lookbehind: true
|
45 | },
|
46 | 'keyword': Prism.languages.parser.keyword,
|
47 | 'variable': Prism.languages.parser.variable,
|
48 | 'function': Prism.languages.parser.function,
|
49 | 'boolean': /\b(?:true|false)\b/,
|
50 | 'number': /\b(?:0x[a-f\d]+|\d+\.?\d*(?:e[+-]?\d+)?)\b/i,
|
51 | 'escape': Prism.languages.parser.escape,
|
52 | 'operator': /[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,
|
53 | 'punctuation': Prism.languages.parser.punctuation
|
54 | }
|
55 | }
|
56 | });
|
57 | Prism.languages.insertBefore('inside', 'punctuation', {
|
58 | 'expression': Prism.languages.parser.expression,
|
59 | 'keyword': Prism.languages.parser.keyword,
|
60 | 'variable': Prism.languages.parser.variable,
|
61 | 'function': Prism.languages.parser.function,
|
62 | 'escape': Prism.languages.parser.escape,
|
63 | 'parser-punctuation': {
|
64 | pattern: Prism.languages.parser.punctuation,
|
65 | alias: 'punctuation'
|
66 | }
|
67 | }, Prism.languages.parser['tag'].inside['attr-value']); |
\ | No newline at end of file |