lilypond-1.1.49
[lilypond.git] / Documentation / design
blobe1a317a29e05949c2c816a35abd970e4295a78c6
1 LilyPond is a "5-pass" system:
3 1. Parsing:
5 No difficult algorithms. Associated datastructures have prefix Input
6 (eg Input_score, Input_command)
8 2. Processing:
10 Requests are processed and granted. In this step data-structures for
11 3. are created and filled with data: PScore, PCol, PStaff
13 3. Calculation:
15 This step uses structures which have names starting with 'P'.
16 linebreaks and horizontal positions of PCols are determined. Line_of_*
17 generated.
19 4. Postprocesing:
21 Some items and all spanners need computation after the PCol positions
22 are determined.
24 5. Output
26 Very simple, just walk all Line_of_* and follow the links over there