aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-bison.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-bison.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-bison.js')
-rw-r--r--public/prism/prism-bison.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/public/prism/prism-bison.js b/public/prism/prism-bison.js
new file mode 100644
index 0000000..2d150f1
--- /dev/null
+++ b/public/prism/prism-bison.js
@@ -0,0 +1,39 @@
+Prism.languages.bison = Prism.languages.extend('c', {});
+
+Prism.languages.insertBefore('bison', 'comment', {
+ bison: {
+ // This should match all the beginning of the file
+ // including the prologue(s), the bison declarations and
+ // the grammar rules.
+ pattern: /^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,
+ inside: {
+ c: {
+ // Allow for one level of nested braces
+ pattern: /%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,
+ inside: {
+ delimiter: {
+ pattern: /^%?\{|%?\}$/,
+ alias: 'punctuation',
+ },
+ 'bison-variable': {
+ pattern: /[$@](?:<[^\s>]+>)?[\w$]+/,
+ alias: 'variable',
+ inside: {
+ punctuation: /<|>/,
+ },
+ },
+ rest: Prism.languages.c,
+ },
+ },
+ comment: Prism.languages.c.comment,
+ string: Prism.languages.c.string,
+ property: /\S+(?=:)/,
+ keyword: /%\w+/,
+ number: {
+ pattern: /(^|[^@])\b(?:0x[\da-f]+|\d+)/i,
+ lookbehind: true,
+ },
+ punctuation: /%[%?]|[|:;\[\]<>]/,
+ },
+ },
+});