tiny parser combinator.