It's a non-user-friendly quirk/bug that can potentially cause very unexpected problems (thread is proof).
***I*** do not care if it gets "fixed" or doesn't. What matters more, IMO, is that if it isn't "fixed" that the documentation be updated to reflect this fact (model/design). Remember: I am strong advocate of assembly programmers needing to read their assembler's documentation (and assemblers without documentation should be ignored). If a design/quirk/whatever is not documented, it's not the user's fault. So, a small paragraph describing this nuance in readme.txt would be enough, IMO.
But I will say existing/established assemblers over the past 40 years behaved more... shall I say... "intuitively" in this regard (parsing). Many enforced strict syntactical compliance for this exact reason -- and that adherence is important.
What I will say, however, is that there *are* established assemblers with good/excellent documentation of syntax, (and, well, everything!). Merlin and ORCA/M are two such examples, but this is far from limited to just those two:
Merlin 8/16: ORCA/M:
Code: Select all
Each line may begin with a label, which is required for a few directives. The label must begin in column 1, and cannot contain embedded blanks. Each label starts with an alphabetic character, the tilde (~), or the underscore (_), and is followed by zero or more alphanumeric characters, tildes (~) or underscores (_). Both tildes and underscores are significant. Labels may be as long as 255 characters. All characters are significant. Note that labels starting with the tilde character are reserved for use in macros and libraries supplied by the Byte Works. To avoid conflicts with the standard libraries, you should avoid use of the tilde. It is best not to use the single character A as a label, since it can cause confusion between absolute addressing using the label A and accumulator addressing.
Other assemblers require a colon (:) after a label. Others don't allow labels on a single line by themselves (i.e. require an opcode after a label). Others have other nuances, or a combination of these. It all varies. There is literally no standard or norm, thus it becomes very hard to compare assemblers to one another (and further proves why switching from one to another is often painful). Many don't even document these nuances -- instead the programmer finds out the hard way (and accepts it; whinging over syntax is more of a post-90s thing.)
Off-topic-yet-sort-of-not: I spent 2 hours of my time yesterday writing up how 21 different assemblers allow forcing of absolute addressing, and I really don't want to spend several more hours writing up how many different assemblers handle different syntaxes; the term "time vampire" comes to mind. (I will note that in that post, I link to my Assembler Manuals Dropbox directory that has many different manuals. Web-based manuals I do not care to archive/copy. I urge anyone pondering assembler variances or comparisons to take the time to read through what I put there.)