Complete but untested parser.