edn-abnf 0.1.4 → 0.1.5
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/edn-abnf.gemspec +1 -1
 - data/lib/parser/edngrammar.rb +276 -134
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a595a62b037a2f01e97e65a81ded57ab06f7bb8644b13b154ec0cff3bc10024c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 9e08a40602ace456c0f354dd9c0faa377bfa5dc45e8f457210808d0933cb49ab
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: af634c12b0f15f52f1693e5ffc341bdb3c212cb162fbb34b912183d525069029a2c946a8b09143da497fda2726407d22f46e1ebce3f75bbe70550bceb6ac9566
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: d17d1bb4da4943e31d2670a21e05b7a0ce4f74bbb202e5732f7f93bef469301b4c600168e48615a4458cab1c7d84b60dcd7b9ba4bc331ef6ed7ff63cb84080a9
         
     | 
    
        data/edn-abnf.gemspec
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       2 
2 
     | 
    
         
             
              s.name = "edn-abnf"
         
     | 
| 
       3 
     | 
    
         
            -
              s.version = "0.1. 
     | 
| 
      
 3 
     | 
    
         
            +
              s.version = "0.1.5"
         
     | 
| 
       4 
4 
     | 
    
         
             
              s.summary = "CBOR Extended Diagnostic Notation (EDN) implemented in ABNF"
         
     | 
| 
       5 
