Sha256: 8f116e5508a2957e089cfec63f680733556985b321b4114b43a06e5a880d706a

Contents?: true

Size: 1.41 KB

Versions: 7

Compression:

Stored size: 1.41 KB

Contents

module Regexp::Expression

  module Group
    class Base < Regexp::Expression::Subexpression
      def capturing?
        [:capture, :named].include? @token
      end

      def comment?; @type == :comment end

      def to_s(format = :full)
        s = ''

        case format
        when :base
          s << @text.dup
          s << @expressions.join
          s << ')'
        else
          s << @text.dup
          s << @expressions.join
          s << ')'
          s << @quantifier.to_s if quantified?
        end

        s
      end
    end

    class Atomic    < Group::Base; end
    class Capture   < Group::Base; end
    class Passive   < Group::Base; end
    class Options   < Group::Base; end
    class Absence   < Group::Base; end

    class Named     < Group::Capture
      attr_reader :name

      def initialize(token, options = {})
        @name = token.text[3..-2]
        super
      end

      def clone
        copy = super
        copy.instance_variable_set(:@name, @name.dup)
        copy
      end
    end

    class Comment   < Group::Base
      def to_s(format = :full)
        @text.dup
      end
    end
  end

  module Assertion
    class Base < Regexp::Expression::Group::Base; end

    class Lookahead           < Assertion::Base; end
    class NegativeLookahead   < Assertion::Base; end

    class Lookbehind          < Assertion::Base; end
    class NegativeLookbehind  < Assertion::Base; end
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
regexp_parser-0.4.13 lib/regexp_parser/expression/classes/group.rb
regexp_parser-0.4.12 lib/regexp_parser/expression/classes/group.rb
regexp_parser-0.4.11 lib/regexp_parser/expression/classes/group.rb
regexp_parser-0.4.10 lib/regexp_parser/expression/classes/group.rb
regexp_parser-0.4.9 lib/regexp_parser/expression/classes/group.rb
regexp_parser-0.4.8 lib/regexp_parser/expression/classes/group.rb
regexp_parser-0.4.7 lib/regexp_parser/expression/classes/group.rb