module Cucumber::Parser::Table
def _nt_cell
def _nt_cell start_index = index if node_cache[:cell].has_key?(index) cached = node_cache[:cell][index] @index = cached.interval.end if cached return cached end s0, i0 = [], index loop do i1, s1 = index, [] i2 = index i3 = index if has_terminal?('|', false, index) r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) @index += 1 else terminal_parse_failure('|') r4 = nil end if r4 r3 = r4 else r5 = _nt_eol if r5 r3 = r5 else @index = i3 r3 = nil end end if r3 r2 = nil else @index = i2 r2 = instantiate_node(SyntaxNode,input, index...index) end s1 << r2 if r2 if index < input_length r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) @index += 1 else terminal_parse_failure("any character") r6 = nil end s1 << r6 end if s1.last r1 = instantiate_node(SyntaxNode,input, i1...index, s1) r1.extend(Cell0) else @index = i1 r1 = nil end if r1 s0 << r1 else break end end r0 = instantiate_node(SyntaxNode,input, i0...index, s0) node_cache[:cell][start_index] = r0 r0 end