denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] A first target for the gsoc project


From: Richard Shann
Subject: Re: [Denemo-devel] A first target for the gsoc project
Date: Sun, 08 Aug 2010 10:08:44 +0100

> Current state of git that it can parse sequences of notes in {}. 
> I created a very verbose script, showing exactly which value is parsed right 
> now and how the var goes through the different states. This chain is not an 
> easy one. The recursion create the same feeling I have when I watch old BASIC 
> programs with many GOTOs.
> As a basic action all notes are saved in a list which is printed out at the 
> end of the script.
> 
> {c d e {c d e}} is already possible with the same chain, but still weird to 
> catch)
> 

I looked at this last night - great! I suggest the next couple of stages
thus:
      * put in the parser rules going down thru scoreblock. I believe
        this is the chain I first suggested - it is not a lot more rules
        because once you get to the music it is already there. This will
        require the lexer to go to scan_escaped_word which (as with
        scan_bare_word) we can simplify (either straight to (make-token
        SCORE ...) or simple test the whole list of keywords in
        parser.yy as a  cond(yytext) "\\accepts" ACCEPTS ... "\\score"
        SCORE, ...  "\\new" NEWCONTEXT
      * once this works (no actions still!) add in the octave_check
        optional_notemode_duration to pitch - hmm, I don't see where the
        es, is (sharp/flat) is parsed, again it is because of language
        differences. We need to do this as well, so as to design the
        actions (it is the one place where Denemo Classic mode breaks
        with LilyPond typing, you have to put d-Sharpen *after* the
        duration, in LilyPond before).
      * once that works I think to do mxml-generated lily is just typing
        - well there are the assignments, but that is easy in scheme,
        much easier than in C.
Richard





reply via email to

[Prev in Thread] Current Thread [Next in Thread]