An Earley parser written in Ruby