regexp_parser 0.3.4 → 0.3.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/ChangeLog +6 -0
- data/lib/regexp_parser/syntax/ruby/1.9.1.rb +1 -1
- data/lib/regexp_parser/syntax/tokens/escape.rb +2 -0
- data/lib/regexp_parser/version.rb +1 -1
- data/test/expression/test_base.rb +32 -34
- data/test/expression/test_clone.rb +49 -47
- data/test/expression/test_conditionals.rb +40 -40
- data/test/expression/test_free_space.rb +4 -2
- data/test/expression/test_set.rb +16 -16
- data/test/expression/test_strfregexp.rb +74 -74
- data/test/expression/test_subexpression.rb +2 -2
- data/test/expression/test_tests.rb +57 -57
- data/test/expression/test_to_h.rb +11 -6
- data/test/expression/test_to_s.rb +22 -15
- data/test/expression/test_traverse.rb +26 -29
- data/test/lexer/test_all.rb +9 -7
- data/test/lexer/test_conditionals.rb +35 -11
- data/test/lexer/test_keep.rb +6 -6
- data/test/lexer/test_literals.rb +20 -10
- data/test/lexer/test_nesting.rb +14 -7
- data/test/lexer/test_refcalls.rb +12 -5
- data/test/parser/test_all.rb +15 -13
- data/test/parser/test_alternation.rb +29 -26
- data/test/parser/test_anchors.rb +7 -8
- data/test/parser/test_conditionals.rb +43 -41
- data/test/parser/test_escapes.rb +18 -16
- data/test/parser/test_free_space.rb +33 -33
- data/test/parser/test_groups.rb +46 -46
- data/test/parser/test_keep.rb +4 -4
- data/test/parser/test_properties.rb +18 -16
- data/test/parser/test_quantifiers.rb +184 -163
- data/test/parser/test_refcalls.rb +48 -32
- data/test/parser/test_sets.rb +102 -88
- data/test/parser/test_types.rb +7 -8
- data/test/scanner/test_all.rb +6 -4
- data/test/scanner/test_anchors.rb +8 -5
- data/test/scanner/test_conditionals.rb +38 -20
- data/test/scanner/test_escapes.rb +8 -6
- data/test/scanner/test_free_space.rb +89 -65
- data/test/scanner/test_groups.rb +27 -32
- data/test/scanner/test_keep.rb +24 -22
- data/test/scanner/test_literals.rb +11 -7
- data/test/scanner/test_meta.rb +11 -7
- data/test/scanner/test_properties.rb +16 -14
- data/test/scanner/test_quantifiers.rb +8 -9
- data/test/scanner/test_refcalls.rb +26 -23
- data/test/scanner/test_scripts.rb +11 -10
- data/test/scanner/test_sets.rb +8 -5
- data/test/scanner/test_types.rb +17 -15
- data/test/scanner/test_unicode_blocks.rb +11 -10
- data/test/syntax/ruby/test_1.8.rb +4 -8
- data/test/syntax/ruby/test_1.9.1.rb +1 -7
- data/test/syntax/ruby/test_1.9.3.rb +3 -7
- data/test/syntax/ruby/test_2.0.0.rb +1 -7
- data/test/syntax/ruby/test_2.2.0.rb +1 -7
- data/test/token/test_token.rb +29 -31
- metadata +3 -3
| @@ -10,7 +10,8 @@ class ExpressionFreeSpace < Test::Unit::TestCase | |
| 10 10 | 
             
                root = RP.parse(regexp)
         | 
| 11 11 |  | 
| 12 12 | 
             
                space = root[0]
         | 
| 13 | 
            -
                assert_equal | 
| 13 | 
            +
                assert_equal FreeSpace::WhiteSpace, space.class
         | 
| 14 | 
            +
             | 
| 14 15 | 
             
                assert_raise( RuntimeError ) {
         | 
| 15 16 | 
             
                  space.quantify(:dummy, '#')
         | 
| 16 17 | 
             
                }
         | 
| @@ -24,7 +25,8 @@ class ExpressionFreeSpace < Test::Unit::TestCase | |
| 24 25 | 
             
                root = RP.parse(regexp)
         | 
| 25 26 |  | 
| 26 27 | 
             
                comment = root[3]
         | 
| 27 | 
            -
                assert_equal | 
| 28 | 
            +
                assert_equal FreeSpace::Comment, comment.class
         | 
| 29 | 
            +
             | 
