> 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

Reply via email to