Bienvenue sur la page de Bison /Java


Click here for the english version

Introduction :

Bison /Java est un projet que j'ai démarré il y a peu de temps (en fait seulement quelques jours). Il vise à écrire un patch pour GNU Bison lui permettant de générer du code Java à la place du code C.

Je ne revendique pas la paternité de ce projet qui est basé sur une idée originale de Bob Jamison, auteur de BYacc /Java.
BYacc /Java est une extension de BYacc lui permettant de générer du code Java. Il met à disposition pour cela l'option de ligne de commande -J.

J'ai décidé de me lancer dans l'écriture de Bison /Java pour pallier aux faiblesses de BYacc /Java. En effet, BYacc est un vieux logiciel comportant des bogues (dont j'ai fait les frais) et surtout, il n'est plus maintenu à l'heure où Bison s'est imposé comme un standard.

Les bases :

Bison /Java repose sur les sources de la version 1.28 de GNU Bison. Tout comme BYacc /Java, l'approche retenue est d'en faire une extension de Bison permettant moyennant l'utilisation d'une option de ligne de commande de génerer du code Java.

Pour une documentation complète sur l'utilisation de Bison, je vous invite à consulter les man pages qui lui sont consacrées (voir les liens). Pour ma part, je me contenterais de donner ici les spécificités de Bison /Java.

Utilisation

Pour passer en mode Java, il suffit de passer en ligne de commande de bison l'option -j. Par défaut, le fichier généré se nommera Parser.java et la classe implémentant le parser se nommera Parser.

En Java, le nom d'un fichier est celui de la classe publique qui y est définie. Pour changer le nom par défaut, vous pouvez insérer dans la zone des déclarations le code suivant :
%class <nom_de_la_classe>

Vous pouvez également choisir le nom du paquetage Java auquel appartient le parser en insérant le code suivant, toujours dans la liste des déclarations :
%package <nom_du_paquetage>

Fonctionnalités

Comme je l'ai dit plus haut, ce projet est jeune et je n'y ai pas encore travaillé énormément. Actuellement, j'ai seulement testé Bison /Java avec l'option -y (mode de compatibilité avec Yacc). Je ne peux donc pas garantir le fonctionnement avec d'autres options.

En particulier, les options permettant de fixer le nom du fichier de sortie telles que -o auront un comportement que je ne pourrais pas prédire puisque le nom du fichier en Java est normallement imposé par le nom de la classe.

Je conseille donc au simples utilisateurs d'appeler Bison /Java avec la ligne de commande suivante :
bison -y -j <fichier_de_grammaire>

Quand aux autres, n'hésitez pas à contribuer au logiciel en m'envoyant vos propres modifications.

Téléchargement

            Désolé, je n'ai pas encore rempli le CVS et l'archive n'est pour l'instant disponible que ci-dessous, dans le tarball. J'espère parvenir à comprendre comment fonctionne sourceforge bientôt ;-)

VersionArchive
0.1bisonj-0.1.tar.gz

Liens

http://www.gnu.org/ (page officielle du projet GNU pour ceux qui ne la connaitraient pas encore)
http://www.gnu.org/manual/bison-1.25/ (Manuel de GNU Bison 1.25)

Contactez-moi

Mon adresse e-mail est : nbertolo@chez.com
Ma page web personnelle est : http://www.chez.com/nbertolo


Hébergé par SourceForge
																																Logo