I. Oppenheim wrote:
Re: [abcusers] Re: backslashes

On Tue, 5 Aug 2003 [EMAIL PROTECTED] wrote:

  
It strikes me that there are three processes to carry out -

Remove comments
Combine lines
Parse abc notation
    

The order that the standard implicitly assumes, is:

1/ Combine lines
2/ Parse the resulting logical line
3/ Parse pseudo comments
4/ Ignore other comments

  
The above order seems the logical one to me and is
what I have already implemented in Abacus.
    

That's also a reasonable approach. But what do you do
with pseudo comments? If others agree, I can change the
standard to follow the order that you suggest.
Seems to me that the reason for using a 'pseudocomment' type of
construct is so that applications don't have to parse first, ignore later.
In other words, an application developer should be able to blindly skip
any line beginning with "%" and still have an abc file that makes sense,
even if some information is lost.   This cannot be done in a one-pass
parser if pseudo-comments can be continued. Consider an (admittedly contrived)
example

%%MIDI no\
ba\
rlines

If you ignore the first line, you end up with a line of valid abc and then junk.

I'd like to propose

1. continued lines cannot have a trailing comment
2. pseudocomments cannot be continued



Disclaimer:
Skink has a single pass, recursive descent parser which seems to work OK
for most of the abc thats out there now. It was built using javacc, which is
a powerful compiler-compiler for java. I don't yet support any pseudocomments,
although I'm planning support for the %%MIDI ones.  I can't be the only
one out there who sees a problem implementing this...

wil  

  
An earlier example -

    
G|G2G2A4|(FEF) D (A2G) G|\
w:She-nei zei-tim nich-__ra-tim_ be-\
M:4/4 % Measure Change\
K:C=A0=A0 % Key Change\
c2c2(B2c2)|(f2e2)e2d G|
w:gan na-'ul_ yats-_hi-ru. Le-
      

This example was only given to show how absurd the
semantics of the 1.6 standard were. Trust me,
nobody understands this mess!

The 2.0 standard will not allow any of this.
See section [2.2. Continuation of input lines] in:
http://www.joods.nl/~chazzanut/abc/abc2-draft.html


 Groeten,
 Irwin Oppenheim
 [EMAIL PROTECTED]
 ~~~*

 Chazzanut Online:
 http://www.joods.nl/~chazzanut/
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html

Reply via email to