module Arithmetic

def _nt_space

def _nt_space
  start_index = index
  cached = node_cache[:space][index]
  if cached
    @index = cached.interval.end
    return cached
  end
  
  s0, i0 = [], index
  loop do
    r1 = parse_terminal(' ', SyntaxNode)
    if r1.success?
      s0 << r1
    else
      break
    end
  end
  r0 = SyntaxNode.new(input, i0...index, s0)
  
  node_cache[:space][start_index] = r0
  
  return r0
end