> On Tue, Apr 27, 2004 at 12:01:00PM -0400, Steven Bennett wrote:
>> Note that while ABC 1.6 and 1.7.6 explicitly allow these fields in-between
>> tunes, ABC 2.0 draft states they can only be at the beginning of a file.
>> (There really ought to be a note about this in the Deprecated Syntax
>> section...  Or the restriction should be lifted.)
> 
> Yes. One consequence of this restriction is that abc files can become
> "invalid" just by being cut&pasted together. If you have 2 files, each
> with file-scope fields at the top, a simple
> cat file1.abc file2.abc > file12.abc
> will produce a file with headers between tunes. Forbidding this may make
> life easier for simple parsers, but I don't think it's desirable for
> users.

Actually, that's an issue in all versions of ABC, because the file-scope
fields at the top of file1.abc that are not overridden in the header of
file2.abc would then apply to all the tunes in file2.abc, even if that would
be inappropriate.

I actually now believe (having written that part of the parser) that what
should be in ABC 2 is either NO file-scope fields allowed, or they should be
allowed anywhere outside a tune.  The halfway measure of allowing them only
at the start of the file can make parsers slightly more simple, but doesn't
really simplify things all *that* much, and not at all unless you are
parsing *strict* ABC 2.0 only.

NO file-scope fields would be the ideal solution, letting you split and
merge tune collections seamlessly.  But since I doubt that would be accepted
(and still has the issue of parsing pre-ABC 2.0 files anyway), I suggest we
let those file-scope fields be anywhere outside tunes.

IMHO,
-->Steve Bennett

To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html

Reply via email to