abnf-parser 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50f2cf7354e434cc4b8be13b68b87676723d44b8
4
- data.tar.gz: 9226accdfda9dc4b4df0d2097bd30c863a070d0a
3
+ metadata.gz: a4160027da7c08d76478b03eda82487fd7453220
4
+ data.tar.gz: 516ba6741b12aab8b32a2d6364ed799060c17e8e
5
5
  SHA512:
6
- metadata.gz: fa1836ab811e4fe3c6b2c5ea3d5cd5acaf270a08cd57c25b85b5971a9ee77410c5911bed4ab893a431bd40775039a1bcf5e1fed57ed42f135215df5a4f6e667e
7
- data.tar.gz: 90a53156e26123c08dd5d232231403d2061789b49cc848e1681034350ab56192b0c5cdc477901266028b3f9dc4aca6ac0a356c92c218ad1b68f39d5241062899
6
+ metadata.gz: 89ef6ad05da88e03b6796dfe929db933435485596a60a11d3a48bcdd822c92d65e7e5187e45f822625298fbadbd81ef41d0fad1838313fc4a0acaaa71f971786
7
+ data.tar.gz: c710878b2a4d8f5328eb2b03223cab2f4718efda7cf52b59649be6e381357db846ed655319ce032dc0a814fad763b48155342fd901aa34fd615f5ba519257de2
@@ -3,7 +3,7 @@ module ABNF
3
3
  class Compiler
4
4
  class Tokenizer
5
5
  C_NL = "(?:;[[:graph:][:blank:]]*)?\\r\\n".freeze
6
- C_WSP = '(?:(?:#{C_NL})?[[:blank:]])'.freeze
6
+ C_WSP = "(?:(?:#{C_NL})?[[:blank:]])".freeze
7
7
 
8
8
  attr_reader :abnf
9
9
 
@@ -112,41 +112,31 @@ prose-val = "<" *(%x20-3D / %x3F-7E) ">"\r
112
112
  def rfc7230
113
113
  @rfc7230 ||= <<-ABNF
114
114
  BWS = OWS\r
115
- \r
116
115
  Connection = *( "," OWS ) connection-option *( OWS "," [ OWS\r
117
116
  connection-option ] )\r
118
- \r
119
117
  Content-Length = 1*DIGIT\r
120
- \r
121
118
  HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body\r
122
119
  ]\r
123
120
  HTTP-name = %x48.54.54.50 ; HTTP\r
124
121
  HTTP-version = HTTP-name "/" DIGIT "." DIGIT\r
125
122
  Host = uri-host [ ":" port ]\r
126
- \r
127
123
  OWS = *( SP / HTAB )\r
128
- \r
129
124
  RWS = 1*( SP / HTAB )\r
130
- \r
131
125
  TE = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ]\r
132
126
  Trailer = *( "," OWS ) field-name *( OWS "," [ OWS field-name ] )\r
133
127
  Transfer-Encoding = *( "," OWS ) transfer-coding *( OWS "," [ OWS\r
134
128
  transfer-coding ] )\r
135
- \r
136
129
  URI-reference = <URI-reference, see [RFC3986], Section 4.1>\r
137
130
  Upgrade = *( "," OWS ) protocol *( OWS "," [ OWS protocol ] )\r
138
- \r
139
131
  Via = *( "," OWS ) ( received-protocol RWS received-by [ RWS comment\r
140
132
  ] ) *( OWS "," [ OWS ( received-protocol RWS received-by [ RWS\r
141
133
  comment ] ) ] )\r
142
- \r
143
134
  absolute-URI = <absolute-URI, see [RFC3986], Section 4.3>\r
144
135
  absolute-form = absolute-URI\r
145
136
  absolute-path = 1*( "/" segment )\r
146
137
  asterisk-form = "*"\r
147
138
  authority = <authority, see [RFC3986], Section 3.2>\r
148
139
  authority-form = authority\r
149
- \r
150
140
  chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF\r
151
141
  chunk-data = 1*OCTET\r
152
142
  chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )\r