| 28 30 | 
             
                assert_raise( RuntimeError ) {
         | 
| 29 31 | 
             
                  comment.quantify(:dummy, '#')
         | 
| 30 32 | 
             
                }
         | 
    
        data/test/expression/test_set.rb
    CHANGED
    
    | @@ -5,57 +5,57 @@ class ExpressionSet < Test::Unit::TestCase | |
| 5 5 | 
             
              def test_expression_set_exapnd_members_digit
         | 
| 6 6 | 
             
                set = RP.parse('[\d]').first
         | 
| 7 7 |  | 
| 8 | 
            -
                assert_equal | 
| 9 | 
            -
                assert_equal | 
| 8 | 
            +
                assert_equal ['0-9'],       set.expand_members
         | 
| 9 | 
            +
                assert_equal ['\p{Digit}'], set.expand_members(true)
         | 
| 10 10 | 
             
              end
         | 
| 11 11 |  | 
| 12 12 | 
             
              def test_expression_set_exapnd_members_nondigit
         | 
| 13 13 | 
             
                set = RP.parse('[\D]').first
         | 
| 14 14 |  | 
| 15 | 
            -
                assert_equal | 
| 16 | 
            -
                assert_equal | 
| 15 | 
            +
                assert_equal ['^0-9'],      set.expand_members
         | 
| 16 | 
            +
                assert_equal ['\P{Digit}'], set.expand_members(true)
         | 
| 17 17 | 
             
              end
         | 
| 18 18 |  | 
| 19 19 | 
             
              def test_expression_set_exapnd_members_word
         | 
| 20 20 | 
             
                set = RP.parse('[\w]').first
         | 
| 21 21 |  | 
| 22 | 
            -
                assert_equal | 
| 23 | 
            -
                assert_equal | 
| 22 | 
            +
                assert_equal ['A-Za-z0-9_'], set.expand_members
         | 
| 23 | 
            +
                assert_equal ['\p{Word}'],   set.expand_members(true)
         | 
| 24 24 | 
             
              end
         | 
| 25 25 |  | 
| 26 26 | 
             
              def test_expression_set_exapnd_members_nonword
         | 
| 27 27 | 
             
                set = RP.parse('[\W]').first
         | 
| 28 28 |  | 
| 29 | 
            -
                assert_equal | 
| 30 | 
            -
                assert_equal | 
| 29 | 
            +
                assert_equal ['^A-Za-z0-9_'], set.expand_members
         | 
| 30 | 
            +
                assert_equal ['\P{Word}'],    set.expand_members(true)
         | 
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| 33 33 | 
             
              def test_expression_set_exapnd_members_space
         | 
| 34 34 | 
             
                set = RP.parse('[\s]').first
         | 
| 35 35 |  | 
| 36 | 
            -
                assert_equal | 
| 37 | 
            -
                assert_equal | 
| 36 | 
            +
                assert_equal [' \t\f\v\n\r'], set.expand_members
         | 
| 37 | 
            +
                assert_equal ['\p{Space}'],   set.expand_members(true)
         | 
| 38 38 | 
             
              end
         | 
| 39 39 |  | 
| 40 40 | 
             
              def test_expression_set_exapnd_members_nonspace
         | 
| 41 41 | 
             
                set = RP.parse('[\S]').first
         | 
| 42 42 |  | 
| 43 | 
            -
                assert_equal | 
| 44 | 
            -
                assert_equal | 
| 43 | 
            +
                assert_equal ['^ \t\f\v\n\r'], set.expand_members
         | 
| 44 | 
            +
                assert_equal ['\P{Space}'],    set.expand_members(true)
         | 
| 45 45 | 
             
              end
         | 
| 46 46 |  | 
| 47 47 | 
             
              def test_expression_set_exapnd_members_xdigit
         | 
| 48 48 | 
             
                set = RP.parse('[\h]').first
         | 
| 49 49 |  | 
| 50 | 
            -
                assert_equal | 
| 51 | 
            -
                assert_equal | 
| 50 | 
            +
                assert_equal ['0-9A-Fa-f'],  set.expand_members
         | 
| 51 | 
            +
                assert_equal ['\p{Xdigit}'], set.expand_members(true)
         | 
| 52 52 | 
             
              end
         | 
| 53 53 |  | 
| 54 54 | 
             
              def test_expression_set_exapnd_members_nonxdigit
         | 
| 55 55 | 
             
                set = RP.parse('[\H]').first
         | 
| 56 56 |  | 
| 57 | 
            -
                assert_equal | 
