crazy input-driven parser combinators