Valider 3058f0c8 rédigé par esj's avatar esj
Parcourir les fichiers

Deuxième modification des spécifications du décompilateur (cf [14197] et 14227]).

Il n'était pas normal que les fonctions de formatage reçoivent un bout de l'arbre de syntaxe abstraite, alors que leur rôle est de fournir un syntaxe concrète indépendamment de cet arbre. De plus, cela ne permettait que de forcer la notation en champ étendu lorsqu'un champ est suivi d'un caractère qui pourrait s'agrégé à lui (par exemple {{{#X}}} suivi d'une étoile doit s'écrire {{{[(#X)]*}}}), mais difficilement la situation inverse (par exemple une parenthèse suivie d'un champ doit s'écrire {{{([(#X)]}}}).

On introduit donc une nouvelle fonction chargée de restituter la syntaxe de la concaténation de lexèmes, car elle n'est pas forcément la fonction identité. Elle reçoit un tableau formé de sous-tableaux de deux éléments: le lexème et son type (afin de distinguer l'origine de ces syntaxes concrètes). Par ailleurs, les deux fonctions qui recevaient l'extrait d'arbre de syntaxe abstraite ne le reçoivent plus. Enfin, on introduit aussi une fonction chargée de restituer la syntaxe concrète d'un texte brut, ça peut servir au transcodage de caractères.

Le jeu de fonctions restituant le format de sortie passe donc à 9: {{{format_boucle_* format_include_* format_polyglotte_* format_idiome_* format_champ_* format_critere_* format_liste_* format_suite_* format_texte_*}}}. Le suffixe par défaut est toujours celui indiqué par la constante _EXTENSION_SQUELETTES, savoir html traditionnellement, et le fichier public/format_''format''.php est toujours automatiquement chargé pour fournir la syntaxe en sortie.

Cette nouvelle spécification permet de réaliser plus facilement le devoir de vacances suite à la [http://videos.spip.org/spip.php?article113 session de Juin 2009 de SPIP-Party]: écrire les 9 fonctions produisant la syntaxe proposée. On pourra utiliser [http://zone.spip.org/trac/spip-zone/changeset/29950 ce plugin], mais il devra être mis à jour.
parent 26bd7f41
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter