A character by character parser