module Cucumber::Parser::Feature
def _nt_lines_to_keyword
def _nt_lines_to_keyword start_index = index if node_cache[:lines_to_keyword].has_key?(index) cached = node_cache[:lines_to_keyword][index] @index = cached.interval.end if cached return cached end s0, i0 = [], index loop do i1, s1 = index, [] i2 = index i3, s3 = index, [] r4 = _nt_eol s3 << r4 if r4 s5, i5 = [], index loop do r6 = _nt_space if r6 s5 << r6 else break end end r5 = instantiate_node(SyntaxNode,input, i5...index, s5) s3 << r5 if r5 r7 = _nt_reserved_words_and_symbols s3 << r7 end end if s3.last r3 = instantiate_node(SyntaxNode,input, i3...index, s3) r3.extend(LinesToKeyword0) else @index = i3 r3 = nil end if r3 r2 = nil else @index = i2 r2 = instantiate_node(SyntaxNode,input, index...index) end s1 << r2 if r2 if index < input_length r8 = instantiate_node(SyntaxNode,input, index...(index + 1)) @index += 1 else terminal_parse_failure("any character") r8 = nil end s1 << r8 end if s1.last r1 = instantiate_node(SyntaxNode,input, i1...index, s1) r1.extend(LinesToKeyword1) else @index = i1 r1 = nil end if r1 s0 << r1 else break end end r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(LinesToKeyword2) node_cache[:lines_to_keyword][start_index] = r0 r0 end