Whew! a lot of syntax... One extra thing you get in actual scores: multiple names for the same tempo, which in your notation might be
Q:allegro=>Tempo I so that "Tempo I" is defined by a double indirection, in your BNF <QLine> ::= Q: <string> => <string> This might also be useful in translating terms between different languages. I am not sure what your proposal does about leading and trailing spaces in tempo names. They mustn't make any difference, anyway - otherwise trying to spot why your tempo definition isn't being acted on could get impossibly difficult as these would all have different effects: Q:1/4=124=>allegro Q:1/4=124=>allegro Q:1/4=124 =>allegro % from Hogwood's recording Q:1/4=124=> allegro % from Hogwood's recording Q:1/4=124=>allegro % from Hogwood's recording That is, the lines > <QLine> ::= Q: <speed> => <string> > <QLine> ::= Q: <beat> = <speed> => <string> need to use a definition of <string> that eliminates leading and trailing spaces. (You should still be able to surround the string with whitespace for readability). Otherwise, spot-on. =================== <http://www.purr.demon.co.uk/jack/> =================== To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html