knowledgebase_law/node_modules/refractor/lang/ebnf.js

28 lines
616 B
JavaScript
Raw Normal View History

2025-04-11 23:47:09 +08:00
'use strict'
module.exports = ebnf
ebnf.displayName = 'ebnf'
ebnf.aliases = []
function ebnf(Prism) {
Prism.languages.ebnf = {
comment: /\(\*[\s\S]*?\*\)/,
string: {
pattern: /"[^"\r\n]*"|'[^'\r\n]*'/,
greedy: true
},
special: {
pattern: /\?[^?\r\n]*\?/,
greedy: true,
alias: 'class-name'
},
definition: {
pattern: /^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,
lookbehind: true,
alias: ['rule', 'keyword']
},
rule: /\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,
punctuation: /\([:/]|[:/]\)|[.,;()[\]{}]/,
operator: /[-=|*/!]/
}
}