PDA

Afficher la version complète : [Réglé] [JavaCC]Problème avec une grammaire



Cotmar
26/06/2007, 14h31
Bonjour,

J'aurais un problème avec une grammaire (que j'ai trouvé sur le site de JavaCC (toute faite http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif ), mais j'aimerais modifier.

La question que je me pose est la suivante : je dois avouter une classe pour &écrire des résultats du parsing dans un fichier externe. La fonction "écrire dans un fichier" va être dans une classe à part, et justempent je ne sais pas si je peux inclure cette classe dans le même fichier que celui de ma grammaire ou bien si il me faut le mettre dans un fichier à part ?

Par ailleur, est-ce que les rêgles de formation d'un source JavaCC sont les même que pour un source Java ?

Par avance je vous remercie.

Marco.

Cotmar
02/07/2007, 13h38
Bonjour,

Personne n'aurait la moindre petite idée ?

Par avance merci.

Marco.

Heero_Yuy
02/07/2007, 13h58
La question que je me pose est la suivante : je dois avouter une classe pour &écrire des résultats du parsing dans un fichier externe. La fonction "écrire dans un fichier" va être dans une classe à part, et justempent je ne sais pas si je peux inclure cette classe dans le même fichier que celui de ma grammaire ou bien si il me faut le mettre dans un fichier à part ?[/b]

Peut-être serait-il préférable de mettre ta classe dans un nouveau fichier pour une meilleure lisibilité. Mais je ne pense pas que le fait de mettre la classe dans le même fichier que la grammaire soit gênant en soi.


<div class='quotetop'>Citation </div>
Par ailleur, est-ce que les rêgles de formation d'un source JavaCC sont les même que pour un source Java ?[/b]

Là, je ne saurais te dire. Je ne connais pas JavaCC.

Link
03/07/2007, 13h31
Salux,

Justement j'ai utilisé javaCC pour un de mes projets (pour créer un compilateur d'un langage... sujet de recherche).

Je ne sais pas ce que tu as récupéré et comment elle est structurée la grammaire elle même (génération de l'abre de syntaxe abstraite, pourvoir récupérer des tokens etc...) parcontre je peux te donner quelques informations :
- partant depuis le début (mon fichier Grammaire.jj, tout a été ecrit à la main pour moi)
- saches que javaCC ne crée pas de l'arbre syntaxique automatiquement pour toi (tu aura probablement besoin de JTB...(un des outils) en plus si comme moi tu commene à partir de rien et tu veux connaître tout ce que tu es train de faire...)
- tout ce que tu mets entre PARSER_BEGIN(MaGrammaire) et PARSER_END(MaGrammaire) sera conservé dans MaGrammaie.java (la classe main, c'est ton parseur en fait) => Donc tu peux effectivement ajouter des méthodes dans ce fichier, mais je déconsille fortement... java "oblige". Et d'ailleur tu pourrais même créer une autre classe Main, j'appelle MainMagrammaire.java dont l'entête est la même que Magrammaire.java)
- tu me demandes pourquoi ?
- bah, en fait à chaque fois que tu génère des fichiers à partir de MaGrammaire.jj, MaGrammaire.java sera écrasée d'où l'interet est de conserver tes méthodes et... que tu viens de mettre en place
- il y a encore d'autres points importants... (notamment à l'utilisation combinée de javaCC/JTB)

Comme j'ai dit plus haut, je ne connais pas comment est écrite ta grammaire, je ne pourrais pas te donner d'autres astuces...

La réponse à ta question: oui, créer une (des) classe (s) à part (des fichier à part) et si tu as besoin d'une méthode particulière tu n'a qu'à l'appeller (mettre dans MainMaGrammaire.java)

A plux