public Parser (Reader reader, Version defaultVersion) {
if (reader == null) throw new IllegalArgumentException("reader cannot be null.");
if (defaultVersion == null) throw new IllegalArgumentException("defaultVersion cannot be null.");
tokenizer = new Tokenizer(reader);
this.defaultVersion = defaultVersion;
initProductionTable();