UNPKG

1.2 kBJavaScriptView Raw
1(function (Prism) {
2
3 var coreRules = '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)';
4
5 Prism.languages.abnf = {
6 'comment': /;.*/,
7 'string': {
8 pattern: /(?:%[is])?"[^"\n\r]*"/,
9 greedy: true,
10 inside: {
11 'punctuation': /^%[is]/
12 }
13 },
14 'range': {
15 pattern: /%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,
16 alias: 'number'
17 },
18 'terminal': {
19 pattern: /%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,
20 alias: 'number'
21 },
22 'repetition': {
23 pattern: /(^|[^\w-])(?:\d*\*\d*|\d+)/,
24 lookbehind: true,
25 alias: 'operator'
26 },
27 'definition': {
28 pattern: /(^[ \t]*)(?:[a-z][\w-]*|<[^>\r\n]*>)(?=\s*=)/m,
29 lookbehind: true,
30 alias: 'keyword',
31 inside: {
32 'punctuation': /<|>/
33 }
34 },
35 'core-rule': {
36 pattern: RegExp('(?:(^|[^<\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\w-])', 'i'),
37 lookbehind: true,
38 alias: ['rule', 'constant'],
39 inside: {
40 'punctuation': /<|>/
41 }
42 },
43 'rule': {
44 pattern: /(^|[^<\w-])[a-z][\w-]*|<[^>\r\n]*>/i,
45 lookbehind: true,
46 inside: {
47 'punctuation': /<|>/
48 }
49 },
50 'operator': /=\/?|\//,
51 'punctuation': /[()\[\]]/
52 };
53
54})(Prism);