| 58 | 
            -
                assert_equal | 
| 57 | 
            +
                assert_equal ['^0-9A-Fa-f'], set.expand_members
         | 
| 58 | 
            +
                assert_equal ['\P{Xdigit}'], set.expand_members(true)
         | 
| 59 59 | 
             
              end
         | 
| 60 60 |  | 
| 61 61 | 
             
            end
         | 
| @@ -3,168 +3,168 @@ require File.expand_path("../../helpers", __FILE__) | |
| 3 3 | 
             
            class Expressionstrfregexp < Test::Unit::TestCase
         | 
| 4 4 |  | 
| 5 5 | 
             
              def test_expression_strfre_alias
         | 
| 6 | 
            -
                assert_equal | 
| 6 | 
            +
                assert_equal true, RP.parse(/a/).respond_to?(:strfre)
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 9 | 
             
              def test_expression_strfregexp_level
         | 
| 10 10 | 
             
                root = RP.parse(/a(b(c))/)
         | 
| 11 11 |  | 
| 12 | 
            -
                assert_equal | 
| 12 | 
            +
                assert_equal 'root', root.strfregexp('%l')
         | 
| 13 13 |  | 
| 14 14 | 
             
                a = root.first
         | 
| 15 | 
            -
                assert_equal | 
| 15 | 
            +
                assert_equal '%0', a.strfregexp('%%l')
         | 
| 16 16 |  | 
| 17 17 | 
             
                b = root[1].first
         | 
| 18 | 
            -
                assert_equal | 
| 18 | 
            +
                assert_equal '<1>', b.strfregexp('<%l>')
         | 
| 19 19 |  | 
| 20 20 | 
             
                c = root[1][1].first
         | 
| 21 | 
            -
                assert_equal | 
| 21 | 
            +
                assert_equal '[at: 2]', c.strfregexp('[at: %l]')
         | 
| 22 22 | 
             
              end
         | 
| 23 23 |  | 
| 24 24 | 
             
              def test_expression_strfregexp_start_end
         | 
| 25 25 | 
             
                root = RP.parse(/a(b(c))/)
         | 
| 26 26 |  | 
| 27 | 
            -
                assert_equal | 
| 28 | 
            -
                assert_equal | 
| 27 | 
            +
                assert_equal '0', root.strfregexp('%s')
         | 
| 28 | 
            +
                assert_equal '7', root.strfregexp('%e')
         | 
| 29 29 |  | 
| 30 30 | 
             
                a = root.first
         | 
| 31 | 
            -
                assert_equal | 
| 32 | 
            -
                assert_equal | 
| 31 | 
            +
                assert_equal '%0', a.strfregexp('%%s')
         | 
| 32 | 
            +
                assert_equal '1', a.strfregexp('%e')
         | 
| 33 33 |  | 
| 34 34 | 
             
                group_1 = root[1]
         | 
| 35 | 
            -
                assert_equal | 
| 36 | 
            -
                assert_equal | 
| 35 | 
            +
                assert_equal 'GRP:1', group_1.strfregexp('GRP:%s')
         | 
| 36 | 
            +
                assert_equal '7', group_1.strfregexp('%e')
         | 
| 37 37 |  | 
| 38 38 | 
             
                b = group_1.first
         | 
| 39 | 
            -
                assert_equal | 
| 40 | 
            -
                assert_equal | 
| 39 | 
            +
                assert_equal '<@2>', b.strfregexp('<@%s>')
         | 
| 40 | 
            +
                assert_equal '3', b.strfregexp('%e')
         | 
| 41 41 |  | 
| 42 42 | 
             
                c = group_1.last.first
         | 
| 43 | 
            -
                assert_equal | 
| 44 | 
            -
                assert_equal | 
| 43 | 
            +
                assert_equal '[at: 4]',  c.strfregexp('[at: %s]')
         | 
| 44 | 
            +
                assert_equal '5', c.strfregexp('%e')
         | 
| 45 45 | 
             
              end
         | 
| 46 46 |  | 
| 47 47 | 
             
              def test_expression_strfregexp_length
         | 
| 48 48 | 
             
                root = RP.parse(/a[b]c/)
         | 
| 49 49 |  | 
| 50 | 
            -
                assert_equal | 
| 50 | 
            +
                assert_equal '5', root.strfregexp('%S')
         | 
| 51 51 |  | 
| 52 52 | 
             
                a = root.first
         | 
| 53 | 
            -
                assert_equal | 
