Perl 6 : grammaires en action. Comment en construire incrémentalement

Par Stéphane Payrard (‎cognominal‎) de Paris.pm
Date : vendredi 11 juin 2010 11h15
Durée : 40 minutes
Cible : Expert
Langue : Français
Tags : assembleur grammaire parsing perl6 pir regex


En Perl 5, les novices utilisaient à tort et à travers les regex pour des tâches auxquelles elles n'étaient pas adaptées. Qui plus est, des modules existants font souvent correctement la même chose. On a coutume de dire que seul l'interpréteur Perl 5 peut analyser du code Perl 5 mais, cette analyseur est implanté en faisant le lexing avec du code C et l'analyse syntaxique avec bison.

La grammaire (très complexe!) qui définit la syntaxe concrète de Perl 6 est écrite en terme d'une grammaire Perl 6. C'est la meilleur preuve utilise Perl 6 offre les moyens d'analyser des chaînes arbitrairement complexes.

Une grammaire est une classe avec des méthodes particulières qui sont des regex. Généralement l'analyseur généré par la grammaire est appelé en spécifiant une classe qui définit les actions associées. Quand une regex de la grammaire matche, elle entraine l'appel de l'action de même nom de la classe action associée. Ainsi, par exemple, pour une grammaire donnée, une classe action pourra implanter un compilateur et une autre classe action pourra implanter une mise en valeur syntaxique.

Nous montrerons comment construire incrémentalement une grammaire pour du code PIR et leurs utilisations pratiques


Présentation suivie par: Olivier Mengué (‎dolmen‎), Emmanuel Di Pretoro (‎saorge‎), Aurélien WERNER,