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 ;)
Bonjour, comment fais tu avec le symbole terminal vide ?
lèvres rouges et les joues roses
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