Tests written, custom errors defined, first try at grammar specified.