lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: N'oubliez pas les espaces


From: Nicolas Sceaux
Subject: Re: N'oubliez pas les espaces
Date: Sun, 11 Apr 2010 13:44:13 +0200

Le 11 avr. 2010 à 12:44, Seventies a écrit :

> 
> Est-ce un bug, je n'en sais rien mais ça y ressemble.
> 
> L'instruction suivante :
> \tag #'globalScore{
> ...
> }
> 
> générait un "unexpected }" sur la dernière ligne du fichier, et une
> désynchronisation des parties dans la directrice.
> 
> Il a suffit de rajouter un espace :
> \tag #'partScore {
> ...
> }
> 
> et tout est rentré dans l'ordre.
> 
> Un tag (ou une variable ?) non suivi d'un espace ignorerait donc le
> caractère qui suit.


Ce n'est pas le caractère suivant le nom du tag qui est ignoré, c'est
plus simplement que ce caractère est incorporé au nom du tag.

Ce qui suit un dièse est parsé comme étant du Scheme, et
'globalScore{ (accolade comprise) est interprété par guile comme
étant un symbole.

Autrement dit, le fichier tel que tu l'avais écrit était équivalent
à :

\tag #'symbole
...
}

et finalement le parseur trouve une accolade fermante esseulée sur la
dernière ligne.

(On peut s'arrêter de lire ici)

A la question "est-ce un bug ?"
D'après R5RS :

<identifier> --> <initial> <subsequent>*
     | <peculiar identifier>

<initial> --> <letter> | <special initial>

<letter> --> a | b | c | ... | z
<special initial> --> ! | $ | % | & | * | / | : | < | =
     | > | ? | ^ | _ | ~

<subsequent> --> <initial> | <digit>
     | <special subsequent>

<digit> --> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<special subsequent> --> + | - | .  | @

<peculiar identifier> --> + | - | ...
<syntactic keyword> --> <expression keyword>

     | else | => | define 
     | unquote | unquote-splicing
<expression keyword> --> quote | lambda | if
     | set! | begin | cond | and | or | case
     | let | let* | letrec | do | delay
     | quasiquote

Avec le commentaire suivant :

  The following five characters are reserved for future extensions to the
  language: [ ] { } |

Il semble que guile ne devrait pas incorporer l'accolade dans le symbole.
Il s'agirait donc, AFAICT, d'un bug dans guile.

Nicolas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]