use hash tables more for token predicates in parser