cddlc 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cddlc.gemspec +1 -1
- data/lib/parser/cddlgrammar.rb +314 -231
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4755090b14758b52954844be6c4fd916c2059758e60d06973e662796dc67f02
|
4
|
+
data.tar.gz: bbf25920e39e2dc432a77bd72e30007b608a4fb8e0d0c3e696e6dceeb1f35fa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: baf2caf2e3bdfffe7313b20f5f28352b16c8fa90e94be4a8842367e6c469a11dcdd5e44b40eae728fdf9d31a2e5467b91d537dfeb45ffa8a7d38c628afa4251b
|
7
|
+
data.tar.gz: 40cb808432a3c6ef55061323c04712eebd884eeafa23f85e6b78946006e7e78e04a325c1e090bcb78c22f5a9f1856a46b69f54497757cda73028f3ddd2cd2030
|
data/cddlc.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cddlc"
|
3
|
-
s.version = "0.0.
|
3
|
+
s.version = "0.0.4"
|
4
4
|
s.summary = "CDDL (Concise Data Definition Language) converters and miscellaneous tools"
|
5
5
|
s.description = %q{cddlc implements converters and miscellaneous tools for CDDL, RFC 8610}
|
6
6
|
s.author = "Carsten Bormann"
|
data/lib/parser/cddlgrammar.rb
CHANGED
@@ -3280,23 +3280,92 @@ module CDDLGRAMMAR
|
|
3280
3280
|
end
|
3281
3281
|
|
3282
3282
|
module Hexchar0
|
3283
|
+
def high_surrogate
|
3284
|
+
elements[0]
|
3285
|
+
end
|
3286
|
+
|
3287
|
+
def low_surrogate
|
3288
|
+
elements[3]
|
3289
|
+
end
|
3283
3290
|
end
|
3284
3291
|
|
3285
|
-
|
3292
|
+
def _nt_hexchar
|
3293
|
+
start_index = index
|
3294
|
+
if node_cache[:hexchar].has_key?(index)
|
3295
|
+
cached = node_cache[:hexchar][index]
|
3296
|
+
if cached
|
3297
|
+
node_cache[:hexchar][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3298
|
+
@index = cached.interval.end
|
3299
|
+
end
|
3300
|
+
return cached
|
3301
|
+
end
|
3302
|
+
|
3303
|
+
i0 = index
|
3304
|
+
r1 = _nt_non_surrogate
|
3305
|
+
if r1
|
3306
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3307
|
+
r0 = r1
|
3308
|
+
else
|
3309
|
+
i2, s2 = index, []
|
3310
|
+
r3 = _nt_high_surrogate
|
3311
|
+
s2 << r3
|
3312
|
+
if r3
|
3313
|
+
if (match_len = has_terminal?("\\", false, index))
|
3314
|
+
r4 = true
|
3315
|
+
@index += match_len
|
3316
|
+
else
|
3317
|
+
terminal_parse_failure('"\\\\"')
|
3318
|
+
r4 = nil
|
3319
|
+
end
|
3320
|
+
s2 << r4
|
3321
|
+
if r4
|
3322
|
+
if (match_len = has_terminal?("u", false, index))
|
3323
|
+
r5 = true
|
3324
|
+
@index += match_len
|
3325
|
+
else
|
3326
|
+
terminal_parse_failure('"u"')
|
3327
|
+
r5 = nil
|
3328
|
+
end
|
3329
|
+
s2 << r5
|
3330
|
+
if r5
|
3331
|
+
r6 = _nt_low_surrogate
|
3332
|
+
s2 << r6
|
3333
|
+
end
|
3334
|
+
end
|
3335
|
+
end
|
3336
|
+
if s2.last
|
3337
|
+
r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
|
3338
|
+
r2.extend(Hexchar0)
|
3339
|
+
else
|
3340
|
+
@index = i2
|
3341
|
+
r2 = nil
|
3342
|
+
end
|
3343
|
+
if r2
|
3344
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
3345
|
+
r0 = r2
|
3346
|
+
else
|
3347
|
+
@index = i0
|
3348
|
+
r0 = nil
|
3349
|
+
end
|
3350
|
+
end
|
3351
|
+
|
3352
|
+
node_cache[:hexchar][start_index] = r0
|
3353
|
+
|
3354
|
+
r0
|
3286
3355
|
end
|
3287
3356
|
|
3288
|
-
module
|
3357
|
+
module NonSurrogate0
|
3289
3358
|
end
|
3290
3359
|
|
3291
|
-
module
|
3360
|
+
module NonSurrogate1
|
3292
3361
|
end
|
3293
3362
|
|
3294
|
-
def
|
3363
|
+
def _nt_non_surrogate
|
3295
3364
|
start_index = index
|
3296
|
-
if node_cache[:
|
3297
|
-
cached = node_cache[:
|
3365
|
+
if node_cache[:non_surrogate].has_key?(index)
|
3366
|
+
cached = node_cache[:non_surrogate][index]
|
3298
3367
|
if cached
|
3299
|
-
node_cache[:
|
3368
|
+
node_cache[:non_surrogate][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3300
3369
|
@index = cached.interval.end
|
3301
3370
|
end
|
3302
3371
|
return cached
|
@@ -3400,7 +3469,7 @@ module CDDLGRAMMAR
|
|
3400
3469
|
end
|
3401
3470
|
if s1.last
|
3402
3471
|
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
3403
|
-
r1.extend(
|
3472
|
+
r1.extend(NonSurrogate0)
|
3404
3473
|
else
|
3405
3474
|
@index = i1
|
3406
3475
|
r1 = nil
|
@@ -3419,270 +3488,284 @@ module CDDLGRAMMAR
|
|
3419
3488
|
end
|
3420
3489
|
s11 << r12
|
3421
3490
|
if r12
|
3422
|
-
i13 = index
|
3423
|
-
i14, s14 = index, []
|
3424
3491
|
if has_terminal?(@regexps[gr = '\A[0-7]'] ||= Regexp.new(gr), :regexp, index)
|
3425
|
-
|
3492
|
+
r13 = true
|
3426
3493
|
@index += 1
|
3427
3494
|
else
|
3428
3495
|
terminal_parse_failure('[0-7]')
|
3429
|
-
|
3496
|
+
r13 = nil
|
3430
3497
|
end
|
3431
|
-
|
3432
|
-
if
|
3433
|
-
|
3498
|
+
s11 << r13
|
3499
|
+
if r13
|
3500
|
+
s14, i14 = [], index
|
3434
3501
|
loop do
|
3435
|
-
|
3436
|
-
if
|
3437
|
-
|
3502
|
+
r15 = _nt_HEXDIG
|
3503
|
+
if r15
|
3504
|
+
s14 << r15
|
3438
3505
|
else
|
3439
3506
|
break
|
3440
3507
|
end
|
3441
|
-
if
|
3508
|
+
if s14.size == 2
|
3442
3509
|
break
|
3443
3510
|
end
|
3444
3511
|
end
|
3445
|
-
if
|
3446
|
-
@index =
|
3447
|
-
|
3512
|
+
if s14.size < 2
|
3513
|
+
@index = i14
|
3514
|
+
r14 = nil
|
3448
3515
|
else
|
3449
|
-
if
|
3516
|
+
if s14.size < 2
|
3450
3517
|
@terminal_failures.pop
|
3451
3518
|
end
|
3452
|
-
|
3519
|
+
r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
|
3453
3520
|
end
|
3454
|
-
|
3521
|
+
s11 << r14
|
3455
3522
|
end
|
3456
|
-
|
3457
|
-
|
3458
|
-
|
3523
|
+
end
|
3524
|
+
if s11.last
|
3525
|
+
r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
|
3526
|
+
r11.extend(NonSurrogate1)
|
3527
|
+
else
|
3528
|
+
@index = i11
|
3529
|
+
r11 = nil
|
3530
|
+
end
|
3531
|
+
if r11
|
3532
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
3533
|
+
r0 = r11
|
3534
|
+
else
|
3535
|
+
@index = i0
|
3536
|
+
r0 = nil
|
3537
|
+
end
|
3538
|
+
end
|
3539
|
+
|
3540
|
+
node_cache[:non_surrogate][start_index] = r0
|
3541
|
+
|
3542
|
+
r0
|
3543
|
+
end
|
3544
|
+
|
3545
|
+
module HighSurrogate0
|
3546
|
+
end
|
3547
|
+
|
3548
|
+
def _nt_high_surrogate
|
3549
|
+
start_index = index
|
3550
|
+
if node_cache[:high_surrogate].has_key?(index)
|
3551
|
+
cached = node_cache[:high_surrogate][index]
|
3552
|
+
if cached
|
3553
|
+
node_cache[:high_surrogate][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3554
|
+
@index = cached.interval.end
|
3555
|
+
end
|
3556
|
+
return cached
|
3557
|
+
end
|
3558
|
+
|
3559
|
+
i0, s0 = index, []
|
3560
|
+
if (match_len = has_terminal?("d", :insens, index))
|
3561
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3562
|
+
@index += match_len
|
3563
|
+
else
|
3564
|
+
terminal_parse_failure('"D"')
|
3565
|
+
r1 = nil
|
3566
|
+
end
|
3567
|
+
s0 << r1
|
3568
|
+
if r1
|
3569
|
+
i2 = index
|
3570
|
+
if (match_len = has_terminal?("8", false, index))
|
3571
|
+
r3 = true
|
3572
|
+
@index += match_len
|
3573
|
+
else
|
3574
|
+
terminal_parse_failure('"8"')
|
3575
|
+
r3 = nil
|
3576
|
+
end
|
3577
|
+
if r3
|
3578
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
3579
|
+
r2 = r3
|
3580
|
+
else
|
3581
|
+
if (match_len = has_terminal?("9", false, index))
|
3582
|
+
r4 = true
|
3583
|
+
@index += match_len
|
3459
3584
|
else
|
3460
|
-
|
3461
|
-
|
3585
|
+
terminal_parse_failure('"9"')
|
3586
|
+
r4 = nil
|
3462
3587
|
end
|
3463
|
-
if
|
3464
|
-
|
3465
|
-
|
3588
|
+
if r4
|
3589
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
3590
|
+
r2 = r4
|
3466
3591
|
else
|
3467
|
-
|
3468
|
-
|
3469
|
-
if (match_len = has_terminal?("8", false, index))
|
3470
|
-
r20 = true
|
3592
|
+
if (match_len = has_terminal?("a", :insens, index))
|
3593
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3471
3594
|
@index += match_len
|
3472
3595
|
else
|
3473
|
-
terminal_parse_failure('"
|
3474
|
-
|
3596
|
+
terminal_parse_failure('"A"')
|
3597
|
+
r5 = nil
|
3475
3598
|
end
|
3476
|
-
if
|
3477
|
-
|
3478
|
-
|
3599
|
+
if r5
|
3600
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
3601
|
+
r2 = r5
|
3479
3602
|
else
|
3480
|
-
if (match_len = has_terminal?("
|
3481
|
-
|
3603
|
+
if (match_len = has_terminal?("b", :insens, index))
|
3604
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3482
3605
|
@index += match_len
|
3483
3606
|
else
|
3484
|
-
terminal_parse_failure('"
|
3485
|
-
|
3486
|
-
end
|
3487
|
-
if r21
|
3488
|
-
r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
|
3489
|
-
r19 = r21
|
3490
|
-
else
|
3491
|
-
if (match_len = has_terminal?("a", :insens, index))
|
3492
|
-
r22 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3493
|
-
@index += match_len
|
3494
|
-
else
|
3495
|
-
terminal_parse_failure('"A"')
|
3496
|
-
r22 = nil
|
3497
|
-
end
|
3498
|
-
if r22
|
3499
|
-
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
3500
|
-
r19 = r22
|
3501
|
-
else
|
3502
|
-
if (match_len = has_terminal?("b", :insens, index))
|
3503
|
-
r23 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3504
|
-
@index += match_len
|
3505
|
-
else
|
3506
|
-
terminal_parse_failure('"B"')
|
3507
|
-
r23 = nil
|
3508
|
-
end
|
3509
|
-
if r23
|
3510
|
-
r23 = SyntaxNode.new(input, (index-1)...index) if r23 == true
|
3511
|
-
r19 = r23
|
3512
|
-
else
|
3513
|
-
@index = i19
|
3514
|
-
r19 = nil
|
3515
|
-
end
|
3516
|
-
end
|
3517
|
-
end
|
3518
|
-
end
|
3519
|
-
s18 << r19
|
3520
|
-
if r19
|
3521
|
-
s24, i24 = [], index
|
3522
|
-
loop do
|
3523
|
-
r25 = _nt_HEXDIG
|
3524
|
-
if r25
|
3525
|
-
s24 << r25
|
3526
|
-
else
|
3527
|
-
break
|
3528
|
-
end
|
3529
|
-
if s24.size == 2
|
3530
|
-
break
|
3531
|
-
end
|
3607
|
+
terminal_parse_failure('"B"')
|
3608
|
+
r6 = nil
|
3532
3609
|
end
|
3533
|
-
if
|
3534
|
-
|
3535
|
-
|
3610
|
+
if r6
|
3611
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
3612
|
+
r2 = r6
|
3536
3613
|
else
|
3537
|
-
|
3538
|
-
|
3539
|
-
end
|
3540
|
-
r24 = instantiate_node(SyntaxNode,input, i24...index, s24)
|
3541
|
-
end
|
3542
|
-
s18 << r24
|
3543
|
-
if r24
|
3544
|
-
if (match_len = has_terminal?("\\", false, index))
|
3545
|
-
r26 = true
|
3546
|
-
@index += match_len
|
3547
|
-
else
|
3548
|
-
terminal_parse_failure('"\\\\"')
|
3549
|
-
r26 = nil
|
3550
|
-
end
|
3551
|
-
s18 << r26
|
3552
|
-
if r26
|
3553
|
-
if (match_len = has_terminal?("u", false, index))
|
3554
|
-
r27 = true
|
3555
|
-
@index += match_len
|
3556
|
-
else
|
3557
|
-
terminal_parse_failure('"u"')
|
3558
|
-
r27 = nil
|
3559
|
-
end
|
3560
|
-
s18 << r27
|
3561
|
-
if r27
|
3562
|
-
if (match_len = has_terminal?("d", :insens, index))
|
3563
|
-
r28 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3564
|
-
@index += match_len
|
3565
|
-
else
|
3566
|
-
terminal_parse_failure('"D"')
|
3567
|
-
r28 = nil
|
3568
|
-
end
|
3569
|
-
s18 << r28
|
3570
|
-
if r28
|
3571
|
-
i29 = index
|
3572
|
-
if (match_len = has_terminal?("c", :insens, index))
|
3573
|
-
r30 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3574
|
-
@index += match_len
|
3575
|
-
else
|
3576
|
-
terminal_parse_failure('"C"')
|
3577
|
-
r30 = nil
|
3578
|
-
end
|
3579
|
-
if r30
|
3580
|
-
r30 = SyntaxNode.new(input, (index-1)...index) if r30 == true
|
3581
|
-
r29 = r30
|
3582
|
-
else
|
3583
|
-
if (match_len = has_terminal?("d", :insens, index))
|
3584
|
-
r31 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3585
|
-
@index += match_len
|
3586
|
-
else
|
3587
|
-
terminal_parse_failure('"D"')
|
3588
|
-
r31 = nil
|
3589
|
-
end
|
3590
|
-
if r31
|
3591
|
-
r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
|
3592
|
-
r29 = r31
|
3593
|
-
else
|
3594
|
-
if (match_len = has_terminal?("e", :insens, index))
|
3595
|
-
r32 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3596
|
-
@index += match_len
|
3597
|
-
else
|
3598
|
-
terminal_parse_failure('"E"')
|
3599
|
-
r32 = nil
|
3600
|
-
end
|
3601
|
-
if r32
|
3602
|
-
r32 = SyntaxNode.new(input, (index-1)...index) if r32 == true
|
3603
|
-
r29 = r32
|
3604
|
-
else
|
3605
|
-
if (match_len = has_terminal?("f", :insens, index))
|
3606
|
-
r33 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3607
|
-
@index += match_len
|
3608
|
-
else
|
3609
|
-
terminal_parse_failure('"F"')
|
3610
|
-
r33 = nil
|
3611
|
-
end
|
3612
|
-
if r33
|
3613
|
-
r33 = SyntaxNode.new(input, (index-1)...index) if r33 == true
|
3614
|
-
r29 = r33
|
3615
|
-
else
|
3616
|
-
@index = i29
|
3617
|
-
r29 = nil
|
3618
|
-
end
|
3619
|
-
end
|
3620
|
-
end
|
3621
|
-
end
|
3622
|
-
s18 << r29
|
3623
|
-
if r29
|
3624
|
-
s34, i34 = [], index
|
3625
|
-
loop do
|
3626
|
-
r35 = _nt_HEXDIG
|
3627
|
-
if r35
|
3628
|
-
s34 << r35
|
3629
|
-
else
|
3630
|
-
break
|
3631
|
-
end
|
3632
|
-
if s34.size == 2
|
3633
|
-
break
|
3634
|
-
end
|
3635
|
-
end
|
3636
|
-
if s34.size < 2
|
3637
|
-
@index = i34
|
3638
|
-
r34 = nil
|
3639
|
-
else
|
3640
|
-
if s34.size < 2
|
3641
|
-
@terminal_failures.pop
|
3642
|
-
end
|
3643
|
-
r34 = instantiate_node(SyntaxNode,input, i34...index, s34)
|
3644
|
-
end
|
3645
|
-
s18 << r34
|
3646
|
-
end
|
3647
|
-
end
|
3648
|
-
end
|
3649
|
-
end
|
3614
|
+
@index = i2
|
3615
|
+
r2 = nil
|
3650
3616
|
end
|
3651
3617
|
end
|
3652
|
-
|
3653
|
-
|
3654
|
-
|
3618
|
+
end
|
3619
|
+
end
|
3620
|
+
s0 << r2
|
3621
|
+
if r2
|
3622
|
+
s7, i7 = [], index
|
3623
|
+
loop do
|
3624
|
+
r8 = _nt_HEXDIG
|
3625
|
+
if r8
|
3626
|
+
s7 << r8
|
3655
3627
|
else
|
3656
|
-
|
3657
|
-
r18 = nil
|
3628
|
+
break
|
3658
3629
|
end
|
3659
|
-
if
|
3660
|
-
|
3661
|
-
r13 = r18
|
3662
|
-
else
|
3663
|
-
@index = i13
|
3664
|
-
r13 = nil
|
3630
|
+
if s7.size == 2
|
3631
|
+
break
|
3665
3632
|
end
|
3666
3633
|
end
|
3667
|
-
|
3634
|
+
if s7.size < 2
|
3635
|
+
@index = i7
|
3636
|
+
r7 = nil
|
3637
|
+
else
|
3638
|
+
if s7.size < 2
|
3639
|
+
@terminal_failures.pop
|
3640
|
+
end
|
3641
|
+
r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
|
3642
|
+
end
|
3643
|
+
s0 << r7
|
3668
3644
|
end
|
3669
|
-
|
3670
|
-
|
3671
|
-
|
3645
|
+
end
|
3646
|
+
if s0.last
|
3647
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
3648
|
+
r0.extend(HighSurrogate0)
|
3649
|
+
else
|
3650
|
+
@index = i0
|
3651
|
+
r0 = nil
|
3652
|
+
end
|
3653
|
+
|
3654
|
+
node_cache[:high_surrogate][start_index] = r0
|
3655
|
+
|
3656
|
+
r0
|
3657
|
+
end
|
3658
|
+
|
3659
|
+
module LowSurrogate0
|
3660
|
+
end
|
3661
|
+
|
3662
|
+
def _nt_low_surrogate
|
3663
|
+
start_index = index
|
3664
|
+
if node_cache[:low_surrogate].has_key?(index)
|
3665
|
+
cached = node_cache[:low_surrogate][index]
|
3666
|
+
if cached
|
3667
|
+
node_cache[:low_surrogate][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3668
|
+
@index = cached.interval.end
|
3669
|
+
end
|
3670
|
+
return cached
|
3671
|
+
end
|
3672
|
+
|
3673
|
+
i0, s0 = index, []
|
3674
|
+
if (match_len = has_terminal?("d", :insens, index))
|
3675
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3676
|
+
@index += match_len
|
3677
|
+
else
|
3678
|
+
terminal_parse_failure('"D"')
|
3679
|
+
r1 = nil
|
3680
|
+
end
|
3681
|
+
s0 << r1
|
3682
|
+
if r1
|
3683
|
+
i2 = index
|
3684
|
+
if (match_len = has_terminal?("c", :insens, index))
|
3685
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3686
|
+
@index += match_len
|
3672
3687
|
else
|
3673
|
-
|
3674
|
-
|
3688
|
+
terminal_parse_failure('"C"')
|
3689
|
+
r3 = nil
|
3675
3690
|
end
|
3676
|
-
if
|
3677
|
-
|
3678
|
-
|
3691
|
+
if r3
|
3692
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
3693
|
+
r2 = r3
|
3679
3694
|
else
|
3680
|
-
|
3681
|
-
|
3695
|
+
if (match_len = has_terminal?("d", :insens, index))
|
3696
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3697
|
+
@index += match_len
|
3698
|
+
else
|
3699
|
+
terminal_parse_failure('"D"')
|
3700
|
+
r4 = nil
|
3701
|
+
end
|
3702
|
+
if r4
|
3703
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
3704
|
+
r2 = r4
|
3705
|
+
else
|
3706
|
+
if (match_len = has_terminal?("e", :insens, index))
|
3707
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3708
|
+
@index += match_len
|
3709
|
+
else
|
3710
|
+
terminal_parse_failure('"E"')
|
3711
|
+
r5 = nil
|
3712
|
+
end
|
3713
|
+
if r5
|
3714
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
3715
|
+
r2 = r5
|
3716
|
+
else
|
3717
|
+
if (match_len = has_terminal?("f", :insens, index))
|
3718
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
3719
|
+
@index += match_len
|
3720
|
+
else
|
3721
|
+
terminal_parse_failure('"F"')
|
3722
|
+
r6 = nil
|
3723
|
+
end
|
3724
|
+
if r6
|
3725
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
3726
|
+
r2 = r6
|
3727
|
+
else
|
3728
|
+
@index = i2
|
3729
|
+
r2 = nil
|
3730
|
+
end
|
3731
|
+
end
|
3732
|
+
end
|
3733
|
+
end
|
3734
|
+
s0 << r2
|
3735
|
+
if r2
|
3736
|
+
s7, i7 = [], index
|
3737
|
+
loop do
|
3738
|
+
r8 = _nt_HEXDIG
|
3739
|
+
if r8
|
3740
|
+
s7 << r8
|
3741
|
+
else
|
3742
|
+
break
|
3743
|
+
end
|
3744
|
+
if s7.size == 2
|
3745
|
+
break
|
3746
|
+
end
|
3747
|
+
end
|
3748
|
+
if s7.size < 2
|
3749
|
+
@index = i7
|
3750
|
+
r7 = nil
|
3751
|
+
else
|
3752
|
+
if s7.size < 2
|
3753
|
+
@terminal_failures.pop
|
3754
|
+
end
|
3755
|
+
r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
|
3756
|
+
end
|
3757
|
+
s0 << r7
|
3682
3758
|
end
|
3683
3759
|
end
|
3760
|
+
if s0.last
|
3761
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
3762
|
+
r0.extend(LowSurrogate0)
|
3763
|
+
else
|
3764
|
+
@index = i0
|
3765
|
+
r0 = nil
|
3766
|
+
end
|
3684
3767
|
|
3685
|
-
node_cache[:
|
3768
|
+
node_cache[:low_surrogate][start_index] = r0
|
3686
3769
|
|
3687
3770
|
r0
|
3688
3771
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cddlc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|