2.1 Perquè canvia la sintaxi?
La sintaxi de l’entrada del LilyPond canvia de manera ocasional. A mesura que el propi LilyPond millora, la sintaxi (el llenguatge de l’entrada) es modifica en consonància. A vegades aquests canvis es fan per aconseguir que l’entrada sigui més fàcil de llegir i escriure, i d’altres vegades aquests canvis són per donar cabuda a noves funcionalitats del LilyPond.
Per exemple, se suposa que tots els noms de les propietats de
\paper
i de \layout
estan escrits sota la norma
primer-segon-tercer
. Tot i així, a la versió 2.11.60,
observem que la propietat printallheaders
no seguia aquesta
convenció. Hauríem de deixar-la tal com està (confonent als nous
usuaris que han de tractar amb un format d’entrada inconsistent),
o canviar-la (empipant als usuaris amb experiència que tenen
partitures antigues)? En aquest cas, vam decidir canviar el nom a
print-all-headers
. Afortunadament, aquest
canvi es pot automatitzar amb la nostra eina
convert-ly
.
Tanmateix, lamentablement convert-ly
no pot tractar tots
els canvis d’entrada. Per exemple, a la versió 2.4 i anteriors de
LilyPond els accents i les lletres no angleses s’introdueixen
utilitzant el LaTeX: per exemple No\"el
(que significa
‘Nadal’ en francès). Al LilyPond 2.6 i següents el caràcter
especial ë
s’ha d’introduir directament al fitxer del
LilyPond com un caràcter UTF-8. convert-ly
no pot
canviar tots els caràcters especials del LaTeX a caràcters de
UTF-8: haureu d’actualitzar manualment els vostres fitxers del
LilyPond antics.
Les regles de conversió de convert-ly
funcionen usant
correspondència i substitució de patrons de text enlloc d’una
comprensió profunda de la sintaxi del LilyPond. Això té diverses
conseqüències:
- El bon funcionament de la conversió depèn de la qualitat de cada conjunt de regles que s’apliquen i de la complexitat del canvi corresponent. A vegades les conversions poden necessitar correccions manuals, per la qual cosa la versió antiga hauria de conservar-se a efectes de comparació.
- Solament són possibles les conversions de formats més nous: no hi ha cap conjunt de regles per a la desactualització. Així doncs, la còpia principal de treball d’un fitxer del LilyPond solament s’ha d’actualitzar quan ja no hi ha necessitat de seguir mantenint versions antigues del LilyPond. Els sistemes de control de versions com ara el Git poden ser de gran ajuda per realitzar el manteniment de diverses versions dels mateixos fitxers.
- Els propis programes del LilyPond i de l’Scheme són força robustos
enfront als espais afegits i suprimits de manera “creativa”,
però les regles utilitzades per
convert-ly
tendeixen a fer certes suposicions d’estil. El millor que pot fer-se és seguir l’estil que s’usa als manuals per fer actualitzacions indolores, especialment perquè els propis manuals s’actualitzen usantconvert-ly
.