Instead of exposing a stateful Parser type, expose only the result of its parsing action. This also makes the numeric literal code better mirror the string literal code.