Simple parser combinator library