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 ;-)
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