Analyseurs Zend_Markup (parsers)

Zend_Markup est fourni avec un analyseur, BBCode.

Theorie de l'analyse

Les analyseurs syntaxiques de Zend_Markup sont des classes qui convertissent du texte balisé en un arbre d'identifiants d'analyses, appelées 'tokens'. Même si nous utilisons par la suite l'analyseur BBCode, le principe de l'arbre à tokens est le même pour tous les analyseurs syntaxiques. Essayons avec un morceau de BBCode par exemple:

[b]foo[i]bar[/i][/b]baz

L'analyseur BBCode va analyser syntaxiquement ce code et en déduire l'arbre suivant:

  • [b]

    • foo

    • [i]

      • bar

  • baz

Notez que les tags de fermeture n'existent plus dans l'arbre généré. Ceci car ils n'ont pas de valeur particulière pour la sémantique, ils ne sont pas perdus mais stockés grâce au seul tag d'ouverture. Notez aussi que ceci n'est qu'une vue simplifiée de l'arbre réel qui contient en réalité bien plus d'informations comme les attributs éventuels du tag et son nom.

L'analyseur BBCode

L'analyseur BBCode est un analyseur de Zend_Markup qui transforme un code BBCode en arbres à tokens. La syntaxe des tags BBCode est:

[name(=(value|"value"))( attribute=(value|"value"))*]

Des exemples de tags BBCode valides:

[b]
[list=1]
[code file=Zend/Markup.php]
[url="http://framework.zend.com/" title="Zend Framework!"]

Par défaut, tous les tags sont fermés avec la syntaxe '[/tagname]'.