| 53 | 
            +
                assert_equal '1', a.strfregexp('%S')
         | 
| 54 54 |  | 
| 55 55 | 
             
                set = root[1]
         | 
| 56 | 
            -
                assert_equal | 
| 56 | 
            +
                assert_equal '3', set.strfregexp('%S')
         | 
| 57 57 | 
             
              end
         | 
| 58 58 |  | 
| 59 59 | 
             
              def test_expression_strfregexp_coded_offset
         | 
| 60 60 | 
             
                root = RP.parse(/a[b]c/)
         | 
| 61 61 |  | 
| 62 | 
            -
                assert_equal | 
| 62 | 
            +
                assert_equal '@0+5', root.strfregexp('%o')
         | 
| 63 63 |  | 
| 64 64 | 
             
                a = root.first
         | 
| 65 | 
            -
                assert_equal | 
| 65 | 
            +
                assert_equal '@0+1', a.strfregexp('%o')
         | 
| 66 66 |  | 
| 67 67 | 
             
                set = root[1]
         | 
| 68 | 
            -
                assert_equal | 
| 68 | 
            +
                assert_equal '@1+3', set.strfregexp('%o')
         | 
| 69 69 | 
             
              end
         | 
| 70 70 |  | 
| 71 71 | 
             
              def test_expression_strfregexp_type_token
         | 
| 72 72 | 
             
                root = RP.parse(/a[b](c)/)
         | 
| 73 73 |  | 
| 74 | 
            -
                assert_equal | 
| 75 | 
            -
                assert_equal | 
| 76 | 
            -
                assert_equal | 
| 77 | 
            -
                assert_equal | 
| 74 | 
            +
                assert_equal 'expression', root.strfregexp('%y')
         | 
| 75 | 
            +
                assert_equal 'root', root.strfregexp('%k')
         | 
| 76 | 
            +
                assert_equal 'expression:root', root.strfregexp('%i')
         | 
| 77 | 
            +
                assert_equal 'Regexp::Expression::Root', root.strfregexp('%c')
         | 
| 78 78 |  | 
| 79 79 | 
             
                a = root.first
         | 
| 80 | 
            -
                assert_equal | 
| 81 | 
            -
                assert_equal | 
| 82 | 
            -
                assert_equal | 
| 83 | 
            -
                assert_equal | 
| 80 | 
            +
                assert_equal 'literal', a.strfregexp('%y')
         | 
| 81 | 
            +
                assert_equal 'literal', a.strfregexp('%k')
         | 
| 82 | 
            +
                assert_equal 'literal:literal', a.strfregexp('%i')
         | 
| 83 | 
            +
                assert_equal 'Regexp::Expression::Literal', a.strfregexp('%c')
         | 
| 84 84 |  | 
| 85 85 | 
             
                set = root[1]
         | 
| 86 | 
            -
                assert_equal | 
| 87 | 
            -
                assert_equal | 
| 88 | 
            -
                assert_equal | 
| 89 | 
            -
                assert_equal | 
| 86 | 
            +
                assert_equal 'set', set.strfregexp('%y')
         | 
| 87 | 
            +
                assert_equal 'character', set.strfregexp('%k')
         | 
| 88 | 
            +
                assert_equal 'set:character', set.strfregexp('%i')
         | 
| 89 | 
            +
                assert_equal 'Regexp::Expression::CharacterSet', set.strfregexp('%c')
         | 
| 90 90 |  | 
| 91 91 | 
             
                group = root.last
         | 
| 92 | 
            -
                assert_equal | 
| 93 | 
            -
                assert_equal | 
| 94 | 
            -
                assert_equal | 
| 95 | 
            -
                assert_equal | 
| 92 | 
            +
                assert_equal 'group', group.strfregexp('%y')
         | 
| 93 | 
            +
                assert_equal 'capture', group.strfregexp('%k')
         | 
| 94 | 
            +
                assert_equal 'group:capture', group.strfregexp('%i')
         | 
| 95 | 
            +
                assert_equal 'Regexp::Expression::Group::Capture', group.strfregexp('%c')
         | 
| 96 96 | 
             
              end
         | 
| 97 97 |  | 
| 98 98 | 
             
              def test_expression_strfregexp_quantifier
         | 
| 99 99 | 
             
                root = RP.parse(/a+[b](c)?d{3,4}/)
         | 
| 100 100 |  | 
| 101 | 
            -
                assert_equal | 
| 102 | 
            -
                assert_equal | 
