It's exactly this flexibility that I wanted to eliminate from the code.
For example, the function process_command has the variable last_blank
that remembers the index of the last (rightmost) seen blank in a line.
In that case, "previous" and "last seen" and "rightmost" are equivalent,
which is OK in that context.
To avoid confusion in the parser_state, I wanted to use a different word
to specify the directly adjacent item, and prev/curr/next just seemed to
be a good fit in a situation of iterating over tokens, to avoid the
ambiguity of first/last and last/next. The code is still complicated
enough that I welcome every little bit of disambiguation that I can get.
Roland