jcrvalidator 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jcr/parser.rb +48 -27
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c51482b079f0539c1cb4dc314bb0dac5fc5bb34b
|
4
|
+
data.tar.gz: 7aab4f0a62693d94cb6764f500b9a95558bc19c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0be218960533949c2f4ba48aeaede5e18d9d54a2bd9b2fc757362814f26041e869425265232eb5e22bed56accac74d245a0e11b1e68dab9aeb473dd60a8b801
|
7
|
+
data.tar.gz: 5a2aedf37cde03afd16060e05e4952107893b2ad3c1ee5e040047592b1af447a12c5218285dfa40781b68b599cda67082b83bfa526305d723c46e74a98191ffe
|
data/lib/jcr/parser.rb
CHANGED
@@ -53,17 +53,21 @@ module JCR
|
|
53
53
|
#! directive = "#" (one_line_directive / multi_line_directive)
|
54
54
|
rule(:one_line_directive) { ( dsps? >> ( directive_def | one_line_tbd_directive_d ) >> wsp.repeat >> match('[\r\n]') ) }
|
55
55
|
#! one_line_directive = DSPs?
|
56
|
-
#! (directive_def / one_line_tbd_directive_d)
|
56
|
+
#! (directive_def / one_line_tbd_directive_d)
|
57
|
+
#! *WSP eol
|
57
58
|
rule(:multi_line_directive) { str('{') >> spcCmnt? >> (directive_def | multi_line_tbd_directive_d) >> spcCmnt? >> str('}') }
|
58
59
|
#! multi_line_directive = "{" spcCmnt?
|
59
|
-
#! (directive_def /
|
60
|
+
#! ( directive_def /
|
61
|
+
#! multi_line_tbd_directive_d )
|
62
|
+
#! spcCmnt? "}"
|
60
63
|
rule(:directive_def) { jcr_version_d | ruleset_id_d | import_d }
|
61
64
|
#! directive_def = jcr_version_d / ruleset_id_d / import_d
|
62
65
|
rule(:jcr_version_d) { ( str('jcr-version') >> dsps >>
|
63
66
|
non_neg_integer.as(:major_version) >> str('.') >> non_neg_integer.as(:minor_version) >>
|
64
67
|
( dsps >> str('+') >> dsps? >> extension_id ).repeat
|
65
68
|
).as(:jcr_version_d) }
|
66
|
-
#! jcr_version_d = jcr-version-kw DSPs major_version
|
69
|
+
#! jcr_version_d = jcr-version-kw DSPs major_version
|
70
|
+
#! "." minor_version
|
67
71
|
#! *( DSPs "+" DSPs? extension_id )
|
68
72
|
#> jcr-version-kw = "jcr-version"
|
69
73
|
#! major_version = non_neg_integer
|
@@ -84,7 +88,8 @@ module JCR
|
|
84
88
|
rule(:ruleset_id_alias) { name.as(:ruleset_id_alias) }
|
85
89
|
#! ruleset_id_alias = name
|
86
90
|
rule(:one_line_tbd_directive_d) { name.as(:directive_name) >> ( wsp >> match('[^\r\n]').repeat.as(:directive_parameters) ).maybe }
|
87
|
-
#! one_line_tbd_directive_d = directive_name
|
91
|
+
#! one_line_tbd_directive_d = directive_name
|
92
|
+
#! [ WSP one_line_directive_parameters ]
|
88
93
|
#! directive_name = name
|
89
94
|
#! one_line_directive_parameters = *not_eol
|
90
95
|
#! not_eol = HTAB / %x20-10FFFF
|
@@ -97,8 +102,8 @@ module JCR
|
|
97
102
|
rule(:multi_line_parameters) { (comment | q_string | regex | match('[^"/;}]')).repeat }
|
98
103
|
#! multi_line_parameters = *(comment / q_string / regex /
|
99
104
|
#! not_multi_line_special)
|
100
|
-
#! not_multi_line_special = spaces / %x21 / %x23-2E / %x30-3A /
|
101
|
-
#! %x7E-10FFFF ; not ", /, ; or }
|
105
|
+
#! not_multi_line_special = spaces / %x21 / %x23-2E / %x30-3A /
|
106
|
+
#! %x3C-7C / %x7E-10FFFF ; not ", /, ; or }
|
102
107
|
#!
|
103
108
|
|
104
109
|
rule(:root_rule) { value_rule | group_rule } # N.B. Not target_rule_name
|
@@ -106,13 +111,16 @@ module JCR
|
|
106
111
|
#!
|
107
112
|
|
108
113
|
rule(:rule) { ( annotations.as(:annotations) >> str('$') >> rule_name >> spcCmnt? >> str('=') >> spcCmnt? >> rule_def ).as(:rule) }
|
109
|
-
#! rule = annotations "$" rule_name spcCmnt?
|
114
|
+
#! rule = annotations "$" rule_name spcCmnt?
|
115
|
+
#! "=" spcCmnt? rule_def
|
110
116
|
#!
|
111
117
|
|
112
118
|
rule(:rule_name) { name.as(:rule_name) }
|
113
119
|
#! rule_name = name
|
114
120
|
rule(:target_rule_name) { (annotations.as(:annotations) >> str('$') >> (ruleset_id_alias >> str('.')).maybe >> rule_name).as(:target_rule_name) }
|
115
|
-
#! target_rule_name = annotations "$"
|
121
|
+
#! target_rule_name = annotations "$"
|
122
|
+
#! [ ruleset_id_alias "." ]
|
123
|
+
#! rule_name
|
116
124
|
rule(:name) { match('[a-zA-Z]') >> match('[a-zA-Z0-9\-_]').repeat }
|
117
125
|
#! name = ALPHA *( ALPHA / DIGIT / "-" / "_" )
|
118
126
|
#!
|
@@ -120,7 +128,8 @@ module JCR
|
|
120
128
|
rule(:rule_def) { member_rule | (type_designator >> rule_def_type_rule) |
|
121
129
|
array_rule | object_rule | group_rule | target_rule_name }
|
122
130
|
#! rule_def = member_rule / type_designator rule_def_type_rule /
|
123
|
-
#! array_rule / object_rule / group_rule /
|
131
|
+
#! array_rule / object_rule / group_rule /
|
132
|
+
#! target_rule_name
|
124
133
|
rule(:type_designator) { str('type') >> spcCmnt.repeat(1) | str(':') >> spcCmnt? }
|
125
134
|
#! type_designator = type-kw 1*spcCmnt / ":" spcCmnt?
|
126
135
|
#> type-kw = "type"
|
@@ -145,7 +154,8 @@ module JCR
|
|
145
154
|
#!
|
146
155
|
|
147
156
|
rule(:annotations) { ( str('@{') >> spcCmnt? >> annotation_set >> spcCmnt? >> str('}') >> spcCmnt? ).repeat }
|
148
|
-
#! annotations = *( "@{" spcCmnt? annotation_set spcCmnt? "}"
|
157
|
+
#! annotations = *( "@{" spcCmnt? annotation_set spcCmnt? "}"
|
158
|
+
#! spcCmnt? )
|
149
159
|
rule(:annotation_set) { not_annotation | unordered_annotation | root_annotation | tbd_annotation }
|
150
160
|
#! annotation_set = not_annotation / unordered_annotation /
|
151
161
|
#! root_annotation / tbd_annotation
|
@@ -181,15 +191,16 @@ module JCR
|
|
181
191
|
any
|
182
192
|
}
|
183
193
|
#! primitive_def = string_type / string_range / string_value /
|
184
|
-
#! null_type / boolean_type / true_value /
|
185
|
-
#!
|
194
|
+
#! null_type / boolean_type / true_value /
|
195
|
+
#! false_value / double_type / float_type /
|
196
|
+
#! float_range / float_value /
|
186
197
|
#! integer_type / integer_range / integer_value /
|
187
|
-
#! sized_int_type / sized_uint_type /
|
188
|
-
#!
|
198
|
+
#! sized_int_type / sized_uint_type / ipv4_type /
|
199
|
+
#! ipv6_type / ipaddr_type / fqdn_type / idn_type /
|
189
200
|
#! uri_range / uri_type / phone_type / email_type /
|
190
201
|
#! datetime_type / date_type / time_type /
|
191
|
-
#! hex_type / base32hex_type / base32_type /
|
192
|
-
#! any
|
202
|
+
#! hex_type / base32hex_type / base32_type /
|
203
|
+
#! base64url_type / base64_type / any
|
193
204
|
rule(:null_type) { str('null').as(:null) }
|
194
205
|
#! null_type = null-kw
|
195
206
|
#> null-kw = "null"
|
@@ -229,7 +240,8 @@ module JCR
|
|
229
240
|
rule(:integer_range) {
|
230
241
|
integer.as(:integer_min) >> str('..') >> integer.maybe.as(:integer_max) | ( str('..') >> integer.as(:integer_max) )
|
231
242
|
}
|
232
|
-
#! integer_range = integer_min ".." [ integer_max ] /
|
243
|
+
#! integer_range = integer_min ".." [ integer_max ] /
|
244
|
+
#! ".." integer_max
|
233
245
|
#! integer_min = integer
|
234
246
|
#! integer_max = integer
|
235
247
|
rule(:integer_value) { integer.as(:integer) }
|
@@ -298,7 +310,8 @@ module JCR
|
|
298
310
|
|
299
311
|
rule(:object_rule) { ( annotations >>
|
300
312
|
str('{') >> spcCmnt? >> object_items.maybe >> spcCmnt? >> str('}') ).as(:object_rule) }
|
301
|
-
#! object_rule = annotations "{" spcCmnt?
|
313
|
+
#! object_rule = annotations "{" spcCmnt?
|
314
|
+
#! [ object_items spcCmnt? ] "}"
|
302
315
|
rule(:object_items) { object_item >> (( spcCmnt? >> sequence_combiner >> spcCmnt? >> object_item ).repeat(1) |
|
303
316
|
( spcCmnt? >> choice_combiner >> spcCmnt? >> object_item ).repeat(1) ).maybe }
|
304
317
|
#! object_items = object_item (*( sequence_combiner object_item ) /
|
@@ -335,7 +348,8 @@ module JCR
|
|
335
348
|
rule(:group_item) { group_item_types >> spcCmnt? >> repetition.maybe }
|
336
349
|
#! group_item = group_item_types spcCmnt? [ repetition ]
|
337
350
|
rule(:group_item_types) { group_group | member_rule | type_rule | explicit_type_choice }
|
338
|
-
#! group_item_types = group_group / member_rule /
|
351
|
+
#! group_item_types = group_group / member_rule /
|
352
|
+
#! type_rule / explicit_type_choice
|
339
353
|
rule(:group_group) { group_rule }
|
340
354
|
#! group_group = group_rule
|
341
355
|
#!
|
@@ -346,23 +360,28 @@ module JCR
|
|
346
360
|
#! choice_combiner = spcCmnt? "|" spcCmnt?
|
347
361
|
#!
|
348
362
|
|
349
|
-
rule(:repetition) {
|
350
|
-
|
351
|
-
#! repetition =
|
352
|
-
#!
|
353
|
-
#! zero_or_more / specific_repetition )
|
363
|
+
rule(:repetition) { optional | one_or_more |
|
364
|
+
repetition_range | zero_or_more }
|
365
|
+
#! repetition = optional / one_or_more /
|
366
|
+
#! repetition_range / zero_or_more
|
354
367
|
rule(:optional) { str('?').as(:optional) }
|
355
368
|
#! optional = "?"
|
356
369
|
rule(:one_or_more) { str('+').as(:one_or_more) >> repetition_step.maybe }
|
357
370
|
#! one_or_more = "+" [ repetition_step ]
|
358
371
|
rule(:zero_or_more) { str('*').as(:zero_or_more) >> repetition_step.maybe }
|
359
372
|
#! zero_or_more = "*" [ repetition_step ]
|
373
|
+
rule(:repetition_range) { str('*') >> spcCmnt? >>
|
374
|
+
(min_max_repetition | specific_repetition) }
|
375
|
+
#! repetition_range = "*" spcCmnt? (
|
376
|
+
#! min_max_repetition / min_repetition /
|
377
|
+
#! max_repetition / specific_repetition )
|
360
378
|
rule(:min_max_repetition) { # This includes min_only and max_only cases
|
361
379
|
non_neg_integer.maybe.as(:repetition_min) >>
|
362
380
|
str("..").as(:repetition_interval) >>
|
363
381
|
non_neg_integer.maybe.as(:repetition_max) >>
|
364
382
|
repetition_step.maybe }
|
365
|
-
#! min_max_repetition = min_repeat ".." max_repeat
|
383
|
+
#! min_max_repetition = min_repeat ".." max_repeat
|
384
|
+
#! [ repetition_step ]
|
366
385
|
#! min_repetition = min_repeat ".." [ repetition_step ]
|
367
386
|
#! max_repetition = ".." max_repeat [ repetition_step ]
|
368
387
|
#! min_repeat = non_neg_integer
|
@@ -370,7 +389,8 @@ module JCR
|
|
370
389
|
rule(:specific_repetition) { non_neg_integer.as(:specific_repetition) }
|
371
390
|
#! specific_repetition = non_neg_integer
|
372
391
|
rule(:repetition_step) { str('%') >> non_neg_integer.as(:repetition_step) }
|
373
|
-
#! repetition_step = "%"
|
392
|
+
#! repetition_step = "%" step_size
|
393
|
+
#! step_size = non_neg_integer
|
374
394
|
#!
|
375
395
|
|
376
396
|
rule(:integer) { str('0') | str('-').maybe >> pos_integer }
|
@@ -419,7 +439,8 @@ module JCR
|
|
419
439
|
#!
|
420
440
|
|
421
441
|
rule(:regex) { str('/') >> (str('\\/') | match('[^/]+')).repeat.as(:regex) >> str('/') >> regex_modifiers.maybe }
|
422
|
-
#! regex = "/" *( escape "/" / not-slash ) "/"
|
442
|
+
#! regex = "/" *( escape "/" / not-slash ) "/"
|
443
|
+
#! [ regex_modifiers ]
|
423
444
|
#! not-slash = HTAB / CR / LF / %x20-2E / %x30-10FFFF
|
424
445
|
#! ; Any char except "/"
|
425
446
|
rule(:regex_modifiers) { match('[isx]').repeat.as(:regex_modifiers) }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jcrvalidator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Newton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-08-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parslet
|