refractor
Version:
Lightweight, robust, elegant virtual syntax highlighting using Prism
31 lines (29 loc) • 624 B
JavaScript
// @ts-nocheck
/**
* @import {Refractor} from '../lib/core.js'
*/
bnf.displayName = 'bnf'
bnf.aliases = ['rbnf']
/** @param {Refractor} Prism */
export default function bnf(Prism) {
Prism.languages.bnf = {
string: {
pattern: /"[^\r\n"]*"|'[^\r\n']*'/
},
definition: {
pattern: /<[^<>\r\n\t]+>(?=\s*::=)/,
alias: ['rule', 'keyword'],
inside: {
punctuation: /^<|>$/
}
},
rule: {
pattern: /<[^<>\r\n\t]+>/,
inside: {
punctuation: /^<|>$/
}
},
operator: /::=|[|()[\]{}*+?]|\.{3}/
}
Prism.languages.rbnf = Prism.languages.bnf
}