| 103 | 
            -
                assert_equal | 
| 101 | 
            +
                assert_equal '{1}', root.strfregexp('%q')
         | 
| 102 | 
            +
                assert_equal '', root.strfregexp('%Q')
         | 
| 103 | 
            +
                assert_equal '1, 1', root.strfregexp('%z, %Z')
         | 
| 104 104 |  | 
| 105 105 | 
             
                a = root.first
         | 
| 106 | 
            -
                assert_equal | 
| 107 | 
            -
                assert_equal | 
| 108 | 
            -
                assert_equal | 
| 106 | 
            +
                assert_equal '{1, or-more}', a.strfregexp('%q')
         | 
| 107 | 
            +
                assert_equal '+', a.strfregexp('%Q')
         | 
| 108 | 
            +
                assert_equal '1, -1', a.strfregexp('%z, %Z')
         | 
| 109 109 |  | 
| 110 110 | 
             
                set = root[1]
         | 
| 111 | 
            -
                assert_equal | 
| 112 | 
            -
                assert_equal | 
| 113 | 
            -
                assert_equal | 
| 111 | 
            +
                assert_equal '{1}', set.strfregexp('%q')
         | 
| 112 | 
            +
                assert_equal '', set.strfregexp('%Q')
         | 
| 113 | 
            +
                assert_equal '1, 1', set.strfregexp('%z, %Z')
         | 
| 114 114 |  | 
| 115 115 | 
             
                group = root[2]
         | 
| 116 | 
            -
                assert_equal | 
| 117 | 
            -
                assert_equal | 
| 118 | 
            -
                assert_equal | 
| 116 | 
            +
                assert_equal '{0, 1}', group.strfregexp('%q')
         | 
| 117 | 
            +
                assert_equal '?', group.strfregexp('%Q')
         | 
| 118 | 
            +
                assert_equal '0, 1', group.strfregexp('%z, %Z')
         | 
| 119 119 |  | 
| 120 120 | 
             
                d = root.last
         | 
| 121 | 
            -
                assert_equal | 
| 122 | 
            -
                assert_equal | 
| 123 | 
            -
                assert_equal | 
| 121 | 
            +
                assert_equal '{3, 4}', d.strfregexp('%q')
         | 
| 122 | 
            +
                assert_equal '{3,4}', d.strfregexp('%Q')
         | 
| 123 | 
            +
                assert_equal '3, 4', d.strfregexp('%z, %Z')
         | 
| 124 124 | 
             
              end
         | 
| 125 125 |  | 
| 126 126 | 
             
              def test_expression_strfregexp_text
         | 
| 127 127 | 
             
                root = RP.parse(/a(b(c))|[d-gk-p]+/)
         | 
| 128 128 |  | 
| 129 | 
            -
                assert_equal | 
| 130 | 
            -
                assert_equal | 
| 129 | 
            +
                assert_equal 'a(b(c))|[d-gk-p]+', root.strfregexp('%t')
         | 
| 130 | 
            +
                assert_equal 'expression:root', root.strfregexp('%~t')
         | 
| 131 131 |  | 
| 132 132 | 
             
                alt = root.first
         | 
| 133 | 
            -
                assert_equal | 
| 134 | 
            -
                assert_equal | 
| 135 | 
            -
                assert_equal | 
| 133 | 
            +
                assert_equal 'a(b(c))|[d-gk-p]+', alt.strfregexp('%t')
         | 
| 134 | 
            +
                assert_equal 'a(b(c))|[d-gk-p]+', alt.strfregexp('%T')
         | 
| 135 | 
            +
                assert_equal 'meta:alternation', alt.strfregexp('%~t')
         | 
| 136 136 |  | 
| 137 137 | 
             
                seq_1 = alt.first
         | 
| 138 | 
            -
                assert_equal | 
| 139 | 
            -
                assert_equal | 
| 140 | 
            -
                assert_equal | 
| 138 | 
            +
                assert_equal 'a(b(c))', seq_1.strfregexp('%t')
         | 
| 139 | 
            +
                assert_equal 'a(b(c))', seq_1.strfregexp('%T')
         | 
| 140 | 
            +
                assert_equal 'expression:sequence', seq_1.strfregexp('%~t')
         | 
| 141 141 |  | 
| 142 142 | 
             
                group = seq_1[1]
         | 
| 143 | 
            -
                assert_equal | 
| 144 | 
            -
                assert_equal | 
| 145 | 
            -
                assert_equal | 
