Je suis heureux d'annoncer la nouvelle version corrigée de tcLex : tcLex v1.2a1: un générateur d'analyseur lexical pour Tcl Par Frédéric BONNET (frederic.bonnet@ciril.fr) Mis à jour le 3 septembre 1999, 15:08 La page Web dédiée à cette extension est : http://www.multimania.com/fbonnet/Tcl/tcLex/index.htm ************************************************************************ QUOI DE NEUF: - Adapté pour Tcl8.2. - Modifié le comportement de "lexer begin initial" pour qu'il vide la pile des conditions. - Supprimé les sources de la distribution Windows, qui devient une distribution exclusivement binaire. La distribution .tar.gz est multi-plateforme. Voir le fichier changements.txt pour les détails. ************************************************************************ INTRODUCTION tcLex est une extension Tcl servant à générer des lexeurs (analyseur lexical). Elle est inspirée des commandes Unix et GNU lex et flex, qui sont des "outils pour générer des programmes effectuant des 'pattern-matching' sur du texte". tcLex est très similaire à ces programmes, à part qu'elle utilise la philosophie et la syntaxe de Tcl, tandis que les autres utilisent leur propre syntaxe et sont utilisés en conjonction avec le langage C. Les personnes habituées à lex ou flex devraient donc se sentir familier avec tcLex. tcLex est une petite extension (la version compilée pour Windows fait environ 20ko, et le source environ 150ko), parce qu'il utilise au maximum la bibliothèque Tcl. Cependant, la présente n'utilise plus le code de regexp de Tcl, mais une version modifiée est maintenant incluse dans tcLex, ce qui la rend légèrement plus grosse (de quelques ko). tcLex devrait fonctionner avec Tcl 8.0 et ultérieurs. tcLex ne marchera JAMAIS avec des versions plus anciennes, parce qu'elle utilise le nouveau système d'"objets" de Tcl 8.0 pour des raisons de performance. Les caractéristiques les plus intéressantes sont : * support multi-plateforme, grâce à Tcl. Bien qu'elle ait été développée sur Windows et testée sur Windows et Unix, elle devrait fonctionner sur d'autres plateformes si une version de Tcl existe sur celles-ci. Les plateformes supportées par Tcl sont Windows 95/NT, Unix (Linux, Solaris...) et Macintosh. D'autres plateformes sont VMS, OS/2, NeXTStep, Amiga... * contrairement à lex et flex, qui génèrent uniquement des lexeurs statiques écrits en C et destinés à être compilés, tcLex génère dynamiquement des commandes Tcl qui peuvent être utilisées comme d'autes commandes C ou des procédures Tcl à partir de scripts Tcl ou de programmes C. * elle utilise les expressions régulières de Tcl. Ce qui signifie que vous n'avez pas à apprendre un nouveau langage de regexp. * elle fonctionne avec les "namespaces" de Tcl * les commandes générées peuvent être utilisées en une passe ou incrémentallement, car elles maintiennent des informations d'état. Ainsi, plusieurs instances du même lexeur (par exemple un parseur HTML) peuvent tourner simultanément dans des contextes distincts et maintenir des états également distincts (variables locales...). Les lexeurs n'ont pas besoin d'être spécialement conçus pour être utilisés incrémentallement, le même lexeur peut être utilisé en une passe ou incrémentallement de façon transparente. Cette caractéristique est particulièrement utile lors du traitement de texte issu d'un fichier ou d'une socket Internet (pages Web par exemple), quand les données ne sont pas nécessairement disponibles au début du traitement. VERSION La version actuelle de tcLex est 1.2a1. Le suffixe "a1" signifie "alpha 1", ce qui veut dire que cette version est une version incomplète par rapport aux fonctions de la future 1.2, qui étend et corrige la précédente. Le fichier changements.txt décrit les changements effectués entre la première version de tcLex et la version actuelle. Bien que ce soit une version alpha, elle apporte plus de corrections de bugs que de nouveaux ;-). Dans ce cas, alpha signifie que de nombreuses fonctions prévues ne sont pas encore implémentées, et la documentation peut être incomplête. La plupart des informations utiles sont dans le fichier changements.txt. Le fichier AFAIRE.txt contiens les fonctions prévues qui ne sont pas encore implémentées. OU OBTENIR TCLEX Page d'accueil : http://www.multimania.com/fbonnet/Tcl/tcLex/index.htm Fichiers de distribution : - http://www.multimania.com/fbonnet/pub/tcLex12a1.zip (binaires Windows pour Tcl8.0.5, Tcl8.1.1 et Tcl8.2) - http://www.multimania.com/fbonnet/pub/tcLex1.2a1.tar.gz (sources Windows/Unix pour Tcl8.0.5, Tcl8.1.1 et Tcl8.2) - http://www.multimania.com/fbonnet/pub/tcLex1.2a1.patch (fichier correctif pour la version 1.1.4) SUPPORT Depuis le 17/11/1998, tcLex dispose d'une liste de diffusion dédiée. Le site Web de cette liste est : http://www.eGroups.com/list/tclex . Pour souscrire a cette liste, envoyez un e-mail à l'adresse suivante : tclex-subscribe@egroups.com . J'essaie également de répondre à tous les messages que les utilisateurs m'envoient concernant tcLex. INSTALLATION, LICENSE, ETC. Le fichier LISEZMOI.txt de la distribution contient des informations importantes sur l'installation, la compilation et l'utilisation de tcLex. Lisez-le bien attentivement. Le fichier license.txt (en anglais uniquement) décrit la license qui couvre tcLex. Elle est très proche de celle de Tcl/Tk. J'aprécierai que chaque utilisateur de tcLex m'envoie un mail afin que je puisse comptabiliser le nombre d'utilisateurs de ce logiciel, dans un but purement informatif. Je n'en ferai aucun usage autre que statistique. N'hésitez par à envoyer des commentaires ou signaler des bugs à frederic.bonnet@ciril.fr. tcLex est succeptible d'être amélioré en fonction des remarques des utilisateurs.