| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | 
							- /**
 
-  * @param {string} value
 
-  * @returns {RegExp}
 
-  * */
 
- /**
 
-  * @param {RegExp | string } re
 
-  * @returns {string}
 
-  */
 
- function source(re) {
 
-   if (!re) return null;
 
-   if (typeof re === "string") return re;
 
-   return re.source;
 
- }
 
- /**
 
-  * @param {...(RegExp | string) } args
 
-  * @returns {string}
 
-  */
 
- function concat(...args) {
 
-   const joined = args.map((x) => source(x)).join("");
 
-   return joined;
 
- }
 
- /*
 
- Language: Augmented Backus-Naur Form
 
- Author: Alex McKibben <alex@nullscope.net>
 
- Website: https://tools.ietf.org/html/rfc5234
 
- Audit: 2020
 
- */
 
- /** @type LanguageFn */
 
- function abnf(hljs) {
 
-   const regexes = {
 
-     ruleDeclaration: /^[a-zA-Z][a-zA-Z0-9-]*/,
 
-     unexpectedChars: /[!@#$^&',?+~`|:]/
 
-   };
 
-   const keywords = [
 
-     "ALPHA",
 
-     "BIT",
 
-     "CHAR",
 
-     "CR",
 
-     "CRLF",
 
-     "CTL",
 
-     "DIGIT",
 
-     "DQUOTE",
 
-     "HEXDIG",
 
-     "HTAB",
 
-     "LF",
 
-     "LWSP",
 
-     "OCTET",
 
-     "SP",
 
-     "VCHAR",
 
-     "WSP"
 
-   ];
 
-   const commentMode = hljs.COMMENT(/;/, /$/);
 
-   const terminalBinaryMode = {
 
-     className: "symbol",
 
-     begin: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/
 
-   };
 
-   const terminalDecimalMode = {
 
-     className: "symbol",
 
-     begin: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/
 
-   };
 
-   const terminalHexadecimalMode = {
 
-     className: "symbol",
 
-     begin: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/
 
-   };
 
-   const caseSensitivityIndicatorMode = {
 
-     className: "symbol",
 
-     begin: /%[si]/
 
-   };
 
-   const ruleDeclarationMode = {
 
-     className: "attribute",
 
-     begin: concat(regexes.ruleDeclaration, /(?=\s*=)/)
 
-   };
 
-   return {
 
-     name: 'Augmented Backus-Naur Form',
 
-     illegal: regexes.unexpectedChars,
 
-     keywords: keywords,
 
-     contains: [
 
-       ruleDeclarationMode,
 
-       commentMode,
 
-       terminalBinaryMode,
 
-       terminalDecimalMode,
 
-       terminalHexadecimalMode,
 
-       caseSensitivityIndicatorMode,
 
-       hljs.QUOTE_STRING_MODE,
 
-       hljs.NUMBER_MODE
 
-     ]
 
-   };
 
- }
 
- module.exports = abnf;
 
 
  |