| 143 | 
            +
                assert_equal '(b(c))', group.strfregexp('%t')
         | 
| 144 | 
            +
                assert_equal '(b(c))', group.strfregexp('%T')
         | 
| 145 | 
            +
                assert_equal 'group:capture', group.strfregexp('%~t')
         | 
| 146 146 |  | 
| 147 147 | 
             
                seq_2 = alt.last
         | 
| 148 | 
            -
                assert_equal | 
| 149 | 
            -
                assert_equal | 
| 148 | 
            +
                assert_equal '[d-gk-p]+', seq_2.strfregexp('%t')
         | 
| 149 | 
            +
                assert_equal '[d-gk-p]+', seq_2.strfregexp('%T')
         | 
| 150 150 |  | 
| 151 151 | 
             
                set = seq_2.first
         | 
| 152 | 
            -
                assert_equal | 
| 153 | 
            -
                assert_equal | 
| 154 | 
            -
                assert_equal | 
| 152 | 
            +
                assert_equal '[d-gk-p]', set.strfregexp('%t')
         | 
| 153 | 
            +
                assert_equal '[d-gk-p]+', set.strfregexp('%T')
         | 
| 154 | 
            +
                assert_equal '[d-gk-p]+', set.strfregexp('%~t')
         | 
| 155 155 | 
             
              end
         | 
| 156 156 |  | 
| 157 157 | 
             
              def test_expression_strfregexp_combined
         | 
| 158 158 | 
             
                root = RP.parse(/a{5}|[b-d]+/)
         | 
| 159 159 |  | 
| 160 | 
            -
                assert_equal | 
| 161 | 
            -
                assert_equal | 
| 160 | 
            +
                assert_equal '@0+11 expression:root', root.strfregexp('%b')
         | 
| 161 | 
            +
                assert_equal root.strfregexp('%o %i'), root.strfregexp('%b')
         | 
| 162 162 |  | 
| 163 | 
            -
                assert_equal | 
| 164 | 
            -
                assert_equal | 
| 163 | 
            +
                assert_equal '@0+11 expression:root {1}', root.strfregexp('%m')
         | 
| 164 | 
            +
                assert_equal root.strfregexp('%b %q'), root.strfregexp('%m')
         | 
| 165 165 |  | 
| 166 | 
            -
                assert_equal | 
| 167 | 
            -
                assert_equal | 
| 166 | 
            +
                assert_equal '@0+11 expression:root {1} a{5}|[b-d]+', root.strfregexp('%a')
         | 
| 167 | 
            +
                assert_equal root.strfregexp('%m %t'), root.strfregexp('%a')
         | 
| 168 168 | 
             
              end
         | 
| 169 169 |  | 
| 170 170 | 
             
              def test_expression_strfregexp_tree
         | 
| @@ -16,8 +16,8 @@ class ExpressionSubexpression < Test::Unit::TestCase | |
| 16 16 | 
             
                }.each do |index, span|
         | 
| 17 17 | 
             
                  sequence = alt[index]
         | 
| 18 18 |  | 
| 19 | 
            -
                  assert_equal | 
| 20 | 
            -
                  assert_equal | 
| 19 | 
            +
                  assert_equal span[0], sequence.ts
         | 
| 20 | 
            +
                  assert_equal span[1], sequence.te
         | 
| 21 21 | 
             
                end
         | 
| 22 22 | 
             
              end
         | 
| 23 23 |  | 
| @@ -7,93 +7,93 @@ class ExpressionTests < Test::Unit::TestCase | |
| 7 7 |  | 
| 8 8 | 
             
                alt = root.first
         | 
| 9 9 |  | 
| 10 | 
            -
                assert_equal | 
| 11 | 
            -
                assert_equal | 
| 12 | 
            -
                assert_equal | 
| 13 | 
            -
                assert_equal | 
| 14 | 
            -
                assert_equal | 
| 15 | 
            -
                assert_equal | 
| 16 | 
            -
                assert_equal | 
| 10 | 
            +
                assert_equal true,  alt.type?(:meta)
         | 
| 11 | 
            +
                assert_equal false, alt.type?(:escape)
         | 
| 12 | 
            +
                assert_equal true,  alt.type?([:meta, :escape])
         | 
| 13 | 
            +
                assert_equal false, alt.type?([:literal, :escape])
         | 
| 14 | 
            +
                assert_equal true,  alt.type?(:*)
         | 
| 15 | 
            +
                assert_equal true,  alt.type?([:*])
         | 
