class Regexp::Expression::Conditional::Expression

Attributes

referenced_expression[RW]

Public Instance Methods

<<(exp) click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 30
def <<(exp)
  expressions.last << exp
end
add_sequence(active_opts = {}) click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 34
def add_sequence(active_opts = {})
  raise TooManyBranches.new if branches.length == 2
  params = { conditional_level: conditional_level + 1 }
  Branch.add_to(self, params, active_opts)
end
Also aliased as: branch
branch(active_opts = {})
Alias for: add_sequence
branches() click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 50
def branches
  select { |subexp| subexp.is_a?(Sequence) }
end
condition() click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 46
def condition
  find { |subexp| subexp.is_a?(Condition) }
end
condition=(exp) click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 41
def condition=(exp)
  expressions.delete(condition)
  expressions.unshift(exp)
end
initialize_copy(orig) click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 62
def initialize_copy(orig)
  self.referenced_expression = orig.referenced_expression.dup
  super
end
parts() click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 58
def parts
  [text.dup, condition, *intersperse(branches, '|'), ')']
end
reference() click to toggle source
# File lib/regexp_parser/expression/classes/conditional.rb, line 54
def reference
  condition.reference
end