class Regexp::Parser
def conditional(token)
def conditional(token) case token.token when :open nest_conditional(Conditional::Expression.new(token, active_opts)) when :condition conditional_nesting.last.condition = Conditional::Condition.new(token, active_opts) conditional_nesting.last.add_sequence(active_opts) when :separator conditional_nesting.last.add_sequence(active_opts) self.node = conditional_nesting.last.branches.last when :close conditional_nesting.pop decrease_nesting self.node = if conditional_nesting.empty? nesting.last else conditional_nesting.last end else raise UnknownTokenError.new('Conditional', token) end end