module Cucumber::Parser::Feature

def _nt_scenario_outline

def _nt_scenario_outline
  start_index = index
  if node_cache[:scenario_outline].has_key?(index)
    cached = node_cache[:scenario_outline][index]
    @index = cached.interval.end if cached
    return cached
  end
  i0, s0 = index, []
  r1 = _nt_comment
  s0 << r1
  if r1
    r2 = _nt_tags
    s0 << r2
    if r2
      r3 = _nt_white
      s0 << r3
      if r3
        r4 = _nt_scenario_outline_keyword
        s0 << 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)
          s0 << r5
          if r5
            r7 = _nt_lines_to_keyword
            s0 << r7
            if r7
              r8 = _nt_white
              s0 << r8
              if r8
                r9 = _nt_steps
                s0 << r9
                if r9
                  r10 = _nt_examples_sections
                  s0 << r10
                  if r10
                    r11 = _nt_white
                    s0 << r11
                  end
                end
              end
            end
          end
        end
      end
    end
  end
  if s0.last
    r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
    r0.extend(ScenarioOutline0)
    r0.extend(ScenarioOutline1)
  else
    @index = i0
    r0 = nil
  end
  node_cache[:scenario_outline][start_index] = r0
  r0
end