@@ -160,28 +150,22 @@ ctext = HTAB / SP / %x21-27 ; '!'-'''\r
160
150
  / %x2A-5B ; '*'-'['\r
161
151
  / %x5D-7E ; ']'-'~'\r
162
152
  / obs-text\r
163
- \r
164
153
  field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\r
165
154
  field-name = token\r
166
155
  field-value = *( field-content / obs-fold )\r
167
156
  field-vchar = VCHAR / obs-text\r
168
157
  fragment = <fragment, see [RFC3986], Section 3.5>\r
169
- \r
170
158
  header-field = field-name ":" OWS field-value OWS\r
171
159
  http-URI = "http://" authority path-abempty [ "?" query ] [ "#"\r
172
160
  fragment ]\r
173
161
  https-URI = "https://" authority path-abempty [ "?" query ] [ "#"\r
174
162
  fragment ]\r
175
- \r
176
163
  last-chunk = 1*"0" [ chunk-ext ] CRLF\r
177
- \r
178
164
  message-body = *OCTET\r
179
165
  method = token\r
180
- \r
181
166
  obs-fold = CRLF 1*( SP / HTAB )\r
182
167
  obs-text = %x80-FF\r
183
168
  origin-form = absolute-path [ "?" query ]\r
184
- \r
185
169
  partial-URI = relative-part [ "?" query ]\r
186
170
  path-abempty = <path-abempty, see [RFC3986], Section 3.3>\r
187
171
  port = <port, see [RFC3986], Section 3.2.3>\r
@@ -189,15 +173,12 @@ protocol = protocol-name [ "/" protocol-version ]\r
189
173
  protocol-name = token\r
190
174
  protocol-version = token\r
191
175
  pseudonym = token\r
192
- \r
193
176
  qdtext = HTAB / SP / "!" / %x23-5B ; '#'-'['\r
194
177
  / %x5D-7E ; ']'-'~'\r
195
178
  / obs-text\r
196
179
  query = <query, see [RFC3986], Section 3.4>\r
197
180
  quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )\r
198
- \r
199
181
  quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\r
200
- \r
201
182
  rank = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] )\r
202
183
  reason-phrase = *( HTAB / SP / VCHAR / obs-text )\r
203
184
  received-by = ( uri-host [ ":" port ] ) / pseudonym\r
@@ -206,13 +187,11 @@ relative-part = <relative-part, see [RFC3986], Section 4.2>\r
206
187
  request-line = method SP request-target SP HTTP-version CRLF\r
207
188
  request-target = origin-form / absolute-form / authority-form /\r
208
189
  asterisk-form\r
209
- \r
210
190
  scheme = <scheme, see [RFC3986], Section 3.1>\r
211
191
  segment = <segment, see [RFC3986], Section 3.3>\r
212
192
  start-line = request-line / status-line\r
213
193
  status-code = 3DIGIT\r
214
194
  status-line = HTTP-version SP status-code SP reason-phrase CRLF\r
215
- \r
216
195
  t-codings = "trailers" / ( transfer-coding [ t-ranking ] )\r
217
196
  t-ranking = OWS ";" OWS "q=" rank\r
218
197
  tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." /\r
@@ -223,8 +202,167 @@ transfer-coding = "chunked" / "compress" / "deflate" / "gzip" /\r
223
202
  transfer-extension\r
224
203
  transfer-extension = token *( OWS ";" OWS transfer-parameter )\r
225
204
  transfer-parameter = token BWS "=" BWS ( token / quoted-string )\r
226
- \r
227
205
  uri-host = <host, see [RFC3986], Section 3.2.2>\r
206
+ Accept = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [\r
207
+ OWS ( media-range [ accept-params ] ) ] ) ]\r
208
+ Accept-Charset = *( "," OWS ) ( ( charset / "*" ) [ weight ] ) *( OWS\r
209
+ "," [ OWS ( ( charset / "*" ) [ weight ] ) ] )\r
210
+ Accept-Encoding = [ ( "," / ( codings [ weight ] ) ) *( OWS "," [ OWS\r
211
+ ( codings [ weight ] ) ] ) ]\r
212
+ Accept-Language = *( "," OWS ) ( language-range [ weight ] ) *( OWS\r
213
+ "," [ OWS ( language-range [ weight ] ) ] )\r
214
+ Allow = [ ( "," / method ) *( OWS "," [ OWS method ] ) ]\r
215
+ Content-Encoding = *( "," OWS ) content-coding *( OWS "," [ OWS\r
216
+ content-coding ] )\r
217
+ Content-Language = *( "," OWS ) language-tag *( OWS "," [ OWS\r
218
+ language-tag ] )\r
219
+ Content-Location = absolute-URI / partial-URI\r
220
+ Content-Type = media-type\r
221
+ Date = HTTP-date\r
222
+ Expect = "100-continue"\r
223
+ From = mailbox\r
224
+ GMT = %x47.4D.54 ; GMT\r
225
+ HTTP-date = IMF-fixdate / obs-date\r
226
+ IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT\r
227
+ Location = URI-reference\r
228
+ Max-Forwards = 1*DIGIT\r
229
+ Referer = absolute-URI / partial-URI\r
230
+ Retry-After = HTTP-date / delay-seconds\r
231
+ Server = product *( RWS ( product / comment ) )\r
232
+ User-Agent = product *( RWS ( product / comment ) )\r
233
+ Vary = "*" / ( *( "," OWS ) field-name *( OWS "," [ OWS field-name ]\r
234
+ ) )\r
235
+ accept-ext = OWS ";" OWS token [ "=" ( token / quoted-string ) ]\r
236
+ accept-params = weight *accept-ext\r
237
+ asctime-date = day-name SP date3 SP time-of-day SP year\r
238
+ charset = token\r
239
+ codings = content-coding / "identity" / "*"\r
240
+ content-coding = token\r
241
+ date1 = day SP month SP year\r
242
+ date2 = day "-" month "-" 2DIGIT\r
243
+ date3 = month SP ( 2DIGIT / ( SP DIGIT ) )\r
244
+ day = 2DIGIT\r
245
+ day-name = %x4D.6F.6E ; Mon\r
246
+ / %x54.75.65 ; Tue\r
247
+ / %x57.65.64 ; Wed\r
248
+ / %x54.68.75 ; Thu\r
249
+ / %x46.72.69 ; Fri\r
250
+ / %x53.61.74 ; Sat\r
251
+ / %x53.75.6E ; Sun\r
252
+ day-name-l = %x4D.6F.6E.64.61.79 ; Monday\r
253
+ / %x54.75.65.73.64.61.79 ; Tuesday\r
254
+ / %x57.65.64.6E.65.73.64.61.79 ; Wednesday\r
255
+ / %x54.68.75.72.73.64.61.79 ; Thursday\r
256
+ / %x46.72.69.64.61.79 ; Friday\r
257
+ / %x53.61.74.75.72.64.61.79 ; Saturday\r
258
+ / %x53.75.6E.64.61.79 ; Sunday\r
259
+ delay-seconds = 1*DIGIT\r
260
+ hour = 2DIGIT\r
261
+ language-range = <language-range, see [RFC4647], Section 2.1>\r
262
+ language-tag = <Language-Tag, see [RFC5646], Section 2.1>\r
263
+ mailbox = <mailbox, see [RFC5322], Section 3.4>\r
264
+ media-range = ( "*/*" / ( type "/*" ) / ( type "/" subtype ) ) *( OWS\r
265
+ ";" OWS parameter )\r
266
+ media-type = type "/" subtype *( OWS ";" OWS parameter )\r
267
+ method = token\r
268
+ minute = 2DIGIT\r
269
+ month = %x4A.61.6E ; Jan\r
270
+ / %x46.65.62 ; Feb\r
271
+ / %x4D.61.72 ; Mar\r
272
+ / %x41.70.72 ; Apr\r
273
+ / %x4D.61.79 ; May\r
274
+ / %x4A.75.6E ; Jun\r
275
+ / %x4A.75.6C ; Jul\r
276
+ / %x41.75.67 ; Aug\r
277
+ / %x53.65.70 ; Sep\r
278
+ / %x4F.63.74 ; Oct\r
279
+ / %x4E.6F.76 ; Nov\r
280
+ / %x44.65.63 ; Dec\r
281
+ obs-date = rfc850-date / asctime-date\r
282
+ parameter = token "=" ( token / quoted-string )\r
283
+ product = token [ "/" product-version ]\r
284
+ product-version = token\r
285
+ qvalue = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] )\r
286
+ rfc850-date = day-name-l "," SP date2 SP time-of-day SP GMT\r
287
+ second = 2DIGIT\r
288
+ subtype = token\r
289
+ time-of-day = hour ":" minute ":" second\r
290
+ type = token\r
291
+ weight = OWS ";" OWS "q=" qvalue\r
292
+ year = 4DIGIT\r
293
+ ETag = entity-tag\r
294
+ If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS\r
295
+ entity-tag ] ) )\r
296
+ If-Modified-Since = HTTP-date\r
297
+ If-None-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS\r
298
+ entity-tag ] ) )\r
299
+ If-Unmodified-Since = HTTP-date\r
300
+ Last-Modified = HTTP-date\r
301
+ entity-tag = [ weak ] opaque-tag\r
302
+ etagc = "!" / %x23-7E ; '#'-'~'\r
303
+ / obs-text\r
304
+ opaque-tag = DQUOTE *etagc DQUOTE\r
305
+ weak = %x57.2F ; W/\r
306
+ Accept-Ranges = acceptable-ranges\r
307
+ Content-Range = byte-content-range / other-content-range\r
308
+ If-Range = entity-tag / HTTP-date\r
309
+ Range = byte-ranges-specifier / other-ranges-specifier\r
310
+ acceptable-ranges = ( *( "," OWS ) range-unit *( OWS "," [ OWS\r
311
+ range-unit ] ) ) / "none"\r
312
+ byte-content-range = bytes-unit SP ( byte-range-resp /\r
313
+ unsatisfied-range )\r
314
+ byte-range = first-byte-pos "-" last-byte-pos\r
315
+ byte-range-resp = byte-range "/" ( complete-length / "*" )\r
316
+ byte-range-set = *( "," OWS ) ( byte-range-spec /\r
317
+ suffix-byte-range-spec ) *( OWS "," [ OWS ( byte-range-spec /\r
318
+ suffix-byte-range-spec ) ] )\r
319
+ byte-range-spec = first-byte-pos "-" [ last-byte-pos ]\r
320
+ byte-ranges-specifier = bytes-unit "=" byte-range-set\r
321
+ bytes-unit = "bytes"\r
322
+ complete-length = 1*DIGIT\r
323
+ first-byte-pos = 1*DIGIT\r
324
+ last-byte-pos = 1*DIGIT\r
325
+ other-content-range = other-range-unit SP other-range-resp\r
326
+ other-range-resp = *CHAR\r
327
+ other-range-set = 1*VCHAR\r
328
+ other-range-unit = token\r
329
+ other-ranges-specifier = other-range-unit "=" other-range-set\r
330
+ range-unit = bytes-unit / other-range-unit\r
331
+ suffix-byte-range-spec = "-" suffix-length\r
332
+ suffix-length = 1*DIGIT\r
333
+ unsatisfied-range = "*/" complete-length\r
334
+ Age = delta-seconds\r
335
+ Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS\r
336
+ cache-directive ] )\r
337
+ Expires = HTTP-date\r
338
+ Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS\r
339
+ pragma-directive ] )\r
340
+ Warning = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ]\r
341
+ )\r
342
+ cache-directive = token [ "=" ( token / quoted-string ) ]\r
343
+ delta-seconds = 1*DIGIT\r
344
+ extension-pragma = token [ "=" ( token / quoted-string ) ]\r
345
+ pragma-directive = "no-cache" / extension-pragma\r
346
+ warn-agent = ( uri-host [ ":" port ] ) / pseudonym\r
347
+ warn-code = 3DIGIT\r
348
+ warn-date = DQUOTE HTTP-date DQUOTE\r
349
+ warn-text = quoted-string\r
350
+ warning-value = warn-code SP warn-agent SP warn-text [ SP warn-date\r
351
+ ]\r
352
+ Authorization = credentials\r
353
+ Proxy-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS\r
354
+ challenge ] )\r
355
+ Proxy-Authorization = credentials\r
356
+ WWW-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge\r
357
+ ] )\r
358
+ auth-param = token BWS "=" BWS ( token / quoted-string )\r
359
+ auth-scheme = token\r
360
+ challenge = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param ) *(\r
361
+ OWS "," [ OWS auth-param ] ) ] ) ]\r
362
+ credentials = auth-scheme [ 1*SP ( token68 / [ ( "," / auth-param )\r
363
+ *( OWS "," [ OWS auth-param ] ) ] ) ]\r
364
+ token68 = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" )\r
365
+ *"="\r
228
366
  ABNF
229
367
  end
230
368
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abnf-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Ladd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-19 00:00:00.000000000 Z
11
+ date: 2015-12-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: abnf-parser allows you to compile ABNF (Augmented Backus-Naur Form) into
14
14
  rule lists that can be used to efficiently parse text conforming to ABNF grammar.