55export default function grammar ( ) {
66 // ```
77 // SUMMARY
8- // rules = 12
8+ // rules = 9
99 // udts = 0
10- // opcodes = 87
10+ // opcodes = 62
1111 // --- ABNF original opcodes
12- // ALT = 9
12+ // ALT = 6
1313 // CAT = 2
1414 // REP = 3
15- // RNM = 14
16- // TLS = 26
15+ // RNM = 9
16+ // TLS = 9
1717 // TBS = 6
1818 // TRG = 27
1919 // --- SABNF superset opcodes
2020 // UDT = 0
2121 // AND = 0
2222 // NOT = 0
23- // characters = [33 - 1114109 ]
23+ // characters = [0 - 1114111 ]
2424 // ```
2525 /* OBJECT IDENTIFIER (for internal parser use) */
2626 this . grammarObject = 'grammarObject' ;
@@ -31,14 +31,11 @@ export default function grammar(){
3131 this . rules [ 1 ] = { name : 'server-variable' , lower : 'server-variable' , index : 1 , isBkr : false } ;
3232 this . rules [ 2 ] = { name : 'server-variable-name' , lower : 'server-variable-name' , index : 2 , isBkr : false } ;
3333 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 } ;
4239
4340 /* UDTS */
4441 this . udts = [ ] ;
@@ -61,137 +58,100 @@ export default function grammar(){
6158 /* server-variable-name */
6259 this . rules [ 2 ] . opcodes = [ ] ;
6360 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
7065
7166 /* literals */
7267 this . rules [ 3 ] . opcodes = [ ] ;
7368 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
7570 this . rules [ 3 ] . opcodes [ 2 ] = { type : 6 , string : [ 33 ] } ; // TBS
7671 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)
9482
9583 /* 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
9886
9987 /* 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
10997
11098 /* 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)
141104
142105 /* 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
162125
163126 /* 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
169132
170133 // The `toString()` function will display the original grammar file(s) that produced these opcodes.
171134 this . toString = function toString ( ) {
172135 let str = "" ;
173136 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" ;
176138 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" ;
179144 str += " / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate\n" ;
180145 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" ;
184149 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" ;
187151 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" ;
190153 str += "\n" ;
191154 str += "pct-encoded = \"%\" HEXDIG HEXDIG\n" ;
192- str += "unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n" ;
193- str += "sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n" ;
194- str += " / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n" ;
195155 str += "\n" ;
196156 str += "ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF\n" ;
197157 str += " / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD\n" ;
0 commit comments