summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-abnf.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
committerArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
commita98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch)
tree542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-abnf.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-abnf.js')
-rw-r--r--public/prism/prism-abnf.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/public/prism/prism-abnf.js b/public/prism/prism-abnf.js
new file mode 100644
index 0000000..39385f4
--- /dev/null
+++ b/public/prism/prism-abnf.js
@@ -0,0 +1,57 @@
+(function (Prism) {
+ var coreRules =
+ '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)';
+
+ Prism.languages.abnf = {
+ comment: /;.*/,
+ string: {
+ pattern: /(?:%[is])?"[^"\n\r]*"/,
+ greedy: true,
+ inside: {
+ punctuation: /^%[is]/,
+ },
+ },
+ range: {
+ pattern: /%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,
+ alias: 'number',
+ },
+ terminal: {
+ pattern:
+ /%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,
+ alias: 'number',
+ },
+ repetition: {
+ pattern: /(^|[^\w-])(?:\d*\*\d*|\d+)/,
+ lookbehind: true,
+ alias: 'operator',
+ },
+ definition: {
+ pattern: /(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,
+ lookbehind: true,
+ alias: 'keyword',
+ inside: {
+ punctuation: /<|>/,
+ },
+ },
+ 'core-rule': {
+ pattern: RegExp(
+ '(?:(^|[^<\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\w-])',
+ 'i'
+ ),
+ lookbehind: true,
+ alias: ['rule', 'constant'],
+ inside: {
+ punctuation: /<|>/,
+ },
+ },
+ rule: {
+ pattern: /(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,
+ lookbehind: true,
+ inside: {
+ punctuation: /<|>/,
+ },
+ },
+ operator: /=\/?|\//,
+ punctuation: /[()\[\]]/,
+ };
+})(Prism);