[Top][All Lists]
[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