> Date: Tue, 5 Aug 2003 23:18:20 +0200 (W. Europe Daylight Time)
> From: "I. Oppenheim" <[EMAIL PROTECTED]>
> 2.2. Continuation of input lines If the last (non-space, non-remark)
> character on a line is a backslash (\), the next line should be
> appended to the current one, overwriting the backslash and any spaces
> or remarks that follow it, to make one long logical line.
This causes several problems.
Logically, you've changed the continuation command to "\" instead of
"\ + newline". I see at least two problems with this:
1) It reduces the available ABC command space, by removing \anythingelse
from the list of possible commands.
2) It breaks some other existing parts of the standard, including:
a) \TeX-command at the beginning of a line, required by the abc2mtex
class of programs
b) \,c (for c-cedille) and other commands that give accented
characters
I think it would be far better to simply keep \newline as the line
continuation command. This way, any text on the line after the \ is
still processed. You'd get an "unrecognized symbol \" warning, but you
don't lose anything. And if the standard additionally were to define
"\ " (i.e., \ + space) to be equivalent to a space (i.e., arbitrary
whitespace), the unrecognized symbol error would go away too.
This makes the rules a lot simpler. If we also assume % and anything
following it (if not a recognizeable psuedo-comment) is *ignored* (as
stated in the 1.6.1 standard) rather than treated as whitespace, then:
aged | dead | beef |\% this line wants to be continued
cage | face | edge |
would preserve the line continuation. The first step would be to chop
off the comment, yielding:
aged | dead | beef |\
cage | face | edge |
The result would then be concatenated into:
aged | dead | beef |cage | face | edge |
However, the following:
aged | dead | beef |\ % this line wants to be continued
cage | face | edge |
would turn into:
aged | dead | beef |\_
cage | face | edge |
(Read "\_" as "\ " in the above. I wanted to be sure to note the space
after the \ at the end of the line.)
This would be parsed as
aged | dead | beef |
cage | face | edge |
I think this works, is straightforward, and isn't terribly limiting.
I.e., all we lose is a little defensive programming around \ +
whitespace.
Jeff
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html