mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-08 23:18:17 +08:00
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
'use strict'
|
|
var refractorC = require('./c.js')
|
|
module.exports = bison
|
|
bison.displayName = 'bison'
|
|
bison.aliases = []
|
|
function bison(Prism) {
|
|
Prism.register(refractorC)
|
|
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: /%[%?]|[|:;\[\]<>]/
|
|
}
|
|
}
|
|
})
|
|
}
|