push token tests down to grammar level