-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREGEXgrammar.txt
132 lines (99 loc) · 1.83 KB
/
REGEXgrammar.txt
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
REGEX =
| TERM REGEX'
REGEX' =
| ε
| '|' REGEX
TERM =
| CHAR TERM'
TERM' =
| ε
| TERM
| '+' TERM
| '*' TERM
CHAR =
| ε
| a-z of A-Z
| '(' REGEX ')'
| '\' CHAR
| '[' SET ']'
SET =
| character SET'
| '( REGEX ')' SET'
| character '-' character SET'
SET' =
| ε
| SET
============================================================================================================================
= Version 2 =
============================================================================================================================
REGEX =
| TERM
| TERM '|' REGEX
TERM =
| CHAR
| CHAR TERM’
TERM’ =
| TERM
| '+'
| '*'
| ‘?’
| '+' TERM
| '*' TERM
| ‘?’ TERM
CHAR =
| ALPHANUM
| SYMBOL
| '(' EXP ')'
| '[' SET ']'
SET =
| SET'
| SET' SET
ALPHANUM =
| A ... Z
| a ... z
| 0 ... 9
SYMBOL =
| ‘\’ any_character
| ‘_’
| ‘-‘
SET' =
| ALPHANUM
| SYMBOL
| ALPHANUM '-' ALPHANUM
============================================================================================================================
= Version 3 =
============================================================================================================================
<regexp> ::=
| <union>
| <concat>
<union> ::=
| <regexp> "|" <concat>
<concat> ::=
| <term><concat>
| <term>
<term> ::=
| <star>
| <element>
<star> ::=
|<element>*
<element> ::=
| <group>
| <char>
| <emptySet>
| <emptyStr>
<group> ::=
| (<regexp>)
<char> ::=
| <alphanum>
| <symbol>
| <white>
<alphanum> ::=
| A ... Z
| A ... Z
| 0 ... 1
<symbol> ::=
<sp> ::=
<metachar> ::=
<white> ::=
<tab> ::=
<vtab> ::= <nline> ::= <emptySet> ::= <emptyStr> ::=