> -----Original Message-----
> From: Robert Elz [mailto:k...@munnari.oz.au]
> Put that reasoning into the argument in the previous message, instead 
> of the ${ version and I think it becomes clearer how the current text 
> allows the '-' inside "a-c" to be treated literally, as the string is 
> parsed (not that that one would be treated differently anyway, any more than 
> the '{' would be in the ${ form) but still have its special meaning in 
> character ranges, just as the '(' (or '{' retains its special meaning in the 
> expansions.

This is probably Captain Obvious speaking, but in the C standard, I find the 
concept of -- sequentially applied -- Translation Phases (i.e., Trigraph 
elimination, backslash newline elimination, preprocessing tokenization, 
preprocessing, ...) quite illuminating.

As the Bourne Shell source code posted earlier showed, that implementation did 
not clearly separate the phases: a character with its high-bit set was quoted 
for all further purposes.

Perhaps something similar to translation phases could help here.


Reply via email to