class Cucumber::CucumberExpressions::TreeRegexp

def create_group_builder(regexp)

def create_group_builder(regexp)
 = regexp.source
= [GroupBuilder.new]
start_stack = []
ng = false
lass = false
.each_char.with_index do |c, i|
 == '[' && !escaping
ar_class = true
f c == ']' && !escaping
ar_class = false
f c == '(' && !escaping && !char_class
oup_start_stack.push(i)
oup_builder = GroupBuilder.new
n_capturing = is_non_capturing(source, i)
oup_builder.set_non_capturing! if non_capturing
ack.push(group_builder)
f c == ')' && !escaping && !char_class
 = stack.pop
oup_start = group_start_stack.pop
 gb.capturing?
gb.source = source[group_start + 1...i]
stack.last.add(gb)
se
gb.move_children_to(stack.last)
d
ping = c == '\\' && !escaping
pop