> So the same exception is raised for "syntactic" as well as "semantic"
> invalidity. So the client program gets no info as to whether the
> token was consumed or not.

Unless "Exception_Message" or "Exception_Information" has been implemented
to give these details.  But depending on this is not portable.  So this is
indeed a flaw in Ada.

> For real "industrial strength" interactive input, AFAIK there is no
> general alternative to reading a line into a string (using Get_Line),
> then parsing the tokens yourself. ....

And this is an admission of a flaw.  We're saying, in effect, "the
language-defined routine is inadequate; use this method instead."

> Even this doesn;t solve it entirely, because a string is, by
> definition, an array of _Character_, and if the *&^%$ thing in
> the input is not in Character, I think you're back to Rick's problem.

This may have been a *&^%$ in Ada-83, but in Ada-95, what possible value
can it have that is not in Character?