basant307/AI_Governance_Project
048
1/*2Language: Extended Backus-Naur Form3Author: Alex McKibben <alex@nullscope.net>4Website: https://en.wikipedia.org/wiki/Extended_Backus–Naur_form5Category: syntax6*/7 8/** @type LanguageFn */9function ebnf(hljs) {10 const commentMode = hljs.COMMENT(/\(\*/, /\*\)/);11 12 const nonTerminalMode = {13 className: "attribute",14 begin: /^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/15 };16 17 const specialSequenceMode = {18 className: "meta",19 begin: /\?.*\?/20 };21 22 const ruleBodyMode = {23 begin: /=/,24 end: /[.;]/,25 contains: [26 commentMode,27 specialSequenceMode,28 {29 // terminals30 className: 'string',31 variants: [32 hljs.APOS_STRING_MODE,33 hljs.QUOTE_STRING_MODE,34 {35 begin: '`',36 end: '`'37 }38 ]39 }40 ]41 };42 43 return {44 name: 'Extended Backus-Naur Form',45 illegal: /\S/,46 contains: [47 commentMode,48 nonTerminalMode,49 ruleBodyMode50 ]51 };52}53 54export { ebnf as default };55 