jcrvalidator 0.6.1 → 0.6.2
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 +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
|