But the bar is a valid binary selector which takes a text parameter
| text
���� | text '|' expected ->
���� := self requestPassword
You seem to suggest that the parser should use formatting, presence/absence or spaces/newlines, but it never did so, it just skips/ignores spaces.
The parser process as much as possible until the first error. It never did a global analysis to find the minimal error. That's a far more difficult problem.
Note that for the same kind of reason, while we could make ^ a binary selector as I proposed once, we didn't yet by fear of interpreting things differently in case of missing period:
������ self seeThePeriodMissingAtEndOfThisSentence
������ ^self