| Index: lib/src/prism/components/prism-bison.js
|
| diff --git a/lib/src/prism/components/prism-bison.js b/lib/src/prism/components/prism-bison.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9a65a537d191f8831b75e3828ece5180dcbd49d3
|
| --- /dev/null
|
| +++ b/lib/src/prism/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': /%[%?]|[|:;\[\]<>]/
|
| + }
|
| + }
|
| +});
|
|
|