re2c 1.2

Le vendredi 2 aoĂ»t est sorti la version re2c — un gĂ©nĂ©rateur libre d'analyseurs lexicaux pour les langages C et C++. Rappelons que re2c a Ă©tĂ© Ă©crit en 1993 par Peter Bumbulis comme un gĂ©nĂ©rateur expĂ©rimental d'analyseurs lexicaux trĂšs rapides, se distinguant des autres gĂ©nĂ©rateurs par la rapiditĂ© du code gĂ©nĂ©rĂ© et une interface utilisateur Ă©tonnamment flexible, permettant d'intĂ©grer facilement et efficacement des analyseurs dans une base de code existante. Depuis, le projet est dĂ©veloppĂ© par la communautĂ© et continue d'ĂȘtre un terrain d'expĂ©rimentation et de recherche dans le domaine des grammaires formelles et des automates finis.

Les principales nouveautés de la version 1.2 :

  • Ajout d'une nouvelle mĂ©thode (simplifiĂ©e) pour vĂ©rifier la fin des donnĂ©es d'entrĂ©e
    (en anglais, "EOF rule").
    Pour cela, une configuration re2c:eof a été ajoutée,
    permettant de choisir un caractĂšre terminal,
    et une rÚgle spéciale $, qui se déclenche si le lexer
    a atteint avec succÚs la fin des données d'entrée.
    Historiquement, re2c offre plusieurs méthodes pour vérifier la fin des données d'entrée, variant selon leur limitation, leur efficacité et leur simplicité
    d'utilisation. La nouvelle approche vise à simplifier l'écriture du code tout en
    restant efficace et largement applicable. Les anciennes méthodes
    continuent de fonctionner et peuvent ĂȘtre prĂ©fĂ©rĂ©es dans certains cas.
    Ajout de la possibilité d'inclure des fichiers externes à l'aide de la directive

  • «/*!include:re2c «file.re» */», oĂč «file.re» est le nom du fichier Ă  inclure. Re2c recherche des fichiers dans le rĂ©pertoire du fichier incluant,
    /*!include:re2c "file.re" */, гЎД file.re
    est le nom du fichier inclus. Re2c cherche des fichiers dans le répertoire du fichier inclus,
    ainsi que dans la liste des chemins définis avec l'option -I.
    Les fichiers inclus peuvent inclure d'autres fichiers.
    Re2c fournit des fichiers "standards" dans le répertoire include/
    du projet — il est prĂ©vu que des dĂ©finitions utiles s'y accumulent
    pour les expressions réguliÚres, quelque chose dans l'esprit d'une bibliothÚque standard.
    Pour le moment, à la demande générale, un fichier avec des définitions de catégories Unicode a été ajouté.

  • Il est dĂ©sormais possible de gĂ©nĂ©rer des fichiers d'en-tĂȘte avec un contenu arbitraire Ă  l'aide des options « -t —type-header » (ou des configurations correspondantes)
    avec un contenu à l'aide des options -t —type-header (ou configurations correspondantes) et de nouvelles directives /*!header:re2c:on*/ et
    Par dĂ©faut, re2c analyse des expressions telles que "∀x ∃y" comme.
    /*!header:re2c:off*/. Đ­Ń‚ĐŸ ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ĐżĐŸĐ»Đ”Đ·ĐœĐŸ ĐČ ŃĐ»ŃƒŃ‡Đ°ŃŃ…,
    Par dĂ©faut, re2c analyse des expressions comme «∀x ∃y» comme
    une séquence de caractÚres ASCII sur 1 bit « e2 88 80 78 20 e2 88 83 79 »

  • (codes hexadĂ©cimaux), et les utilisateurs doivent Ă©chapper manuellement les symboles Unicode :
    une séquence de caractÚres ASCII à 1 bit e2 88 80 78 20 e2 88 83 79
    "u2200x u2203y". Cela est trĂšs gĂȘnant et inattendu pour beaucoup
    re2c fournit l'option «—input-encoding {ascii | utf8}»,
    re2c propose l'option —input-encoding ,
    «2200 78 20 2203 79».
    qui permet de modifier le comportement et d'analyser "∀x ∃y" comme
    Re2c permet dĂ©sormais d'utiliser des blocs re2c classiques en mode -r —reuse.
    2200 78 20 2203 79.

  • avec la nouvelle option —location-format . Le format GNU s'affiche
    Ă  l'aide de la nouvelle option «—location-format {gnu | msvc}». Le format GNU s'affiche
    comme « nom_fichier:ligne:colonne: », et le format MSVC — comme « nom_fichier(ligne,colonne) ».

  • Cette fonctionnalitĂ© peut ĂȘtre utile aux amateurs d'IDE.
    comme filename:line:column:, tandis que le format MSVC s'affiche comme filename(line,column).
    Une option —verbose a Ă©galement Ă©tĂ© ajoutĂ©e, qui affiche un message de succĂšs succinct en cas de rĂ©ussite.
    de priorité des opérateurs dans de rares cas ont été corrigées.
    Le mode «compatibilité» avec flex a Ă©tĂ© amĂ©liorĂ© — certaines erreurs d'analyse ont Ă©tĂ© corrigĂ©es et

  • Historiquement, l'option -F —flex-support permet d'Ă©crire du code
    Le mode de compatibilité avec flex est rarement utilisé dans le nouveau code,
    L'opérateur de soustraction des classes de caractÚres / est désormais appliqué
    L'opérateur de soustraction des classes de caractÚres « / » est maintenant appliqué.
    Le mode de compatibilité avec flex est rarement utilisé dans le nouveau code,
    mais re2c continue de le prendre en charge pour la rétrocompatibilité.

  • au chapitre
    avant le déploiement du codage, ce qui permet de l'utiliser dans un plus grand nombre de cas,
    si un encodage avec une longueur de caractÚre variable est utilisé (par exemple UTF8).

  • Le fichier de sortie est dĂ©sormais créé de maniĂšre atomique : re2c crĂ©e d'abord un fichier temporaire
    et écrit le résultat à l'intérieur, puis renomme le fichier temporaire en fichier de sortie
    en une seule opération.

  • La documentation a Ă©tĂ© complĂ©tĂ©e et réécrite ; en particulier, de nouveaux
    sur le remplissage du tampon d'un manuel exhaustif d'une page
    et sur les méthodes de vérification de la fin des données d'entrée.
    La nouvelle documentation est regroupée sous forme de
    peut ĂȘtre inclus Ă  l'aide de l'option configure —enable-debug.
    avec des exemples (les mĂȘmes sources sont prĂ©sentĂ©es dans le manpage et dans la documentation en ligne).
    Des tentatives limitées ont été faites pour améliorer la lisibilité du site sur les téléphones.

  • Du point de vue des dĂ©veloppeurs, re2c a acquis un systĂšme de
    débogage plus complet. Le code de débogage est désormais désactivé dans les versions de production et
    Cette version a pris beaucoup de temps — presque un an.

La majeure partie du temps, comme toujours, a été consacrée à l'élaboration de la base théorique et à l'écriture
"Efficient POSIX Submatch Extraction on NFA"
article «Extraction efficace de sous-correspondances POSIX sur NFA».
Les algorithmes décrits dans l'article sont implémentés dans une bibliothÚque expérimentale libre2c
(la compilation de la bibliothÚque et des bancs d'essai est désactivée par défaut et s'active via l'option configure-
--enable-libs). La bibliothÚque n'est pas conçue pour concurrencer les projets existants comme RE2, mais comme une plateforme de recherche pour développer de nouveaux
algorithmes (qui peuvent ensuite ĂȘtre utilisĂ©s dans re2c ou dans d'autres projets).
C'est également pratique pour les tests, les bancs d'essai et la création de liaisons vers d'autres langages.
Les développeurs de re2c remercient tous ceux qui ont contribué à la réalisation de cette version,

et en général la communauté pour ses idées, rapports de bogues, correctifs, esprit combatif, etc. ;]
Le vendredi 2 aoĂ»t, la version de re2c — un gĂ©nĂ©rateur gratuit d'analyseurs lexicaux pour les langages C et C++ est sortie.

Source : linux.org.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster