From: fred Date: Wed, 11 Dec 1996 11:49:28 +0000 (+0000) Subject: lilypond-0.0.16 X-Git-Tag: release/1.5.59~6621 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3249b03f70e87ba954e3f1d21cf05cfcc8017726;p=lilypond.git lilypond-0.0.16 --- diff --git a/Documentation/inputformat b/Documentation/inputformat new file mode 100644 index 0000000000..e6c0de2261 --- /dev/null +++ b/Documentation/inputformat @@ -0,0 +1,62 @@ +General format of a construct: + + BLOCKNAME { } + +Some types allow declarations: + + IDENTIFIER = BLOCKNAME { + + } + + .. + + BLOCKNAME { + IDENTIFIER + ... + } + + +In musicmode, eg, + + ''!c8.-"text"_v + + +a lot of characters parse differently +than in "command" mode, eg, + + identifier = score { .. } + +So you have to signal that to the tokenizer. This is done with +'$'. '$' is a delimiter, which used by the tokenizer only. + +* musicmode: The brace still is used to group grammatical groups. +* musicmode: "word" are preceded by a '\' (backslash) + +This means you can write some stuff in a zillion ways: + +1. $\var = \blockname { ... } $ + +2. var = blockname { $ ... $ } + +3. var = $ $ $\blockname { ... $ } + +COMMENTS + +not really crystallized; you can use '#' or '%' as line comment + +OTHER + +A correctly parsed .ly does not guarantuee output. A lot (most) of the +checking is done *after* parsing (some checks are after the break calc!) +I'm sorry. + +The parser's job is to construct appropriate objects. It will *only* +detect parse errors. + +LilyPond first reads 'symbol.ini', which contains declarations crucial +to proper operation of LilyPond (symbol tables) + +This language looks a lot like Rayce's which in turn owes a lot to the +POVRay raytracer. Now, I know, musictypesetting and Raytracing do not +necessarily require the same input format, but I was just to lazy to +make up a new/better input format. Suggestions welcome.