Next Previous Contents

2. Outils de construction de compilateurs - Partie II

Par Richard A. Sevenich rsevenic@penguin.sirti.org

2.1 Partie II: Installer JFlex et CUP - Instructions spécifiques

Ceci est le deuxième article d'une série dont le premier est apparu dans l'édition d'avril 1999 de la Linux Gazette (numéro 39). L'exemple traditionnel, la calculette, est fourni dans la troisième partie de cette série, laquelle paraît également dans ce numéro.

2.2 Sur le fond

Les logiciels JFlex et CUP sont livrés avec des instructions d'installation. Celles-ci sont détaillées et bien écrites. Néanmoins ce document a été écrit pour donner un scénario d'installation très spécifique. D'après l'expérience de l'auteur, cette spécificité peut être utile pour certains nouveaux utilisateurs qui trouvent que la généralité et la flexibilité du manuel d'origine rendent les choses trop compliquées. D'un autre côté, cette spécifité supprime toute flexibilité.

Ces instructions sont prévues pour une machine Linux, avec un shell bash par défaut, ainsi qu'un shell tcsh installé, mais n'étant pas utilisé par défaut. On considère que l'utilisateur dispose d'une version du jdk (Java Development Kit), ou d'un équivalent. Dans le cas contraire, vous pouvez le trouver sur http://www.blackdown.org/. Sur le système utilisé par l'auteur, l'archive tar compressée nommée jdk1.1.5-v5-glibc.tar.gz chargée sur blackdown a été installée dans /usr/lib.

L'auteur apprécierait toute correction et toute suggestion constructive. Vous pouvez le contacter à rsevenich@ewu.edu.

2.3 Préparation du système

Notez que les choix spécifiques faits dans cette section sont arbitraires. Pour les débutants, nous considérons que vous commencez dans votre répertoire privé, disons, /home/dupont. Tous les chemins seront relatifs à cette position dans la hiérarchie des fichiers. Créez les nouveaux répertoires comme suit :

mkdir javatools
mkdir javatools/CUP

Revoyez ensuite vos fichiers .bash_profile et .bashrc pour fixer les variables CLASSPATH et autres nécessaires à java. Voici quelques lignes d'exemple :

JAVB=/usr/lib/jdk1.1
JAVT=/home/dupont/javatools
CLASSPATH=./:$JAVB/lib/classes.zip:$JAVT/JFlex/lib/JFlex.jar:$JAVT/CUP
PATH=$PATH:$JAVB/bin:$JAVT/JFlex/bin
export PATH CLASSPATH

Note : le répertoire /usr/lib/jdk1.1 désigne l'endroit où les fichiers java ont été décompressés. Dans le cas de l'auteur, ceci était un lien symbolique vers /usr/lib/jdk1.1.5v5-980311/.

Pour que ces changements soient effectifs, vous devez redémarrer votre shell.

2.4 JFlex

Obtenir JFlex

JFlex est disponible sur http://www.informatik.tu-muenchen.de/~kleing/jflex/index.html#Download au format tar.gz. Au moment de l'écriture de cet article, le nom du fichier était jflex-1.2.tar.gz. Cette archive contient un manuel complet avec ses propres instructions d'installation.

Un scénario d'installation particulier

  1. Mettez l'archive jflex-1.2.tar.gz dans votre répertoire javatools/.
  2. A partir du répertoire javatools/, décompressez l'archive avec la commande tar xvfz jflex-1.2.tar.gz

Ceci devrait créer un répertoire JFlex avec la hiérarchie associée. Il devrait contenir tout ce qui est nécessaire, y compris la documentation dans le sous-répertoire doc. Le manuel est compréhensible et indique comment JFlex peut être utilisé pour produire des analyseurs lexicaux autonomes (comme dans l'exemple 2.3, ci-dessous) ou des analyseurs lexicaux à utiliser avec des analyseurs produits par d'autres utilitaires, comme CUP. Dans le répertoire JFlex/bin vous trouverez le script jflex qui doit être modifié comme suit :

  1. changez JFLEX_HOME pour qu'il soit équivalent à JFLEX_HOME=/home/jsmith/javatools/JFlex
  2. changez JAVA_HOME pour qu'il soit équivalent à JAVA_HOME=/usr/lib/jdk1.1

Tester l'installation

  1. Placez-vous dans le répertoire javatools/JFlex/examples/standalone/
  2. Suivez les instructions données par le fichier README de ce répertoire, ce qui devrait afficher :
Hello someone !
This is a sample input file for the
standalone example scanner.
Have a nice day !

2.5 CUP

Obtenir CUP

CUP est disponible sur http://www.cs.princeton.edu/~appel/modern/java/. Vous y trouverez le code source nécessaire et un manuel de l'utilisateur. Le manuel peut être récupéré au format html pour en faire un manuel en ligne ou sous une forme imprimable (postscript). La section suivante traitera de l'installation du code source.

Note : ce site contient également une alternative à JFlex, nommée JLex.

Un scénario d'installation spécifique de CUP avec test

  1. Placez l'archive tar dans le répertoire javatools/CUP/
  2. Placez-vous dans ce répertoire
  3. Décompressez l'archive tar
  4. Lancez le fichier d'installation/test en tapant ./INSTALL. Notez que ce fichier utilise csh ou son équivalent tcsh, celui-ci doit donc être disponible.

Vous devriez obtenir un message du type "Install and test was successful" [l'installtion et le test se sont correctement déroulés] si tout s'est bien passé.

2.6 Et après ?

Les manuels fournis avec JFlex et CUP fournissent suffisamment d'informations pour que les utilisateurs puissent travailler.

Publié dans le numéro 41 de la Linux Gazette.

Traduction française Arnaud Launay.


Next Previous Contents