2.1 LilyPond-Codeabschnitte
Codeabschnitte in LilyPond sehen etwa so aus:
#{ LilyPond code #}
Sie können überall eingesetzt werden, wo man Scheme-Code schreiben
kann: der Scheme-Einleser wurde geändert, um LilyPond-Codeabschnitte
zu akzeptieren und kann mit eingebetteten Scheme-Ausdrücken umgehen,
die mit $
und #
beginnen.
Er extrahiert den LilyPond-Codeabschnitt und erstellt einen Aufruf zum LilyPond-Parser, welcher während der Prorammausführung zur Interpretation des LilyPond-Codeabschnittes aufgerufen wird. Alle eingebetteten Scheme-Ausdrücke werden in der lokalen Umgebung des LilyPond-Codeabschnittes ausgeführt, sodass man Zugruff auf lokale Variablen und Funktionsparameter zu dem Zeitpunkt hat, an dem der LilyPond-Codeabschnitt geschrieben wird.
Ein LilyPond-Codeabschnitt kann jeden Inhalt haben, den man auf der rechten Seite einer Zuweisung einsetzt. Zusätzlich entspricht ein leerer LilyPond-Abschnitt einem gültigen musikalischen Ausdruck, und ein LilyPond-Abschnitt, der mehrere musikalische Ereignisse enthält, wird in einen sequenziellen musikalischen Ausdruck umgewandelt.