Après avoir travaillé dessus pour un de mes projets (en partie ce qui m'empêche de tenir ce site à jour) pour les cours, je mets à disposition ma version de l'Algorithme d'Earley.
L'algo a été développé en PHP.
Je ne sais pas si ça intéressa grand monde, mais je sais qu'il n'y a pas beaucoup d'exemples sur internet, ça en fera au moins un ! L'avantage, c'est qu'on peut le tester en ligne.
Pour ceux que ça intéresse, quelques liens Wikipédia sur la théorie des langages et autres :
- Langage Formel
- Analyse syntaxique
- Grammaire non contextuelle
PS: pour ceux qui sont intéressés par les sources, envoyez moi un petit mail (delphiki [ATNOSPAM] lackofinspiration.com). A noter que PHP5 est nécessaire.
Commentaires :
# Viish, le vendredi 21 novembre 2008 à 16:04:23 # delphiki, le vendredi 21 novembre 2008 à 23:54:55
Salut Viish,
En effet, mon parseur n'est pas prévu pour prendre en compte ce genre de règles. Les | ou les caractères différents des lettres de l'alphabet ne sont pas autorisés dans les règles. ;)
Cependant, si tu me dit à quoi correspondent tes règles avec les | ε, je pourrais peut-être t'aider. Cela doit être ta définition du symbole terminal vide je pense, non ?
slt mec;
j y vais pas par 4 chemin ton algo marche nikel, raison pour laquelle j aimerai ke tu me files les sources ( pour un projet de fac ) . Tkt je suis pas un flémar c'est pour voir cmt ce foutu algo marche.
merci. tkx tkx
Salut makaveli,
Pas de souci, t'inquiètes, j'ai dit que je filerai les sources à qui les demande, donc les voilà : http://www.delphiki.com/LFC/earley_parser_sources.rar
Bon courage ;)
Merci bien, c'est le seul Earley Parser online que j'ai pu trouver, mais c'est dommage qu'il ne fonctionne pas complétement.
Par exemple avec la grammaire :
S -> AD
A -> aAC | ε
B -> b
C -> c
D -> BDd | ε
sur le mot acbbdd
:s