]> luflow.net public git repositories - flow-web.git/blob - static/highlight/es/languages/ebnf.js
Initial commit.
[flow-web.git] / static / highlight / es / languages / ebnf.js
1 /*! `ebnf` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar = (function () {
3 'use strict';
4
5 /*
6 Language: Extended Backus-Naur Form
7 Author: Alex McKibben <alex@nullscope.net>
8 Website: https://en.wikipedia.org/wiki/Extended_Backus–Naur_form
9 Category: syntax
10 */
11
12 /** @type LanguageFn */
13 function ebnf(hljs) {
14 const commentMode = hljs.COMMENT(/\(\*/, /\*\)/);
15
16 const nonTerminalMode = {
17 className: "attribute",
18 begin: /^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/
19 };
20
21 const specialSequenceMode = {
22 className: "meta",
23 begin: /\?.*\?/
24 };
25
26 const ruleBodyMode = {
27 begin: /=/,
28 end: /[.;]/,
29 contains: [
30 commentMode,
31 specialSequenceMode,
32 {
33 // terminals
34 className: 'string',
35 variants: [
36 hljs.APOS_STRING_MODE,
37 hljs.QUOTE_STRING_MODE,
38 {
39 begin: '`',
40 end: '`'
41 }
42 ]
43 }
44 ]
45 };
46
47 return {
48 name: 'Extended Backus-Naur Form',
49 illegal: /\S/,
50 contains: [
51 commentMode,
52 nonTerminalMode,
53 ruleBodyMode
54 ]
55 };
56 }
57
58 return ebnf;
59
60 })();
61 ;
62 export default hljsGrammar;