Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/04/2011, 17h45   #1
Membre confirmé
 
Inscription : octobre 2009
Messages : 88
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 88
Points : 269
Points : 269
Par défaut Analyseur syntaxique en Actionscript

Bonjour,

Je cherche un analyseur syntaxique écrit en Actionscript afin de parcourir des textes selon une grammaire maison. Un peu à la façon de Boost.spirit pour ceux qui connaissent.

Je n'ai rien trouvé sur le sujet. Est-ce que vous en connaissez une ?
j-jorge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 07h50   #2
Membre du Club
 
Inscription : avril 2011
Messages : 58
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 58
Points : 56
Points : 56
Je connais pas, mais t'as essayé de parser tes lignes avec une expression régulière ?
bokan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 09h55   #3
Membre confirmé
 
Inscription : octobre 2009
Messages : 88
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 88
Points : 269
Points : 269
Citation:
Envoyé par bokan Voir le message
Je connais pas, mais t'as essayé de parser tes lignes avec une expression régulière ?
Je n'ai pas testé mais ça ne me semble pas assez puissant, en plus d'être bien plus galère à écrire et à relire.
j-jorge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 10h12   #4
Membre du Club
 
Inscription : avril 2011
Messages : 58
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 58
Points : 56
Points : 56
tu peut montrer un bout des données à parser et ce qu'il faut vérifier dessus ?
bokan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 13h08   #5
Membre confirmé
 
Inscription : octobre 2009
Messages : 88
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 88
Points : 269
Points : 269
Je suis justement en traine de chercher un compromis entre la forme du texte à traiter et l'expressivité dont j'ai besoin. Un exemple de texte serait :
Code :
1
2
3
4
elem "un nom" avec (
  "a", "b", "c",
  elem "E 2",
  elem "E 3" avec ( elem "E 4" ) )
Et la grammaire associée serait
Code :
1
2
3
4
5
<elem_decl> := 'elem' <string> 
               ( 'avec' '(' 
                 ( <string> | <elem_decl> )
                 ( ',' ( <string> | <elem_decl> )* ')'
               )?
C'est encore en réflexion donc les exemples ne sont pas à prendre avec rigueur.

Entre temps j'ai croisé ANTLR qui semble pouvoir générer un analyseur en Actionscript. Je n'ai pas encore approfondi.
j-jorge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 13h24   #6
Membre du Club
 
Inscription : avril 2011
Messages : 58
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 58
Points : 56
Points : 56
T'as regardé du cote de JAVA ?
transférer du JAVA en Actionscript ca doit pas être la fin du monde, les langages sont proches.

Tu as des applis JAVA open source qui gèrent la coloration syntaxique à partir de fichiers de description (genre Eclipse qui supporte plusieurs langages). Ils doivent donc faire ce que tu as besoin.

Sinon ça m'a pas l'air si complexe à coder. Je pense que tu peux t'y prendre comme ceci :
- nettoyage de base (on vire les espaces, les retours à la ligne, les commentaires) > c'est une série de regexp à appliquer
- Parser la syntaxe en plusieurs passage pour faire un arbre
- premier passage tu gère que les () {} sans tenir compte des contenus
Ca te fait des gros blocs texte organisés en arbre
- deuxième passage tu parse le contenu de tes blocs et créé les noeuds en fonction de ce que tu rencontre
bonjour > noeud mot clé
"aa"> noeud string
1234 > noeud int
- Vérifier que chaque noeud de l'arbre contient les paramètres attendus.

La difficulté vient surtout de comment tu dois gérer les erreurs.
Je créerais un arbre à coté avec des pointeurs sur toutes les parties de ton texte chaque noeud serait un objet :
Code :
1
2
3
4
5
6
7
{
id:int;
parent:int;// le noeud parent
debut:int; // premier caractère concerné dans le texte
fin:int;
type:enum // bloc parenthèse, bloc crochet, string, label ....
}
Bon courage !
bokan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h24.


 
 
 
 
Partenaires

Hébergement Web