Le 07/02/07, Richard Gill<[EMAIL PROTECTED]> a écrit :
Le 07/02/07, Julien L.<[EMAIL PROTECTED]> a écrit :

> Sinon, je m'interroge à propos des valeurs sur plusieurs lignes. Est-on
> vraiment obligé de répéter le nom de la propriété après les "}}}" ? Si oui,
> pour quelles raisons ?

Dans le format actuel oui c'est obligatoire, car c'est la méthode pour
repérer la fin de la propriété de manière non ambigue. Cela permet
d'avoir des accolades dans la valeur sans chercher à décompter les
accolades ouvrantes/fermantes.
Bien sûr on pourrait faire le comptage pour éviter cette répétition,
mais ce serait un peu plus dur à coder (j'ai choisi la simplicité).
Sinon en faveur de cette notation, contrario du 'problème' de
répétition, cela permet de bien repérer la fin de la propriété,
question de lisibilité.

Sinon j'ai deux idées (après réflexion) :

1) La zone multiligne se termine simplement par }}}, mais uniquement
en début de ligne (avec éventuellement des whitespaces avant)

debut.zone.multiligne = {{{
a

bla bla

}}}

Cela implique que dans la zone, il n'y ai pas '}}}'. Le rappel du nom
de la propriété permet justement d'éviter cette restriction.

2) On utilise les heredoc à la shell :

debut.zone.multiligne = {{{EOP

}}}EOP

Le 'EOP' est en fait libre. Même principe que pour le shell, c'est la
chaine après {{{ qui indique le marqueur de fin. On peut aussi choisir
<<< :
debut.zone.multiligne = <<<EOP

EOP

Le problème dans ce cas est que la fin n'est pas facilement
reconnaissable. De plus, cela implique que si le contenu est un script
shell qui utilise les heredoc, il ne peut pas utiliser le même
marqueur que son contenant (la propriété)


--
Richard 'riri' GILL
jabber: [EMAIL PROTECTED]
http://riri.houbathecat.info
http://nasgaia.org
http://www.gnurou.org/Writing/SmartQuestionsFr

_______________________________________________
Nasgaia-dev mailing list
[email protected]
https://mail.gna.org/listinfo/nasgaia-dev

Répondre à