| 16 | 
            +
                assert_equal true,  alt.type?([:literal, :escape, :*])
         | 
| 17 17 |  | 
| 18 18 | 
             
                seq_1 = alt[0]
         | 
| 19 | 
            -
                assert_equal | 
| 20 | 
            -
                assert_equal | 
| 19 | 
            +
                assert_equal true,  seq_1.type?(:expression)
         | 
| 20 | 
            +
                assert_equal true,  seq_1.first.type?(:literal)
         | 
| 21 21 |  | 
| 22 22 | 
             
                seq_2 = alt[1]
         | 
| 23 | 
            -
                assert_equal | 
| 24 | 
            -
                assert_equal | 
| 23 | 
            +
                assert_equal true,  seq_2.type?(:*)
         | 
| 24 | 
            +
                assert_equal true,  seq_2.first.type?(:group)
         | 
| 25 25 |  | 
| 26 26 | 
             
                seq_3 = alt[2]
         | 
| 27 | 
            -
                assert_equal | 
| 27 | 
            +
                assert_equal true,  seq_3.first.type?(:set)
         | 
| 28 28 | 
             
              end
         | 
| 29 29 |  | 
| 30 30 | 
             
              def test_expression_is?
         | 
| 31 31 | 
             
                root = RP.parse(/.+|\.?/)
         | 
| 32 32 |  | 
| 33 | 
            -
                assert_equal | 
| 33 | 
            +
                assert_equal true,  root.is?(:*)
         | 
| 34 34 |  | 
| 35 35 | 
             
                alt = root.first
         | 
| 36 | 
            -
                assert_equal | 
| 37 | 
            -
                assert_equal | 
| 38 | 
            -
                assert_equal | 
| 36 | 
            +
                assert_equal true,  alt.is?(:*)
         | 
| 37 | 
            +
                assert_equal true,  alt.is?(:alternation)
         | 
| 38 | 
            +
                assert_equal true,  alt.is?(:alternation, :meta)
         | 
| 39 39 |  | 
| 40 40 | 
             
                seq_1 = alt[0]
         | 
| 41 | 
            -
                assert_equal | 
| 42 | 
            -
                assert_equal | 
| 41 | 
            +
                assert_equal true,  seq_1.is?(:sequence)
         | 
| 42 | 
            +
                assert_equal true,  seq_1.is?(:sequence, :expression)
         | 
| 43 43 |  | 
| 44 | 
            -
                assert_equal | 
| 45 | 
            -
                assert_equal | 
| 46 | 
            -
                assert_equal | 
| 47 | 
            -
                assert_equal | 
| 44 | 
            +
                assert_equal true,  seq_1.first.is?(:dot)
         | 
| 45 | 
            +
                assert_equal false, seq_1.first.is?(:dot, :escape)
         | 
| 46 | 
            +
                assert_equal true,  seq_1.first.is?(:dot, :meta)
         | 
| 47 | 
            +
                assert_equal true,  seq_1.first.is?(:dot, [:escape, :meta])
         | 
| 48 48 |  | 
| 49 49 | 
             
                seq_2 = alt[1]
         | 
| 50 | 
            -
                assert_equal | 
| 51 | 
            -
                assert_equal | 
| 52 | 
            -
                assert_equal | 
| 53 | 
            -
                assert_equal | 
| 50 | 
            +
                assert_equal true,  seq_2.first.is?(:dot)
         | 
| 51 | 
            +
                assert_equal true,  seq_2.first.is?(:dot, :escape)
         | 
| 52 | 
            +
                assert_equal false, seq_2.first.is?(:dot, :meta)
         | 
| 53 | 
            +
                assert_equal true,  seq_2.first.is?(:dot, [:meta, :escape])
         | 
| 54 54 | 
             
              end
         | 
| 55 55 |  | 
| 56 56 | 
             
              def test_expression_one_of?
         | 
| 57 57 | 
             
                root = RP.parse(/\Aab(c[\w])d|e.\z/)
         | 
| 58 58 |  | 
| 59 | 
            -
                assert_equal | 
| 60 | 
            -
                assert_equal | 
| 61 | 
            -
                assert_equal | 
| 59 | 
            +
                assert_equal true,  root.one_of?(:*)
         | 
| 60 | 
            +
                assert_equal true,  root.one_of?(:* => :*)
         | 
| 61 | 
            +
                assert_equal true,  root.one_of?(:* => [:*])
         | 
