The asc parser really only needs the current token, not an array of all pseudoterminal tokens.
Currently, the token id is checked to guarantee that the parser is not ever trying to
read other than the current token. This is temporary, until the Scanner returns a token object.
On my machine, this change speeds up HospitalApp by 20 seconds and causes minimal changes to
compile time for any other cases.
I expect the cause is garbage collection triggering.
This is the first in series of changes that should simplify/improve the Scanner/Parser interface
to have the Scanner return a token, rather than a token id
(an integer, assumed to be an array index or token class if negative).
These changes should reduce transitory memory use in the Scanner,
improve clarity of the code and speed compile up slightly.
They also eliminate the performance reduction on HospitalApp caused by the earlier changes to Names.java