5
5
export default function grammar ( ) {
6
6
// ```
7
7
// SUMMARY
8
- // rules = 12
8
+ // rules = 9
9
9
// udts = 0
10
- // opcodes = 87
10
+ // opcodes = 62
11
11
// --- ABNF original opcodes
12
- // ALT = 9
12
+ // ALT = 6
13
13
// CAT = 2
14
14
// REP = 3
15
- // RNM = 14
16
- // TLS = 26
15
+ // RNM = 9
16
+ // TLS = 9
17
17
// TBS = 6
18
18
// TRG = 27
19
19
// --- SABNF superset opcodes
20
20
// UDT = 0
21
21
// AND = 0
22
22
// NOT = 0
23
- // characters = [33 - 1114109 ]
23
+ // characters = [0 - 1114111 ]
24
24
// ```
25
25
/* OBJECT IDENTIFIER (for internal parser use) */
26
26
this . grammarObject = 'grammarObject' ;
@@ -31,14 +31,11 @@ export default function grammar(){
31
31
this . rules [ 1 ] = { name : 'server-variable' , lower : 'server-variable' , index : 1 , isBkr : false } ;
32
32
this . rules [ 2 ] = { name : 'server-variable-name' , lower : 'server-variable-name' , index : 2 , isBkr : false } ;
33
33
this . rules [ 3 ] = { name : 'literals' , lower : 'literals' , index : 3 , isBkr : false } ;
34
- this . rules [ 4 ] = { name : 'ALPHA' , lower : 'alpha' , index : 4 , isBkr : false } ;
35
- this . rules [ 5 ] = { name : 'DIGIT' , lower : 'digit' , index : 5 , isBkr : false } ;
36
- this . rules [ 6 ] = { name : 'HEXDIG' , lower : 'hexdig' , index : 6 , isBkr : false } ;
37
- this . rules [ 7 ] = { name : 'pct-encoded' , lower : 'pct-encoded' , index : 7 , isBkr : false } ;
38
- this . rules [ 8 ] = { name : 'unreserved' , lower : 'unreserved' , index : 8 , isBkr : false } ;
39
- this . rules [ 9 ] = { name : 'sub-delims' , lower : 'sub-delims' , index : 9 , isBkr : false } ;
40
- this . rules [ 10 ] = { name : 'ucschar' , lower : 'ucschar' , index : 10 , isBkr : false } ;
41
- this . rules [ 11 ] = { name : 'iprivate' , lower : 'iprivate' , index : 11 , isBkr : false } ;
34
+ this . rules [ 4 ] = { name : 'DIGIT' , lower : 'digit' , index : 4 , isBkr : false } ;
35
+ this . rules [ 5 ] = { name : 'HEXDIG' , lower : 'hexdig' , index : 5 , isBkr : false } ;
36
+ this . rules [ 6 ] = { name : 'pct-encoded' , lower : 'pct-encoded' , index : 6 , isBkr : false } ;
37
+ this . rules [ 7 ] = { name : 'ucschar' , lower : 'ucschar' , index : 7 , isBkr : false } ;
38
+ this . rules [ 8 ] = { name : 'iprivate' , lower : 'iprivate' , index : 8 , isBkr : false } ;
42
39
43
40
/* UDTS */
44
41
this . udts = [ ] ;
@@ -61,137 +58,100 @@ export default function grammar(){
61
58
/* server-variable-name */
62
59
this . rules [ 2 ] . opcodes = [ ] ;
63
60
this . rules [ 2 ] . opcodes [ 0 ] = { type : 3 , min : 1 , max : Infinity } ; // REP
64
- this . rules [ 2 ] . opcodes [ 1 ] = { type : 1 , children : [ 2 , 3 , 4 , 5 , 6 ] } ; // ALT
65
- this . rules [ 2 ] . opcodes [ 2 ] = { type : 4 , index : 8 } ; // RNM(unreserved)
66
- this . rules [ 2 ] . opcodes [ 3 ] = { type : 4 , index : 7 } ; // RNM(pct-encoded)
67
- this . rules [ 2 ] . opcodes [ 4 ] = { type : 4 , index : 9 } ; // RNM(sub-delims)
68
- this . rules [ 2 ] . opcodes [ 5 ] = { type : 7 , string : [ 58 ] } ; // TLS
69
- this . rules [ 2 ] . opcodes [ 6 ] = { type : 7 , string : [ 64 ] } ; // TLS
61
+ this . rules [ 2 ] . opcodes [ 1 ] = { type : 1 , children : [ 2 , 3 , 4 ] } ; // ALT
62
+ this . rules [ 2 ] . opcodes [ 2 ] = { type : 5 , min : 0 , max : 122 } ; // TRG
63
+ this . rules [ 2 ] . opcodes [ 3 ] = { type : 6 , string : [ 124 ] } ; // TBS
64
+ this . rules [ 2 ] . opcodes [ 4 ] = { type : 5 , min : 126 , max : 1114111 } ; // TRG
70
65
71
66
/* literals */
72
67
this . rules [ 3 ] . opcodes = [ ] ;
73
68
this . rules [ 3 ] . opcodes [ 0 ] = { type : 3 , min : 1 , max : Infinity } ; // REP
74
- this . rules [ 3 ] . opcodes [ 1 ] = { type : 1 , children : [ 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ] } ; // ALT
69
+ this . rules [ 3 ] . opcodes [ 1 ] = { type : 1 , children : [ 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 ] } ; // ALT
75
70
this . rules [ 3 ] . opcodes [ 2 ] = { type : 6 , string : [ 33 ] } ; // TBS
76
71
this . rules [ 3 ] . opcodes [ 3 ] = { type : 5 , min : 35 , max : 36 } ; // TRG
77
- this . rules [ 3 ] . opcodes [ 4 ] = { type : 6 , string : [ 38 ] } ; // TBS
78
- this . rules [ 3 ] . opcodes [ 5 ] = { type : 5 , min : 40 , max : 59 } ; // TRG
79
- this . rules [ 3 ] . opcodes [ 6 ] = { type : 6 , string : [ 61 ] } ; // TBS
80
- this . rules [ 3 ] . opcodes [ 7 ] = { type : 5 , min : 63 , max : 91 } ; // TRG
81
- this . rules [ 3 ] . opcodes [ 8 ] = { type : 6 , string : [ 93 ] } ; // TBS
82
- this . rules [ 3 ] . opcodes [ 9 ] = { type : 6 , string : [ 95 ] } ; // TBS
83
- this . rules [ 3 ] . opcodes [ 10 ] = { type : 5 , min : 97 , max : 122 } ; // TRG
84
- this . rules [ 3 ] . opcodes [ 11 ] = { type : 6 , string : [ 126 ] } ; // TBS
85
- this . rules [ 3 ] . opcodes [ 12 ] = { type : 4 , index : 10 } ; // RNM(ucschar)
86
- this . rules [ 3 ] . opcodes [ 13 ] = { type : 4 , index : 11 } ; // RNM(iprivate)
87
- this . rules [ 3 ] . opcodes [ 14 ] = { type : 4 , index : 7 } ; // RNM(pct-encoded)
88
-
89
- /* ALPHA */
90
- this . rules [ 4 ] . opcodes = [ ] ;
91
- this . rules [ 4 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 ] } ; // ALT
92
- this . rules [ 4 ] . opcodes [ 1 ] = { type : 5 , min : 65 , max : 90 } ; // TRG
93
- this . rules [ 4 ] . opcodes [ 2 ] = { type : 5 , min : 97 , max : 122 } ; // TRG
72
+ this . rules [ 3 ] . opcodes [ 4 ] = { type : 5 , min : 38 , max : 59 } ; // TRG
73
+ this . rules [ 3 ] . opcodes [ 5 ] = { type : 6 , string : [ 61 ] } ; // TBS
74
+ this . rules [ 3 ] . opcodes [ 6 ] = { type : 5 , min : 63 , max : 91 } ; // TRG
75
+ this . rules [ 3 ] . opcodes [ 7 ] = { type : 6 , string : [ 93 ] } ; // TBS
76
+ this . rules [ 3 ] . opcodes [ 8 ] = { type : 6 , string : [ 95 ] } ; // TBS
77
+ this . rules [ 3 ] . opcodes [ 9 ] = { type : 5 , min : 97 , max : 122 } ; // TRG
78
+ this . rules [ 3 ] . opcodes [ 10 ] = { type : 6 , string : [ 126 ] } ; // TBS
79
+ this . rules [ 3 ] . opcodes [ 11 ] = { type : 4 , index : 7 } ; // RNM(ucschar)
80
+ this . rules [ 3 ] . opcodes [ 12 ] = { type : 4 , index : 8 } ; // RNM(iprivate)
81
+ this . rules [ 3 ] . opcodes [ 13 ] = { type : 4 , index : 6 } ; // RNM(pct-encoded)
94
82
95
83
/* DIGIT */
96
- this . rules [ 5 ] . opcodes = [ ] ;
97
- this . rules [ 5 ] . opcodes [ 0 ] = { type : 5 , min : 48 , max : 57 } ; // TRG
84
+ this . rules [ 4 ] . opcodes = [ ] ;
85
+ this . rules [ 4 ] . opcodes [ 0 ] = { type : 5 , min : 48 , max : 57 } ; // TRG
98
86
99
87
/* HEXDIG */
100
- this . rules [ 6 ] . opcodes = [ ] ;
101
- this . rules [ 6 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ] } ; // ALT
102
- this . rules [ 6 ] . opcodes [ 1 ] = { type : 4 , index : 5 } ; // RNM(DIGIT)
103
- this . rules [ 6 ] . opcodes [ 2 ] = { type : 7 , string : [ 97 ] } ; // TLS
104
- this . rules [ 6 ] . opcodes [ 3 ] = { type : 7 , string : [ 98 ] } ; // TLS
105
- this . rules [ 6 ] . opcodes [ 4 ] = { type : 7 , string : [ 99 ] } ; // TLS
106
- this . rules [ 6 ] . opcodes [ 5 ] = { type : 7 , string : [ 100 ] } ; // TLS
107
- this . rules [ 6 ] . opcodes [ 6 ] = { type : 7 , string : [ 101 ] } ; // TLS
108
- this . rules [ 6 ] . opcodes [ 7 ] = { type : 7 , string : [ 102 ] } ; // TLS
88
+ this . rules [ 5 ] . opcodes = [ ] ;
89
+ this . rules [ 5 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ] } ; // ALT
90
+ this . rules [ 5 ] . opcodes [ 1 ] = { type : 4 , index : 4 } ; // RNM(DIGIT)
91
+ this . rules [ 5 ] . opcodes [ 2 ] = { type : 7 , string : [ 97 ] } ; // TLS
92
+ this . rules [ 5 ] . opcodes [ 3 ] = { type : 7 , string : [ 98 ] } ; // TLS
93
+ this . rules [ 5 ] . opcodes [ 4 ] = { type : 7 , string : [ 99 ] } ; // TLS
94
+ this . rules [ 5 ] . opcodes [ 5 ] = { type : 7 , string : [ 100 ] } ; // TLS
95
+ this . rules [ 5 ] . opcodes [ 6 ] = { type : 7 , string : [ 101 ] } ; // TLS
96
+ this . rules [ 5 ] . opcodes [ 7 ] = { type : 7 , string : [ 102 ] } ; // TLS
109
97
110
98
/* pct-encoded */
111
- this . rules [ 7 ] . opcodes = [ ] ;
112
- this . rules [ 7 ] . opcodes [ 0 ] = { type : 2 , children : [ 1 , 2 , 3 ] } ; // CAT
113
- this . rules [ 7 ] . opcodes [ 1 ] = { type : 7 , string : [ 37 ] } ; // TLS
114
- this . rules [ 7 ] . opcodes [ 2 ] = { type : 4 , index : 6 } ; // RNM(HEXDIG)
115
- this . rules [ 7 ] . opcodes [ 3 ] = { type : 4 , index : 6 } ; // RNM(HEXDIG)
116
-
117
- /* unreserved */
118
- this . rules [ 8 ] . opcodes = [ ] ;
119
- this . rules [ 8 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 , 4 , 5 , 6 ] } ; // ALT
120
- this . rules [ 8 ] . opcodes [ 1 ] = { type : 4 , index : 4 } ; // RNM(ALPHA)
121
- this . rules [ 8 ] . opcodes [ 2 ] = { type : 4 , index : 5 } ; // RNM(DIGIT)
122
- this . rules [ 8 ] . opcodes [ 3 ] = { type : 7 , string : [ 45 ] } ; // TLS
123
- this . rules [ 8 ] . opcodes [ 4 ] = { type : 7 , string : [ 46 ] } ; // TLS
124
- this . rules [ 8 ] . opcodes [ 5 ] = { type : 7 , string : [ 95 ] } ; // TLS
125
- this . rules [ 8 ] . opcodes [ 6 ] = { type : 7 , string : [ 126 ] } ; // TLS
126
-
127
- /* sub-delims */
128
- this . rules [ 9 ] . opcodes = [ ] ;
129
- this . rules [ 9 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 ] } ; // ALT
130
- this . rules [ 9 ] . opcodes [ 1 ] = { type : 7 , string : [ 33 ] } ; // TLS
131
- this . rules [ 9 ] . opcodes [ 2 ] = { type : 7 , string : [ 36 ] } ; // TLS
132
- this . rules [ 9 ] . opcodes [ 3 ] = { type : 7 , string : [ 38 ] } ; // TLS
133
- this . rules [ 9 ] . opcodes [ 4 ] = { type : 7 , string : [ 39 ] } ; // TLS
134
- this . rules [ 9 ] . opcodes [ 5 ] = { type : 7 , string : [ 40 ] } ; // TLS
135
- this . rules [ 9 ] . opcodes [ 6 ] = { type : 7 , string : [ 41 ] } ; // TLS
136
- this . rules [ 9 ] . opcodes [ 7 ] = { type : 7 , string : [ 42 ] } ; // TLS
137
- this . rules [ 9 ] . opcodes [ 8 ] = { type : 7 , string : [ 43 ] } ; // TLS
138
- this . rules [ 9 ] . opcodes [ 9 ] = { type : 7 , string : [ 44 ] } ; // TLS
139
- this . rules [ 9 ] . opcodes [ 10 ] = { type : 7 , string : [ 59 ] } ; // TLS
140
- this . rules [ 9 ] . opcodes [ 11 ] = { type : 7 , string : [ 61 ] } ; // TLS
99
+ this . rules [ 6 ] . opcodes = [ ] ;
100
+ this . rules [ 6 ] . opcodes [ 0 ] = { type : 2 , children : [ 1 , 2 , 3 ] } ; // CAT
101
+ this . rules [ 6 ] . opcodes [ 1 ] = { type : 7 , string : [ 37 ] } ; // TLS
102
+ this . rules [ 6 ] . opcodes [ 2 ] = { type : 4 , index : 5 } ; // RNM(HEXDIG)
103
+ this . rules [ 6 ] . opcodes [ 3 ] = { type : 4 , index : 5 } ; // RNM(HEXDIG)
141
104
142
105
/* ucschar */
143
- this . rules [ 10 ] . opcodes = [ ] ;
144
- this . rules [ 10 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 ] } ; // ALT
145
- this . rules [ 10 ] . opcodes [ 1 ] = { type : 5 , min : 160 , max : 55295 } ; // TRG
146
- this . rules [ 10 ] . opcodes [ 2 ] = { type : 5 , min : 63744 , max : 64975 } ; // TRG
147
- this . rules [ 10 ] . opcodes [ 3 ] = { type : 5 , min : 65008 , max : 65519 } ; // TRG
148
- this . rules [ 10 ] . opcodes [ 4 ] = { type : 5 , min : 65536 , max : 131069 } ; // TRG
149
- this . rules [ 10 ] . opcodes [ 5 ] = { type : 5 , min : 131072 , max : 196605 } ; // TRG
150
- this . rules [ 10 ] . opcodes [ 6 ] = { type : 5 , min : 196608 , max : 262141 } ; // TRG
151
- this . rules [ 10 ] . opcodes [ 7 ] = { type : 5 , min : 262144 , max : 327677 } ; // TRG
152
- this . rules [ 10 ] . opcodes [ 8 ] = { type : 5 , min : 327680 , max : 393213 } ; // TRG
153
- this . rules [ 10 ] . opcodes [ 9 ] = { type : 5 , min : 393216 , max : 458749 } ; // TRG
154
- this . rules [ 10 ] . opcodes [ 10 ] = { type : 5 , min : 458752 , max : 524285 } ; // TRG
155
- this . rules [ 10 ] . opcodes [ 11 ] = { type : 5 , min : 524288 , max : 589821 } ; // TRG
156
- this . rules [ 10 ] . opcodes [ 12 ] = { type : 5 , min : 589824 , max : 655357 } ; // TRG
157
- this . rules [ 10 ] . opcodes [ 13 ] = { type : 5 , min : 655360 , max : 720893 } ; // TRG
158
- this . rules [ 10 ] . opcodes [ 14 ] = { type : 5 , min : 720896 , max : 786429 } ; // TRG
159
- this . rules [ 10 ] . opcodes [ 15 ] = { type : 5 , min : 786432 , max : 851965 } ; // TRG
160
- this . rules [ 10 ] . opcodes [ 16 ] = { type : 5 , min : 851968 , max : 917501 } ; // TRG
161
- this . rules [ 10 ] . opcodes [ 17 ] = { type : 5 , min : 921600 , max : 983037 } ; // TRG
106
+ this . rules [ 7 ] . opcodes = [ ] ;
107
+ this . rules [ 7 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 ] } ; // ALT
108
+ this . rules [ 7 ] . opcodes [ 1 ] = { type : 5 , min : 160 , max : 55295 } ; // TRG
109
+ this . rules [ 7 ] . opcodes [ 2 ] = { type : 5 , min : 63744 , max : 64975 } ; // TRG
110
+ this . rules [ 7 ] . opcodes [ 3 ] = { type : 5 , min : 65008 , max : 65519 } ; // TRG
111
+ this . rules [ 7 ] . opcodes [ 4 ] = { type : 5 , min : 65536 , max : 131069 } ; // TRG
112
+ this . rules [ 7 ] . opcodes [ 5 ] = { type : 5 , min : 131072 , max : 196605 } ; // TRG
113
+ this . rules [ 7 ] . opcodes [ 6 ] = { type : 5 , min : 196608 , max : 262141 } ; // TRG
114
+ this . rules [ 7 ] . opcodes [ 7 ] = { type : 5 , min : 262144 , max : 327677 } ; // TRG
115
+ this . rules [ 7 ] . opcodes [ 8 ] = { type : 5 , min : 327680 , max : 393213 } ; // TRG
116
+ this . rules [ 7 ] . opcodes [ 9 ] = { type : 5 , min : 393216 , max : 458749 } ; // TRG
117
+ this . rules [ 7 ] . opcodes [ 10 ] = { type : 5 , min : 458752 , max : 524285 } ; // TRG
118
+ this . rules [ 7 ] . opcodes [ 11 ] = { type : 5 , min : 524288 , max : 589821 } ; // TRG
119
+ this . rules [ 7 ] . opcodes [ 12 ] = { type : 5 , min : 589824 , max : 655357 } ; // TRG
120
+ this . rules [ 7 ] . opcodes [ 13 ] = { type : 5 , min : 655360 , max : 720893 } ; // TRG
121
+ this . rules [ 7 ] . opcodes [ 14 ] = { type : 5 , min : 720896 , max : 786429 } ; // TRG
122
+ this . rules [ 7 ] . opcodes [ 15 ] = { type : 5 , min : 786432 , max : 851965 } ; // TRG
123
+ this . rules [ 7 ] . opcodes [ 16 ] = { type : 5 , min : 851968 , max : 917501 } ; // TRG
124
+ this . rules [ 7 ] . opcodes [ 17 ] = { type : 5 , min : 921600 , max : 983037 } ; // TRG
162
125
163
126
/* iprivate */
164
- this . rules [ 11 ] . opcodes = [ ] ;
165
- this . rules [ 11 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 ] } ; // ALT
166
- this . rules [ 11 ] . opcodes [ 1 ] = { type : 5 , min : 57344 , max : 63743 } ; // TRG
167
- this . rules [ 11 ] . opcodes [ 2 ] = { type : 5 , min : 983040 , max : 1048573 } ; // TRG
168
- this . rules [ 11 ] . opcodes [ 3 ] = { type : 5 , min : 1048576 , max : 1114109 } ; // TRG
127
+ this . rules [ 8 ] . opcodes = [ ] ;
128
+ this . rules [ 8 ] . opcodes [ 0 ] = { type : 1 , children : [ 1 , 2 , 3 ] } ; // ALT
129
+ this . rules [ 8 ] . opcodes [ 1 ] = { type : 5 , min : 57344 , max : 63743 } ; // TRG
130
+ this . rules [ 8 ] . opcodes [ 2 ] = { type : 5 , min : 983040 , max : 1048573 } ; // TRG
131
+ this . rules [ 8 ] . opcodes [ 3 ] = { type : 5 , min : 1048576 , max : 1114109 } ; // TRG
169
132
170
133
// The `toString()` function will display the original grammar file(s) that produced these opcodes.
171
134
this . toString = function toString ( ) {
172
135
let str = "" ;
173
136
str += "; OpenAPI Server URL templating ABNF syntax\n" ;
174
- str += "; Aligned with RFC 6570 (https://www.rfc-editor.org/rfc/rfc6570)\n" ;
175
- str += "server-url-template = 1*( literals / server-variable )\n" ;
137
+ str += "server-url-template = 1*( literals / server-variable ) ; variant of https://www.rfc-editor.org/rfc/rfc6570#section-2\n" ;
176
138
str += "server-variable = \"{\" server-variable-name \"}\"\n" ;
177
- str += "server-variable-name = 1*( unreserved / pct-encoded / sub-delims / \":\" / \"@\" )\n" ;
178
- str += "literals = 1*( %x21 / %x23-24 / %x26 / %x28-3B / %x3D / %x3F-5B\n" ;
139
+ str += "server-variable-name = 1*( %x00-7A / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } (from OpenAPI)\n" ;
140
+ str += "\n" ;
141
+ str += "; https://www.rfc-editor.org/rfc/rfc6570#section-2.1\n" ;
142
+ str += "; https://www.rfc-editor.org/errata/eid6937\n" ;
143
+ str += "literals = 1*( %x21 / %x23-24 / %x26-3B / %x3D / %x3F-5B\n" ;
179
144
str += " / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate\n" ;
180
145
str += " / pct-encoded)\n" ;
181
- str += " ; any Unicode character except: CTL, SP,\n" ;
182
- str += " ; DQUOTE, \"'\" , \"%\" (aside from pct-encoded),\n" ;
183
- str += " ; \"<\", \">\", \"\\\", \"^\", \"`\", \"{\", \"|\", \"}\"\n" ;
146
+ str += " ; any Unicode character except: CTL, SP,\n" ;
147
+ str += " ; DQUOTE, \"%\" (aside from pct-encoded),\n" ;
148
+ str += " ; \"<\", \">\", \"\\\", \"^\", \"`\", \"{\", \"|\", \"}\"\n" ;
184
149
str += "\n" ;
185
- str += "; Characters definitions (from RFC 6570)\n" ;
186
- str += "ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n" ;
150
+ str += "; https://www.rfc-editor.org/rfc/rfc6570#section-1.5\n" ;
187
151
str += "DIGIT = %x30-39 ; 0-9\n" ;
188
- str += "HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n" ;
189
- str += " ; case-insensitive\n" ;
152
+ str += "HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\" ; case-insensitive\n" ;
190
153
str += "\n" ;
191
154
str += "pct-encoded = \"%\" HEXDIG HEXDIG\n" ;
192
- str += "unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n" ;
193
- str += "sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n" ;
194
- str += " / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n" ;
195
155
str += "\n" ;
196
156
str += "ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF\n" ;
197
157
str += " / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD\n" ;
0 commit comments