| 62 62 |  | 
| 63 63 | 
             
                alt = root.first
         | 
| 64 | 
            -
                assert_equal | 
| 65 | 
            -
                assert_equal | 
| 66 | 
            -
                assert_equal | 
| 67 | 
            -
                assert_equal | 
| 68 | 
            -
                assert_equal | 
| 64 | 
            +
                assert_equal true,  alt.one_of?(:*)
         | 
| 65 | 
            +
                assert_equal true,  alt.one_of?(:meta)
         | 
| 66 | 
            +
                assert_equal true,  alt.one_of?(:meta, :alternation)
         | 
| 67 | 
            +
                assert_equal false, alt.one_of?(:meta => [:dot, :bogus])
         | 
| 68 | 
            +
                assert_equal true,  alt.one_of?(:meta => [:dot, :alternation])
         | 
| 69 69 |  | 
| 70 70 | 
             
                seq_1 = alt[0]
         | 
| 71 | 
            -
                assert_equal | 
| 72 | 
            -
                assert_equal | 
| 71 | 
            +
                assert_equal true,  seq_1.one_of?(:expression)
         | 
| 72 | 
            +
                assert_equal true,  seq_1.one_of?(:expression => :sequence)
         | 
| 73 73 |  | 
| 74 | 
            -
                assert_equal | 
| 75 | 
            -
                assert_equal | 
| 76 | 
            -
                assert_equal | 
| 77 | 
            -
                assert_equal | 
| 78 | 
            -
                assert_equal | 
| 74 | 
            +
                assert_equal true,  seq_1.first.one_of?(:anchor)
         | 
| 75 | 
            +
                assert_equal true,  seq_1.first.one_of?(:anchor => :bos)
         | 
| 76 | 
            +
                assert_equal false, seq_1.first.one_of?(:anchor => :eos)
         | 
| 77 | 
            +
                assert_equal true,  seq_1.first.one_of?(:anchor => [:escape, :meta, :bos])
         | 
| 78 | 
            +
                assert_equal false, seq_1.first.one_of?(:anchor => [:escape, :meta, :eos])
         | 
| 79 79 |  | 
| 80 80 | 
             
                seq_2 = alt[1]
         | 
| 81 | 
            -
                assert_equal | 
| 82 | 
            -
             | 
| 83 | 
            -
                assert_equal | 
| 84 | 
            -
                assert_equal | 
| 85 | 
            -
                assert_equal | 
| 86 | 
            -
                assert_equal | 
| 87 | 
            -
             | 
| 88 | 
            -
                assert_equal | 
| 89 | 
            -
                assert_equal | 
| 90 | 
            -
                assert_equal | 
| 91 | 
            -
             | 
| 92 | 
            -
                assert_equal | 
| 93 | 
            -
                assert_equal | 
| 94 | 
            -
                assert_equal | 
| 95 | 
            -
                assert_equal | 
| 96 | 
            -
                assert_equal | 
| 81 | 
            +
                assert_equal true,  seq_2.first.one_of?(:literal)
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                assert_equal true,  seq_2[1].one_of?(:meta)
         | 
| 84 | 
            +
                assert_equal true,  seq_2[1].one_of?(:meta => :dot)
         | 
| 85 | 
            +
                assert_equal false, seq_2[1].one_of?(:meta => :alternation)
         | 
| 86 | 
            +
                assert_equal true,  seq_2[1].one_of?(:meta => [:dot])
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                assert_equal false, seq_2.last.one_of?(:group)
         | 
| 89 | 
            +
                assert_equal false, seq_2.last.one_of?(:group => [:*])
         | 
| 90 | 
            +
                assert_equal false, seq_2.last.one_of?(:group => [:*], :meta => :*)
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                assert_equal true,  seq_2.last.one_of?(:meta => [:*], :* => :*)
         | 
| 93 | 
            +
                assert_equal true,  seq_2.last.one_of?(:meta => [:*], :anchor => :*)
         | 
| 94 | 
            +
                assert_equal true,  seq_2.last.one_of?(:meta => [:*], :anchor => :eos)
         | 
| 95 | 
            +
                assert_equal false, seq_2.last.one_of?(:meta => [:*], :anchor => [:bos])
         | 
| 96 | 
            +
                assert_equal true,  seq_2.last.one_of?(:meta => [:*], :anchor => [:bos, :eos])
         | 
| 97 97 | 
             
              end
         | 
| 98 98 |  | 
| 99 99 | 
             
            end
         |