[feature] Improved ideas on what a parser and scanner should do.