Re: spaces and tabs confused?
David A. Wheeler 03 May 2013 21:18 UTC
David Vanderson:
> For example, if your editor had a tab-width of 2:
>
> [tab][space][space]define foo()
> [space][space][tab] "bar"
>
> My reading of the spec says this would be an error, but it would be
> especially difficult to understand, because there's no visual
> difference. Am I missing something, or has this already been discussed
> elsewhere?
Your reading is correct, the spec defines that as an error.
I don't think it's hard to understand, though.
You're right that it would *look* the same, but it's easily
detected and diagnosed at read time. For example,
the reference implementation produces this error message
on receiving the second line:
Error: Inconsistent indentation
That's a fairly specific error message. If you don't think that's
clear enough, we could even modify it further to identity exactly
what was different, e.g.:
Error: Inconsistent indentation between '\x09 ' and ' \x09'
What worries me are common, easily-made errors that a reader or interpreter
*cannot* detect. This isn't the case at all; just like ")" with no matching "(",
this is easily detected and diagnosed.
--- David A. Wheeler