aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/abnf.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/abnf.js')
-rw-r--r--node_modules/highlight.js/lib/languages/abnf.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/abnf.js b/node_modules/highlight.js/lib/languages/abnf.js
new file mode 100644
index 000000000..9c5f7b7a6
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/abnf.js
@@ -0,0 +1,70 @@
+module.exports = function(hljs) {
+ var regexes = {
+ ruleDeclaration: "^[a-zA-Z][a-zA-Z0-9-]*",
+ unexpectedChars: "[!@#$^&',?+~`|:]"
+ };
+
+ var keywords = [
+ "ALPHA",
+ "BIT",
+ "CHAR",
+ "CR",
+ "CRLF",
+ "CTL",
+ "DIGIT",
+ "DQUOTE",
+ "HEXDIG",
+ "HTAB",
+ "LF",
+ "LWSP",
+ "OCTET",
+ "SP",
+ "VCHAR",
+ "WSP"
+ ];
+
+ var commentMode = hljs.COMMENT(";", "$");
+
+ var terminalBinaryMode = {
+ className: "symbol",
+ begin: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/
+ };
+
+ var terminalDecimalMode = {
+ className: "symbol",
+ begin: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/
+ };
+
+ var terminalHexadecimalMode = {
+ className: "symbol",
+ begin: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/,
+ };
+
+ var caseSensitivityIndicatorMode = {
+ className: "symbol",
+ begin: /%[si]/
+ };
+
+ var ruleDeclarationMode = {
+ begin: regexes.ruleDeclaration + '\\s*=',
+ returnBegin: true,
+ end: /=/,
+ relevance: 0,
+ contains: [{className: "attribute", begin: regexes.ruleDeclaration}]
+ };
+
+ return {
+ illegal: regexes.unexpectedChars,
+ keywords: keywords.join(" "),
+ contains: [
+ ruleDeclarationMode,
+ commentMode,
+ terminalBinaryMode,
+ terminalDecimalMode,
+ terminalHexadecimalMode,
+ caseSensitivityIndicatorMode,
+ hljs.QUOTE_STRING_MODE,
+ hljs.NUMBER_MODE
+ ]
+ };
+}; \ No newline at end of file