-
Notifications
You must be signed in to change notification settings - Fork 1
/
EBNF.c
124 lines (66 loc) · 2.69 KB
/
EBNF.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
B L O C K M L M A R K U P E L E M E N T
markupElement = selector block {block}.
selector = string.
block = "[" content "]".
content = {markupElement | string}.
string = UTF8Character {UTF8Character}.
B L O C K M L E B N F
document = {textBlock | blockTag}.
textBlock = text ["LF" [paragraph]].
text = (string | inlineTag) {string | inlineTag}.
paragraph = "LF" {"LF"} textBlock.
string = UTF8Character {UTF8Character}.
blockTag = tableOfContent | title | frontpage | pageBreak
section | image | math | code | heading | list |
quote | table | caption | bibliography | love | html.
inlineTag = footnote | link | inlineHTML | styleModifier |
inlineCode | inlineMath.
/*/////////////////////////////////////////////////////////////*/
/* BlockTag */
/*/////////////////////////////////////////////////////////////*/
title = "title[" string "]".
tableOfContent = "toc[" string "]".
head = "head[" {title | heading | image } "]".
pageBreak = "pb[]".
section = "sec[" string "]""[" document "]" |
"sec[" string "]""[" document "]""[" string "]".
heading = heading1 |...| heading6.
heading1 = "h1[" string "]". // heading2 - heading6 are equivalent
imgage = "img[" string "]""[" number "," number "]" |
"img[" string "]".
math = "math[" string "]".
code = "code[" string "]""[" string "]".
list = unorderedList | orderedList.
unorderedList = "ul[" {listItem | list | "LF"} "]".
orderedList = "ol[" {listItem | list | "LF"} "]".
listItem = ["-"] text.
quote = "q[" textBlock "]""[" text "]" |
"q[" textBlock "]".
caption = "cap[" string "]""[" text "]" |
"cap[" string "]""[" text "]""[" string "]".
bibliography = "bib[" string "]""[" text "]".
table = "table[" {tableRow} "]".
tableRow = "tr[" {tableHeader | tableData} "]".
tableHeader = "th[" document "]""[" string "]".
tableData = "td[" document "]""[" string "]".
html = "html[" string "]".
// credit = "<3[]".
// download = "dl[]".
/*/////////////////////////////////////////////////////////////*/
/* InlineTag */
/*/////////////////////////////////////////////////////////////*/
footnote = "fn[" text "]".
link = "a[" string "]""[" string "]" |
"a[" string "]".
inlineHTML = "ih[" string "]".
inlineMath = "im[" string "]".
styleModifier = bold | italic | inlineCode | marked | strikethrough | underline | sup | sub.
bold = "b[" string "]".
italic = "i[" string "]".
inlineCode = "c[" string "]".
marked = "m[" string "]".
strikethrough = "s[" string "]".
underline = "u[" string "]".
sub = "sub[" string "]".
sup = "sup[" string "]".
identifier = "id[" string "]".