cddlc 0.0.3 → 0.0.4
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/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
         
     |