class Regexp::Expression::Base

def <<(exp)

def <<(exp)
  @expressions << exp
end

def [](index)

def [](index)
  @expressions[index]
end

def case_insensitive?

def case_insensitive?
  (@options and @options[:i]) ? true : false
end

def each(&block)

def each(&block)
  @expressions.each {|e| yield e}
end

def free_spacing?

def free_spacing?
  (@options and @options[:x]) ? true : false
end

def greedy?

def greedy?
  @quantifier.mode == :greedy
end

def initialize(token)

def initialize(token)
  @type         = token.type
  @token        = token.token
  @text         = token.text
  @options      = nil
  @expressions  = []
end

def multiline?

def multiline?
  (@options and @options[:m]) ? true : false
end

def possessive?

def possessive?
  @quantifier.mode == :possessive
end

def quantified?

def quantified?
  not @quantifier.nil?
end

def quantify(token, text, min = nil, max = nil, mode = :greedy)

def quantify(token, text, min = nil, max = nil, mode = :greedy)
  @quantifier = Quantifier.new(token, text, min, max, mode)
end

def quantity

def quantity
  [@quantifier.min, @quantifier.max]
end

def reluctant?

def reluctant?
  @quantifier.mode == :reluctant
end

def to_s

def to_s
  s = @text
  s << @expressions.map{|e| e.to_s}.join unless @expressions.empty?
  s << @quantifier if quantified?
  s
end