5 
     | 
    
         
             
              s.description = %q{edn-abnf implements converters and miscellaneous tools for CBOR EDN's ABNF}
         
     | 
| 
       6 
6 
     | 
    
         
             
              s.author = "Carsten Bormann"
         
     | 
    
        data/lib/parser/edngrammar.rb
    CHANGED
    
    | 
         @@ -576,14 +576,21 @@ module EDNGRAMMAR 
     | 
|
| 
       576 
576 
     | 
    
         
             
              end
         
     | 
| 
       577 
577 
     | 
    
         | 
| 
       578 
578 
     | 
    
         
             
              module Decnumber3
         
     | 
| 
      
 579 
     | 
    
         
            +
              end
         
     | 
| 
      
 580 
     | 
    
         
            +
             
     | 
| 
      
 581 
     | 
    
         
            +
              module Decnumber4
         
     | 
| 
      
 582 
     | 
    
         
            +
              end
         
     | 
| 
      
 583 
     | 
    
         
            +
             
     | 
| 
      
 584 
     | 
    
         
            +
              module Decnumber5
         
     | 
| 
       579 
585 
     | 
    
         
             
                def ast
         
     | 
| 
       580 
     | 
    
         
            -
                   
     | 
| 
       581 
     | 
    
         
            -
                   
     | 
| 
       582 
     | 
    
         
            -
             
     | 
| 
       583 
     | 
    
         
            -
             
     | 
| 
       584 
     | 
    
         
            -
                     
     | 
| 
      
 586 
     | 
    
         
            +
                  tv = text_value
         
     | 
| 
      
 587 
     | 
    
         
            +
                  if /[.e]/i =~ tv
         
     | 
| 
      
 588 
     | 
    
         
            +
                    sp = elements[0].text_value
         
     | 
| 
      
 589 
     | 
    
         
            +
                    mp = elements[1].text_value.sub(/\A\./, "0.").sub(/\.\z/, ".0")
         
     | 
| 
      
 590 
     | 
    
         
            +
                    ep = elements[2].text_value
         
     | 
| 
      
 591 
     | 
    
         
            +
                    (sp + mp + ep).to_f
         
     | 
| 
       585 
592 
     | 
    
         
             
                  else
         
     | 
| 
       586 
     | 
    
         
            -
                     
     | 
| 
      
 593 
     | 
    
         
            +
                    tv.to_i
         
     | 
| 
       587 
594 
     | 
    
         
             
                  end
         
     | 
| 
       588 
595 
     | 
    
         
             
                end
         
     | 
| 
       589 
596 
     | 
    
         
             
              end
         
     | 
| 
         @@ -608,120 +615,171 @@ module EDNGRAMMAR 
     | 
|
| 
       608 
615 
     | 
    
         
             
                end
         
     | 
| 
       609 
616 
     | 
    
         
             
                s0 << r1
         
     | 
| 
       610 
617 
     | 
    
         
             
                if r1
         
     | 
| 
       611 
     | 
    
         
            -
                   
     | 
| 
      
 618 
     | 
    
         
            +
                  i3 = index
         
     | 
| 
      
 619 
     | 
    
         
            +
                  i4, s4 = index, []
         
     | 
| 
      
 620 
     | 
    
         
            +
                  s5, i5 = [], index
         
     | 
| 
       612 
621 
     | 
    
         
             
                  loop do
         
     | 
| 
       613 
     | 
    
         
            -
                     
     | 
| 
       614 
     | 
    
         
            -
                    if  
     | 
| 
       615 
     | 
    
         
            -
                       
     | 
| 
      
 622 
     | 
    
         
            +
                    r6 = _nt_DIGIT
         
     | 
| 
      
 623 
     | 
    
         
            +
                    if r6
         
     | 
| 
      
 624 
     | 
    
         
            +
                      s5 << r6
         
     | 
| 
       616 
625 
     | 
    
         
             
                    else
         
     | 
| 
       617 
626 
     | 
    
         
             
                      break
         
     | 
| 
       618 
627 
     | 
    
         
             
                    end
         
     | 
| 
       619 
628 
     | 
    
         
             
                  end
         
     | 
| 
       620 
     | 
    
         
            -
                  if  
     | 
| 
       621 
     | 
    
         
            -
                    @index =  
     | 
| 
       622 
     | 
    
         
            -
                     
     | 
| 
      
 629 
     | 
    
         
            +
                  if s5.empty?
         
     | 
| 
      
 630 
     | 
    
         
            +
                    @index = i5
         
     | 
| 
      
 631 
     | 
    
         
            +
                    r5 = nil
         
     | 
| 
       623 
632 
     | 
    
         
             
                  else
         
     | 
| 
       624 
     | 
    
         
            -
                     
     | 
| 
      
 633 
     | 
    
         
            +
                    r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
         
     | 
| 
       625 
634 
     | 
    
         
             
                  end
         
     | 
| 
       626 
     | 
    
         
            -
                   
     | 
| 
       627 
     | 
    
         
            -
                  if  
     | 
| 
       628 
     | 
    
         
            -
                     
     | 
| 
      
 635 
     | 
    
         
            +
                  s4 << r5
         
     | 
| 
      
 636 
     | 
    
         
            +
                  if r5
         
     | 
| 
      
 637 
     | 
    
         
            +
                    i8, s8 = index, []
         
     | 
| 
       629 
638 
     | 
    
         
             
                    if (match_len = has_terminal?(".", false, index))
         
     | 
| 
       630 
     | 
    
         
            -
                       
     | 
| 
      
 639 
     | 
    
         
            +
                      r9 = true
         
     | 
| 
       631 
640 
     | 
    
         
             
                      @index += match_len
         
     | 
| 
       632 
641 
     | 
    
         
             
                    else
         
     | 
| 
       633 
642 
     | 
    
         
             
                      terminal_parse_failure('"."')
         
     | 
| 
       634 
     | 
    
         
            -
                       
     | 
| 
      
 643 
     | 
    
         
            +
                      r9 = nil
         
     | 
| 
       635 
644 
     | 
    
         
             
                    end
         
     | 
| 
       636 
     | 
    
         
            -
                     
     | 
| 
       637 
     | 
    
         
            -
                    if  
     | 
| 
       638 
     | 
    
         
            -
                       
     | 
| 
      
 645 
     | 
    
         
            +
                    s8 << r9
         
     | 
| 
      
 646 
     | 
    
         
            +
                    if r9
         
     | 
| 
      
 647 
     | 
    
         
            +
                      s10, i10 = [], index
         
     | 
| 
       639 
648 
     | 
    
         
             
                      loop do
         
     | 
| 
       640 
     | 
    
         
            -
                         
     | 
| 
       641 
     | 
    
         
            -
                        if  
     | 
| 
       642 
     | 
    
         
            -
                           
     | 
| 
      
 649 
     | 
    
         
            +
                        r11 = _nt_DIGIT
         
     | 
| 
      
 650 
     | 
    
         
            +
                        if r11
         
     | 
| 
      
 651 
     | 
    
         
            +
                          s10 << r11
         
     | 
| 
       643 
652 
     | 
    
         
             
                        else
         
     | 
| 
       644 
653 
     | 
    
         
             
                          break
         
     | 
| 
       645 
654 
     | 
    
         
             
                        end
         
     | 
| 
       646 
655 
     | 
    
         
             
                      end
         
     | 
| 
       647 
     | 
    
         
            -
                       
     | 
| 
       648 
     | 
    
         
            -
             
     | 
| 
       649 
     | 
    
         
            -
             
     | 
| 
      
 656 
     | 
    
         
            +
                      r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
         
     | 
| 
      
 657 
     | 
    
         
            +
                      s8 << r10
         
     | 
| 
      
 658 
     | 
    
         
            +
                    end
         
     | 
| 
      
 659 
     | 
    
         
            +
                    if s8.last
         
     | 
| 
      
 660 
     | 
    
         
            +
                      r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
         
     | 
| 
      
 661 
     | 
    
         
            +
                      r8.extend(Decnumber0)
         
     | 
| 
      
 662 
     | 
    
         
            +
                    else
         
     | 
| 
      
 663 
     | 
    
         
            +
                      @index = i8
         
     | 
| 
      
 664 
     | 
    
         
            +
                      r8 = nil
         
     | 
| 
      
 665 
     | 
    
         
            +
                    end
         
     | 
| 
      
 666 
     | 
    
         
            +
                    if r8
         
     | 
| 
      
 667 
     | 
    
         
            +
                      r7 = r8
         
     | 
| 
      
 668 
     | 
    
         
            +
                    else
         
     | 
| 
      
 669 
     | 
    
         
            +
                      r7 = instantiate_node(SyntaxNode,input, index...index)
         
     | 
| 
      
 670 
     | 
    
         
            +
                    end
         
     | 
| 
      
 671 
     | 
    
         
            +
                    s4 << r7
         
     | 
| 
      
 672 
     | 
    
         
            +
                  end
         
     | 
| 
      
 673 
     | 
    
         
            +
                  if s4.last
         
     | 
| 
      
 674 
     | 
    
         
            +
                    r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
         
     | 
| 
      
 675 
     | 
    
         
            +
                    r4.extend(Decnumber1)
         
     | 
| 
      
 676 
     | 
    
         
            +
                  else
         
     | 
| 
      
 677 
     | 
    
         
            +
                    @index = i4
         
     | 
| 
      
 678 
     | 
    
         
            +
                    r4 = nil
         
     | 
| 
      
 679 
     | 
    
         
            +
                  end
         
     | 
| 
      
 680 
     | 
    
         
            +
                  if r4
         
     | 
| 
      
 681 
     | 
    
         
            +
                    r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
         
     | 
| 
      
 682 
     | 
    
         
            +
                    r3 = r4
         
     | 
| 
      
 683 
     | 
    
         
            +
                  else
         
     | 
| 
      
 684 
     | 
    
         
            +
                    i12, s12 = index, []
         
     | 
| 
      
 685 
     | 
    
         
            +
                    if (match_len = has_terminal?(".", false, index))
         
     | 
| 
      
 686 
     | 
    
         
            +
                      r13 = true
         
     | 
| 
      
 687 
     | 
    
         
            +
                      @index += match_len
         
     | 
| 
      
 688 
     | 
    
         
            +
                    else
         
     | 
| 
      
 689 
     | 
    
         
            +
                      terminal_parse_failure('"."')
         
     | 
| 
      
 690 
     | 
    
         
            +
                      r13 = nil
         
     | 
| 
      
 691 
     | 
    
         
            +
                    end
         
     | 
| 
      
 692 
     | 
    
         
            +
                    s12 << r13
         
     | 
| 
      
 693 
     | 
    
         
            +
                    if r13
         
     | 
| 
      
 694 
     | 
    
         
            +
                      s14, i14 = [], index
         
     | 
| 
      
 695 
     | 
    
         
            +
                      loop do
         
     | 
| 
      
 696 
     | 
    
         
            +
                        r15 = _nt_DIGIT
         
     | 
| 
      
 697 
     | 
    
         
            +
                        if r15
         
     | 
| 
      
 698 
     | 
    
         
            +
                          s14 << r15
         
     | 
| 
      
 699 
     | 
    
         
            +
                        else
         
     | 
| 
      
 700 
     | 
    
         
            +
                          break
         
     | 
| 
      
 701 
     | 
    
         
            +
                        end
         
     | 
| 
      
 702 
     | 
    
         
            +
                      end
         
     | 
| 
      
 703 
     | 
    
         
            +
                      if s14.empty?
         
     | 
| 
      
 704 
     | 
    
         
            +
                        @index = i14
         
     | 
| 
      
 705 
     | 
    
         
            +
                        r14 = nil
         
     | 
| 
       650 
706 
     | 
    
         
             
                      else
         
     | 
| 
       651 
     | 
    
         
            -
                         
     | 
| 
      
 707 
     | 
    
         
            +
                        r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
         
     | 
| 
       652 
708 
     | 
    
         
             
                      end
         
     | 
| 
       653 
     | 
    
         
            -
                       
     | 
| 
      
 709 
     | 
    
         
            +
                      s12 << r14
         
     | 
| 
       654 
710 
     | 
    
         
             
                    end
         
     | 
| 
       655 
     | 
    
         
            -
                    if  
     | 
| 
       656 
     | 
    
         
            -
                       
     | 
| 
       657 
     | 
    
         
            -
                       
     | 
| 
      
 711 
     | 
    
         
            +
                    if s12.last
         
     | 
| 
      
 712 
     | 
    
         
            +
                      r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
         
     | 
| 
      
 713 
     | 
    
         
            +
                      r12.extend(Decnumber2)
         
     | 
| 
       658 
714 
     | 
    
         
             
                    else
         
     | 
| 
       659 
     | 
    
         
            -
                      @index =  
     | 
| 
       660 
     | 
    
         
            -
                       
     | 
| 
      
 715 
     | 
    
         
            +
                      @index = i12
         
     | 
| 
      
 716 
     | 
    
         
            +
                      r12 = nil
         
     | 
| 
       661 
717 
     | 
    
         
             
                    end
         
     | 
| 
       662 
     | 
    
         
            -
                    if  
     | 
| 
       663 
     | 
    
         
            -
                       
     | 
| 
      
 718 
     | 
    
         
            +
                    if r12
         
     | 
| 
      
 719 
     | 
    
         
            +
                      r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
         
     | 
| 
      
 720 
     | 
    
         
            +
                      r3 = r12
         
     | 
| 
       664 
721 
     | 
    
         
             
                    else
         
     | 
| 
       665 
     | 
    
         
            -
                       
     | 
| 
      
 722 
     | 
    
         
            +
                      @index = i3
         
     | 
| 
      
 723 
     | 
    
         
            +
                      r3 = nil
         
     | 
| 
       666 
724 
     | 
    
         
             
                    end
         
     | 
| 
       667 
     | 
    
         
            -
             
     | 
| 
       668 
     | 
    
         
            -
             
     | 
| 
       669 
     | 
    
         
            -
             
     | 
| 
       670 
     | 
    
         
            -
             
     | 
| 
       671 
     | 
    
         
            -
             
     | 
| 
       672 
     | 
    
         
            -
             
     | 
| 
      
 725 
     | 
    
         
            +
                  end
         
     | 
| 
      
 726 
     | 
    
         
            +
                  s0 << r3
         
     | 
| 
      
 727 
     | 
    
         
            +
                  if r3
         
     | 
| 
      
 728 
     | 
    
         
            +
                    i17, s17 = index, []
         
     | 
| 
      
 729 
     | 
    
         
            +
                    if (match_len = has_terminal?("e", :insens, index))
         
     | 
| 
      
 730 
     | 
    
         
            +
                      r18 = instantiate_node(SyntaxNode,input, index...(index + match_len))
         
     | 
| 
      
 731 
     | 
    
         
            +
                      @index += match_len
         
     | 
| 
      
 732 
     | 
    
         
            +
                    else
         
     | 
| 
      
 733 
     | 
    
         
            +
                      terminal_parse_failure('"e"')
         
     | 
| 
      
 734 
     | 
    
         
            +
                      r18 = nil
         
     | 
| 
      
 735 
     | 
    
         
            +
                    end
         
     | 
| 
      
 736 
     | 
    
         
            +
                    s17 << r18
         
     | 
| 
      
 737 
     | 
    
         
            +
                    if r18
         
     | 
| 
      
 738 
     | 
    
         
            +
                      r20 = _nt_sign
         
     | 
| 
      
 739 
     | 
    
         
            +
                      if r20
         
     | 
| 
      
 740 
     | 
    
         
            +
                        r19 = r20
         
     | 
| 
       673 
741 
     | 
    
         
             
                      else
         
     | 
| 
       674 
     | 
    
         
            -
                         
     | 
| 
       675 
     | 
    
         
            -
                        r12 = nil
         
     | 
| 
      
 742 
     | 
    
         
            +
                        r19 = instantiate_node(SyntaxNode,input, index...index)
         
     | 
| 
       676 
743 
     | 
    
         
             
                      end
         
     | 
| 
       677 
     | 
    
         
            -
                       
     | 
| 
       678 
     | 
    
         
            -
                      if  
     | 
| 
       679 
     | 
    
         
            -
                         
     | 
| 
       680 
     | 
    
         
            -
                         
     | 
| 
       681 
     | 
    
         
            -
                           
     | 
| 
       682 
     | 
    
         
            -
             
     | 
| 
       683 
     | 
    
         
            -
             
     | 
| 
       684 
     | 
    
         
            -
                        end
         
     | 
| 
       685 
     | 
    
         
            -
                        s11 << r13
         
     | 
| 
       686 
     | 
    
         
            -
                        if r13
         
     | 
| 
       687 
     | 
    
         
            -
                          s15, i15 = [], index
         
     | 
| 
       688 
     | 
    
         
            -
                          loop do
         
     | 
| 
       689 
     | 
    
         
            -
                            r16 = _nt_DIGIT
         
     | 
| 
       690 
     | 
    
         
            -
                            if r16
         
     | 
| 
       691 
     | 
    
         
            -
                              s15 << r16
         
     | 
| 
       692 
     | 
    
         
            -
                            else
         
     | 
| 
       693 
     | 
    
         
            -
                              break
         
     | 
| 
       694 
     | 
    
         
            -
                            end
         
     | 
| 
       695 
     | 
    
         
            -
                          end
         
     | 
| 
       696 
     | 
    
         
            -
                          if s15.empty?
         
     | 
| 
       697 
     | 
    
         
            -
                            @index = i15
         
     | 
| 
       698 
     | 
    
         
            -
                            r15 = nil
         
     | 
| 
      
 744 
     | 
    
         
            +
                      s17 << r19
         
     | 
| 
      
 745 
     | 
    
         
            +
                      if r19
         
     | 
| 
      
 746 
     | 
    
         
            +
                        s21, i21 = [], index
         
     | 
| 
      
 747 
     | 
    
         
            +
                        loop do
         
     | 
| 
      
 748 
     | 
    
         
            +
                          r22 = _nt_DIGIT
         
     | 
| 
      
 749 
     | 
    
         
            +
                          if r22
         
     | 
| 
      
 750 
     | 
    
         
            +
                            s21 << r22
         
     | 
| 
       699 
751 
     | 
    
         
             
                          else
         
     | 
| 
       700 
     | 
    
         
            -
                             
     | 
| 
      
 752 
     | 
    
         
            +
                            break
         
     | 
| 
       701 
753 
     | 
    
         
             
                          end
         
     | 
| 
       702 
     | 
    
         
            -
                          s11 << r15
         
     | 
| 
       703 
754 
     | 
    
         
             
                        end
         
     | 
| 
      
 755 
     | 
    
         
            +
                        if s21.empty?
         
     | 
| 
      
 756 
     | 
    
         
            +
                          @index = i21
         
     | 
| 
      
 757 
     | 
    
         
            +
                          r21 = nil
         
     | 
| 
      
 758 
     | 
    
         
            +
                        else
         
     | 
| 
      
 759 
     | 
    
         
            +
                          r21 = instantiate_node(SyntaxNode,input, i21...index, s21)
         
     | 
| 
      
 760 
     | 
    
         
            +
                        end
         
     | 
| 
      
 761 
     | 
    
         
            +
                        s17 << r21
         
     | 
| 
       704 
762 
     | 
    
         
             
                      end
         
     | 
| 
       705 
     | 
    
         
            -
                      if s11.last
         
     | 
| 
       706 
     | 
    
         
            -
                        r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
         
     | 
| 
       707 
     | 
    
         
            -
                        r11.extend(Decnumber1)
         
     | 
| 
       708 
     | 
    
         
            -
                      else
         
     | 
| 
       709 
     | 
    
         
            -
                        @index = i11
         
     | 
| 
       710 
     | 
    
         
            -
                        r11 = nil
         
     | 
| 
       711 
     | 
    
         
            -
                      end
         
     | 
| 
       712 
     | 
    
         
            -
                      if r11
         
     | 
| 
       713 
     | 
    
         
            -
                        r10 = r11
         
     | 
| 
       714 
     | 
    
         
            -
                      else
         
     | 
| 
       715 
     | 
    
         
            -
                        r10 = instantiate_node(SyntaxNode,input, index...index)
         
     | 
| 
       716 
     | 
    
         
            -
                      end
         
     | 
| 
       717 
     | 
    
         
            -
                      s0 << r10
         
     | 
| 
       718 
763 
     | 
    
         
             
                    end
         
     | 
| 
      
 764 
     | 
    
         
            +
                    if s17.last
         
     | 
| 
      
 765 
     | 
    
         
            +
                      r17 = instantiate_node(SyntaxNode,input, i17...index, s17)
         
     | 
| 
      
 766 
     | 
    
         
            +
                      r17.extend(Decnumber3)
         
     | 
| 
      
 767 
     | 
    
         
            +
                    else
         
     | 
| 
      
 768 
     | 
    
         
            +
                      @index = i17
         
     | 
| 
      
 769 
     | 
    
         
            +
                      r17 = nil
         
     | 
| 
      
 770 
     | 
    
         
            +
                    end
         
     | 
| 
      
 771 
     | 
    
         
            +
                    if r17
         
     | 
| 
      
 772 
     | 
    
         
            +
                      r16 = r17
         
     | 
| 
      
 773 
     | 
    
         
            +
                    else
         
     | 
| 
      
 774 
     | 
    
         
            +
                      r16 = instantiate_node(SyntaxNode,input, index...index)
         
     | 
| 
      
 775 
     | 
    
         
            +
                    end
         
     | 
| 
      
 776 
     | 
    
         
            +
                    s0 << r16
         
     | 
| 
       719 
777 
     | 
    
         
             
                  end
         
     | 
| 
       720 
778 
     | 
    
         
             
                end
         
     | 
| 
       721 
779 
     | 
    
         
             
                if s0.last
         
     | 
| 
       722 
780 
     | 
    
         
             
                  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
         
     | 
| 
       723 
     | 
    
         
            -
                  r0.extend( 
     | 
| 
       724 
     | 
    
         
            -
                  r0.extend( 
     | 
| 
      
 781 
     | 
    
         
            +
                  r0.extend(Decnumber4)
         
     | 
| 
      
 782 
     | 
    
         
            +
                  r0.extend(Decnumber5)
         
     | 
| 
       725 
783 
     | 
    
         
             
                else
         
     | 
| 
       726 
784 
     | 
    
         
             
                  @index = i0
         
     | 
| 
       727 
785 
     | 
    
         
             
                  r0 = nil
         
     | 
| 
         @@ -751,7 +809,10 @@ module EDNGRAMMAR 
     | 
|
| 
       751 
809 
     | 
    
         
             
              end
         
     | 
| 
       752 
810 
     | 
    
         | 
| 
       753 
811 
     | 
    
         
             
              module Basenumber6
         
     | 
| 
       754 
     | 
    
         
            -
             
     | 
| 
      
 812 
     | 
    
         
            +
              end
         
     | 
| 
      
 813 
     | 
    
         
            +
             
     | 
| 
      
 814 
     | 
    
         
            +
              module Basenumber7
         
     | 
| 
      
 815 
     | 
    
         
            +
                def ast; /p/i =~ text_value ? Float(text_value.sub(/x\./i, "x0.").sub(/\.p/i, ".0p")) : Integer(text_value) end
         
     | 
| 
       755 
816 
     | 
    
         
             
              end
         
     | 
| 
       756 
817 
     | 
    
         | 
| 
       757 
818 
     | 
    
         
             
              def _nt_basenumber
         
     | 
| 
         @@ -831,12 +892,7 @@ module EDNGRAMMAR 
     | 
|
| 
       831 
892 
     | 
    
         
             
                              break
         
     | 
| 
       832 
893 
     | 
    
         
             
                            end
         
     | 
| 
       833 
894 
     | 
    
         
             
                          end
         
     | 
| 
       834 
     | 
    
         
            -
                           
     | 
| 
       835 
     | 
    
         
            -
                            @index = i14
         
     | 
| 
       836 
     | 
    
         
            -
                            r14 = nil
         
     | 
| 
       837 
     | 
    
         
            -
                          else
         
     | 
| 
       838 
     | 
    
         
            -
                            r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
         
     | 
| 
       839 
     | 
    
         
            -
                          end
         
     | 
| 
      
 895 
     | 
    
         
            +
                          r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
         
     | 
| 
       840 
896 
     | 
    
         
             
                          s12 << r14
         
     | 
| 
       841 
897 
     | 
    
         
             
                        end
         
     | 
| 
       842 
898 
     | 
    
         
             
                        if s12.last
         
     | 
| 
         @@ -916,31 +972,78 @@ module EDNGRAMMAR 
     | 
|
| 
       916 
972 
     | 
    
         
             
                      r4 = r5
         
     | 
| 
       917 
973 
     | 
    
         
             
                    else
         
     | 
| 
       918 
974 
     | 
    
         
             
                      i21, s21 = index, []
         
     | 
| 
       919 
     | 
    
         
            -
                      if (match_len = has_terminal?(" 
     | 
| 
      
 975 
     | 
    
         
            +
                      if (match_len = has_terminal?("x", :insens, index))
         
     | 
| 
       920 
976 
     | 
    
         
             
                        r22 = instantiate_node(SyntaxNode,input, index...(index + match_len))
         
     | 
| 
       921 
977 
     | 
    
         
             
                        @index += match_len
         
     | 
| 
       922 
978 
     | 
    
         
             
                      else
         
     | 
| 
       923 
     | 
    
         
            -
                        terminal_parse_failure('" 
     | 
| 
      
 979 
     | 
    
         
            +
                        terminal_parse_failure('"x"')
         
     | 
| 
       924 
980 
     | 
    
         
             
                        r22 = nil
         
     | 
| 
       925 
981 
     | 
    
         
             
                      end
         
     | 
| 
       926 
982 
     | 
    
         
             
                      s21 << r22
         
     | 
| 
       927 
983 
     | 
    
         
             
                      if r22
         
     | 
| 
       928 
     | 
    
         
            -
                         
     | 
| 
       929 
     | 
    
         
            -
             
     | 
| 
       930 
     | 
    
         
            -
                           
     | 
| 
       931 
     | 
    
         
            -
                          if r24
         
     | 
| 
       932 
     | 
    
         
            -
                            s23 << r24
         
     | 
| 
       933 
     | 
    
         
            -
                          else
         
     | 
| 
       934 
     | 
    
         
            -
                            break
         
     | 
| 
       935 
     | 
    
         
            -
                          end
         
     | 
| 
       936 
     | 
    
         
            -
                        end
         
     | 
| 
       937 
     | 
    
         
            -
                        if s23.empty?
         
     | 
| 
       938 
     | 
    
         
            -
                          @index = i23
         
     | 
| 
       939 
     | 
    
         
            -
                          r23 = nil
         
     | 
| 
      
 984 
     | 
    
         
            +
                        if (match_len = has_terminal?(".", false, index))
         
     | 
| 
      
 985 
     | 
    
         
            +
                          r23 = true
         
     | 
| 
      
 986 
     | 
    
         
            +
                          @index += match_len
         
     | 
| 
       940 
987 
     | 
    
         
             
                        else
         
     | 
| 
       941 
     | 
    
         
            -
                           
     | 
| 
      
 988 
     | 
    
         
            +
                          terminal_parse_failure('"."')
         
     | 
| 
      
 989 
     | 
    
         
            +
                          r23 = nil
         
     | 
| 
       942 
990 
     | 
    
         
             
                        end
         
     | 
| 
       943 
991 
     | 
    
         
             
                        s21 << r23
         
     | 
| 
      
 992 
     | 
    
         
            +
                        if r23
         
     | 
| 
      
 993 
     | 
    
         
            +
                          s24, i24 = [], index
         
     | 
| 
      
 994 
     | 
    
         
            +
                          loop do
         
     | 
| 
      
 995 
     | 
    
         
            +
                            r25 = _nt_HEXDIG
         
     | 
| 
      
 996 
     | 
    
         
            +
                            if r25
         
     | 
| 
      
 997 
     | 
    
         
            +
                              s24 << r25
         
     | 
| 
      
 998 
     | 
    
         
            +
                            else
         
     | 
| 
      
 999 
     | 
    
         
            +
                              break
         
     | 
| 
      
 1000 
     | 
    
         
            +
                            end
         
     | 
| 
      
 1001 
     | 
    
         
            +
                          end
         
     | 
| 
      
 1002 
     | 
    
         
            +
                          if s24.empty?
         
     | 
| 
      
 1003 
     | 
    
         
            +
                            @index = i24
         
     | 
| 
      
 1004 
     | 
    
         
            +
                            r24 = nil
         
     | 
| 
      
 1005 
     | 
    
         
            +
                          else
         
     | 
| 
      
 1006 
     | 
    
         
            +
                            r24 = instantiate_node(SyntaxNode,input, i24...index, s24)
         
     | 
| 
      
 1007 
     | 
    
         
            +
                          end
         
     | 
| 
      
 1008 
     | 
    
         
            +
                          s21 << r24
         
     | 
| 
      
 1009 
     | 
    
         
            +
                          if r24
         
     | 
| 
      
 1010 
     | 
    
         
            +
                            if (match_len = has_terminal?("p", :insens, index))
         
     | 
| 
      
 1011 
     | 
    
         
            +
                              r26 = instantiate_node(SyntaxNode,input, index...(index + match_len))
         
     | 
| 
      
 1012 
     | 
    
         
            +
                              @index += match_len
         
     | 
| 
      
 1013 
     | 
    
         
            +
                            else
         
     | 
| 
      
 1014 
     | 
    
         
            +
                              terminal_parse_failure('"p"')
         
     | 
| 
      
 1015 
     | 
    
         
            +
                              r26 = nil
         
     | 
| 
      
 1016 
     | 
    
         
            +
                            end
         
     | 
| 
      
 1017 
     | 
    
         
            +
                            s21 << r26
         
     | 
| 
      
 1018 
     | 
    
         
            +
                            if r26
         
     | 
| 
      
 1019 
     | 
    
         
            +
                              r28 = _nt_sign
         
     | 
| 
      
 1020 
     | 
    
         
            +
                              if r28
         
     | 
| 
      
 1021 
     | 
    
         
            +
                                r27 = r28
         
     | 
| 
      
 1022 
     | 
    
         
            +
                              else
         
     | 
| 
      
 1023 
     | 
    
         
            +
                                r27 = instantiate_node(SyntaxNode,input, index...index)
         
     | 
| 
      
 1024 
     | 
    
         
            +
                              end
         
     | 
| 
      
 1025 
     | 
    
         
            +
                              s21 << r27
         
     | 
| 
      
 1026 
     | 
    
         
            +
                              if r27
         
     | 
| 
      
 1027 
     | 
    
         
            +
                                s29, i29 = [], index
         
     | 
| 
      
 1028 
     | 
    
         
            +
                                loop do
         
     | 
| 
      
 1029 
     | 
    
         
            +
                                  r30 = _nt_DIGIT
         
     | 
| 
      
 1030 
     | 
    
         
            +
                                  if r30
         
     | 
| 
      
 1031 
     | 
    
         
            +
                                    s29 << r30
         
     | 
| 
      
 1032 
     | 
    
         
            +
                                  else
         
     | 
| 
      
 1033 
     | 
    
         
            +
                                    break
         
     | 
| 
      
 1034 
     | 
    
         
            +
                                  end
         
     | 
| 
      
 1035 
     | 
    
         
            +
                                end
         
     | 
| 
      
 1036 
     | 
    
         
            +
                                if s29.empty?
         
     | 
| 
      
 1037 
     | 
    
         
            +
                                  @index = i29
         
     | 
| 
      
 1038 
     | 
    
         
            +
                                  r29 = nil
         
     | 
| 
      
 1039 
     | 
    
         
            +
                                else
         
     | 
| 
      
 1040 
     | 
    
         
            +
                                  r29 = instantiate_node(SyntaxNode,input, i29...index, s29)
         
     | 
| 
      
 1041 
     | 
    
         
            +
                                end
         
     | 
| 
      
 1042 
     | 
    
         
            +
                                s21 << r29
         
     | 
| 
      
 1043 
     | 
    
         
            +
                              end
         
     | 
| 
      
 1044 
     | 
    
         
            +
                            end
         
     | 
| 
      
 1045 
     | 
    
         
            +
                          end
         
     | 
| 
      
 1046 
     | 
    
         
            +
                        end
         
     | 
| 
       944 
1047 
     | 
    
         
             
                      end
         
     | 
| 
       945 
1048 
     | 
    
         
             
                      if s21.last
         
     | 
| 
       946 
1049 
     | 
    
         
             
                        r21 = instantiate_node(SyntaxNode,input, i21...index, s21)
         
     | 
| 
         @@ -953,46 +1056,85 @@ module EDNGRAMMAR 
     | 
|
| 
       953 
1056 
     | 
    
         
             
                        r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
         
     | 
| 
       954 
1057 
     | 
    
         
             
                        r4 = r21
         
     | 
| 
       955 
1058 
     | 
    
         
             
                      else
         
     | 
| 
       956 
     | 
    
         
            -
                         
     | 
| 
       957 
     | 
    
         
            -
                        if (match_len = has_terminal?(" 
     | 
| 
       958 
     | 
    
         
            -
                           
     | 
| 
      
 1059 
     | 
    
         
            +
                        i31, s31 = index, []
         
     | 
| 
      
 1060 
     | 
    
         
            +
                        if (match_len = has_terminal?("o", :insens, index))
         
     | 
| 
      
 1061 
     | 
    
         
            +
                          r32 = instantiate_node(SyntaxNode,input, index...(index + match_len))
         
     | 
| 
       959 
1062 
     | 
    
         
             
                          @index += match_len
         
     | 
| 
       960 
1063 
     | 
    
         
             
                        else
         
     | 
| 
       961 
     | 
    
         
            -
                          terminal_parse_failure('" 
     | 
| 
       962 
     | 
    
         
            -
                           
     | 
| 
      
 1064 
     | 
    
         
            +
                          terminal_parse_failure('"o"')
         
     | 
| 
      
 1065 
     | 
    
         
            +
                          r32 = nil
         
     | 
| 
       963 
1066 
     | 
    
         
             
                        end
         
     | 
| 
       964 
     | 
    
         
            -
                         
     | 
| 
       965 
     | 
    
         
            -
                        if  
     | 
| 
       966 
     | 
    
         
            -
                           
     | 
| 
      
 1067 
     | 
    
         
            +
                        s31 << r32
         
     | 
| 
      
 1068 
     | 
    
         
            +
                        if r32
         
     | 
| 
      
 1069 
     | 
    
         
            +
                          s33, i33 = [], index
         
     | 
| 
       967 
1070 
     | 
    
         
             
                          loop do
         
     | 
| 
       968 
     | 
    
         
            -
                             
     | 
| 
       969 
     | 
    
         
            -
                            if  
     | 
| 
       970 
     | 
    
         
            -
                               
     | 
| 
      
 1071 
     | 
    
         
            +
                            r34 = _nt_ODIGIT
         
     | 
| 
      
 1072 
     | 
    
         
            +
                            if r34
         
     | 
| 
      
 1073 
     | 
    
         
            +
                              s33 << r34
         
     | 
| 
       971 
1074 
     | 
    
         
             
                            else
         
     | 
| 
       972 
1075 
     | 
    
         
             
                              break
         
     | 
| 
       973 
1076 
     | 
    
         
             
                            end
         
     | 
| 
       974 
1077 
     | 
    
         
             
                          end
         
     | 
| 
       975 
     | 
    
         
            -
                          if  
     | 
| 
       976 
     | 
    
         
            -
                            @index =  
     | 
| 
       977 
     | 
    
         
            -
                             
     | 
| 
      
 1078 
     | 
    
         
            +
                          if s33.empty?
         
     | 
| 
      
 1079 
     | 
    
         
            +
                            @index = i33
         
     | 
| 
      
 1080 
     | 
    
         
            +
                            r33 = nil
         
     | 
| 
       978 
1081 
     | 
    
         
             
                          else
         
     | 
| 
       979 
     | 
    
         
            -
                             
     | 
| 
      
 1082 
     | 
    
         
            +
                            r33 = instantiate_node(SyntaxNode,input, i33...index, s33)
         
     | 
| 
       980 
1083 
     | 
    
         
             
                          end
         
     | 
| 
       981 
     | 
    
         
            -
                           
     | 
| 
      
 1084 
     | 
    
         
            +
                          s31 << r33
         
     | 
| 
       982 
1085 
     | 
    
         
             
                        end
         
     | 
| 
       983 
     | 
    
         
            -
                        if  
     | 
| 
       984 
     | 
    
         
            -
                           
     | 
| 
       985 
     | 
    
         
            -
                           
     | 
| 
      
 1086 
     | 
    
         
            +
                        if s31.last
         
     | 
| 
      
 1087 
     | 
    
         
            +
                          r31 = instantiate_node(SyntaxNode,input, i31...index, s31)
         
     | 
| 
      
 1088 
     | 
    
         
            +
                          r31.extend(Basenumber4)
         
     | 
| 
       986 
1089 
     | 
    
         
             
                        else
         
     | 
| 
       987 
     | 
    
         
            -
                          @index =  
     | 
| 
       988 
     | 
    
         
            -
                           
     | 
| 
      
 1090 
     | 
    
         
            +
                          @index = i31
         
     | 
| 
      
 1091 
     | 
    
         
            +
                          r31 = nil
         
     | 
| 
       989 
1092 
     | 
    
         
             
                        end
         
     | 
| 
       990 
     | 
    
         
            -
                        if  
     | 
| 
       991 
     | 
    
         
            -
                           
     | 
| 
       992 
     | 
    
         
            -
                          r4 =  
     | 
| 
      
 1093 
     | 
    
         
            +
                        if r31
         
     | 
| 
      
 1094 
     | 
    
         
            +
                          r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
         
     | 
| 
      
 1095 
     | 
    
         
            +
                          r4 = r31
         
     | 
| 
       993 
1096 
     | 
    
         
             
                        else
         
     | 
| 
       994 
     | 
    
         
            -
                           
     | 
| 
       995 
     | 
    
         
            -
                           
     | 
| 
      
 1097 
     | 
    
         
            +
                          i35, s35 = index, []
         
     | 
| 
      
 1098 
     | 
    
         
            +
                          if (match_len = has_terminal?("b", :insens, index))
         
     | 
| 
      
 1099 
     | 
    
         
            +
                            r36 = instantiate_node(SyntaxNode,input, index...(index + match_len))
         
     | 
| 
      
 1100 
     | 
    
         
            +
                            @index += match_len
         
     | 
| 
      
 1101 
     | 
    
         
            +
                          else
         
     | 
| 
      
 1102 
     | 
    
         
            +
                            terminal_parse_failure('"b"')
         
     | 
| 
      
 1103 
     | 
    
         
            +
                            r36 = nil
         
     | 
| 
      
 1104 
     | 
    
         
            +
                          end
         
     | 
| 
      
 1105 
     | 
    
         
            +
                          s35 << r36
         
     | 
| 
      
 1106 
     | 
    
         
            +
                          if r36
         
     | 
| 
      
 1107 
     | 
    
         
            +
                            s37, i37 = [], index
         
     | 
| 
      
 1108 
     | 
    
         
            +
                            loop do
         
     | 
| 
      
 1109 
     | 
    
         
            +
                              r38 = _nt_BDIGIT
         
     | 
| 
      
 1110 
     | 
    
         
            +
                              if r38
         
     | 
| 
      
 1111 
     | 
    
         
            +
                                s37 << r38
         
     | 
| 
      
 1112 
     | 
    
         
            +
                              else
         
     | 
| 
      
 1113 
     | 
    
         
            +
                                break
         
     | 
| 
      
 1114 
     | 
    
         
            +
                              end
         
     | 
| 
      
 1115 
     | 
    
         
            +
                            end
         
     | 
| 
      
 1116 
     | 
    
         
            +
                            if s37.empty?
         
     | 
| 
      
 1117 
     | 
    
         
            +
                              @index = i37
         
     | 
| 
      
 1118 
     | 
    
         
            +
                              r37 = nil
         
     | 
| 
      
 1119 
     | 
    
         
            +
                            else
         
     | 
| 
      
 1120 
     | 
    
         
            +
                              r37 = instantiate_node(SyntaxNode,input, i37...index, s37)
         
     | 
| 
      
 1121 
     | 
    
         
            +
                            end
         
     | 
| 
      
 1122 
     | 
    
         
            +
                            s35 << r37
         
     | 
| 
      
 1123 
     | 
    
         
            +
                          end
         
     | 
| 
      
 1124 
     | 
    
         
            +
                          if s35.last
         
     | 
| 
      
 1125 
     | 
    
         
            +
                            r35 = instantiate_node(SyntaxNode,input, i35...index, s35)
         
     | 
| 
      
 1126 
     | 
    
         
            +
                            r35.extend(Basenumber5)
         
     | 
| 
      
 1127 
     | 
    
         
            +
                          else
         
     | 
| 
      
 1128 
     | 
    
         
            +
                            @index = i35
         
     | 
| 
      
 1129 
     | 
    
         
            +
                            r35 = nil
         
     | 
| 
      
 1130 
     | 
    
         
            +
                          end
         
     | 
| 
      
 1131 
     | 
    
         
            +
                          if r35
         
     | 
| 
      
 1132 
     | 
    
         
            +
                            r35 = SyntaxNode.new(input, (index-1)...index) if r35 == true
         
     | 
| 
      
 1133 
     | 
    
         
            +
                            r4 = r35
         
     | 
| 
      
 1134 
     | 
    
         
            +
                          else
         
     | 
| 
      
 1135 
     | 
    
         
            +
                            @index = i4
         
     | 
| 
      
 1136 
     | 
    
         
            +
                            r4 = nil
         
     | 
| 
      
 1137 
     | 
    
         
            +
                          end
         
     | 
| 
       996 
1138 
     | 
    
         
             
                        end
         
     | 
| 
       997 
1139 
     | 
    
         
             
                      end
         
     | 
| 
       998 
1140 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -1001,8 +1143,8 @@ module EDNGRAMMAR 
     | 
|
| 
       1001 
1143 
     | 
    
         
             
                end
         
     | 
| 
       1002 
1144 
     | 
    
         
             
                if s0.last
         
     | 
| 
       1003 
1145 
     | 
    
         
             
                  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
         
     | 
| 
       1004 
     | 
    
         
            -
                  r0.extend(Basenumber5)
         
     | 
| 
       1005 
1146 
     | 
    
         
             
                  r0.extend(Basenumber6)
         
     | 
| 
      
 1147 
     | 
    
         
            +
                  r0.extend(Basenumber7)
         
     | 
| 
       1006 
1148 
     | 
    
         
             
                else
         
     | 
| 
       1007 
1149 
     | 
    
         
             
                  @index = i0
         
     | 
| 
       1008 
1150 
     | 
    
         
             
                  r0 = nil
         
     |