generalised parsers now distinguish more types of tokens (used in syntax highlighting and later in auto completion)