aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/ebnf.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/ebnf.js')
-rw-r--r--node_modules/highlight.js/lib/languages/ebnf.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/ebnf.js b/node_modules/highlight.js/lib/languages/ebnf.js
new file mode 100644
index 000000000..eccc3cc46
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/ebnf.js
@@ -0,0 +1,32 @@
+module.exports = function(hljs) {
+ var commentMode = hljs.COMMENT(/\(\*/, /\*\)/);
+
+ var nonTerminalMode = {
+ className: "attribute",
+ begin: /^[ ]*[a-zA-Z][a-zA-Z-]*([\s-]+[a-zA-Z][a-zA-Z]*)*/
+ };
+
+ var specialSequenceMode = {
+ className: "meta",
+ begin: /\?.*\?/
+ };
+
+ var ruleBodyMode = {
+ begin: /=/, end: /;/,
+ contains: [
+ commentMode,
+ specialSequenceMode,
+ // terminals
+ hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE
+ ]
+ };
+
+ return {
+ illegal: /\S/,
+ contains: [
+ commentMode,
+ nonTerminalMode,
+ ruleBodyMode
+ ]
+ };
+}; \ No newline at end of file