aboutsummaryrefslogtreecommitdiff
path: root/node_modules/prismjs/components/prism-bison.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/prismjs/components/prism-bison.js')
-rw-r--r--node_modules/prismjs/components/prism-bison.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/prismjs/components/prism-bison.js b/node_modules/prismjs/components/prism-bison.js
new file mode 100644
index 00000000..9a65a537
--- /dev/null
+++ b/node_modules/prismjs/components/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]*?%%[\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': /%[%?]|[|:;\[\]<>]/
+ }
+ }
+}); \ No newline at end of file