Parser for rational numbers. The aim is to present a very simple parser,
therefore error messages for invalid input can be improved. To see a more
advanced version, take a look at the rational example.