abnf-parser 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
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.