re2c 4.0

Mardi 19 novembre, le lancement a été présenté re2c – d'un générateur d'analyseurs lexicaux (aussi appelé compilateur d'expressions régulières en code dans le langage de programmation cible). re2c se spécialise dans la génération d'analyseurs rapides et faciles à intégrer. Il se distingue de l'analogue plus connu flex par son interface flexible, la génération d'analyseurs lexicaux optimisés sans table et le support des captures (submatch extraction) basé sur des automates finis déterministes avec des étiquettes (TDFA). re2c est utilisé dans des projets où la vitesse de l'analyseur est essentielle, par exemple dans Ninja et PHP.

Dans la version 4.0, le sous-système de génération de code a été totalement reconsidéré, ce qui a permis d'ajouter le support de huit nouveaux langages (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) en plus des langages déjà supportés (C/C++, Go, Rust), ainsi qu'un mécanisme général d'ajout de nouveaux langages via des fichiers de configuration. Le générateur de code est responsable de la traduction de l'automate fini construit et optimisé en code, c'est-à-dire que sa tâche consiste à sélectionner les structures de contrôle appropriées pour le langage cible, les types de données, le modèle général du programme, etc. Auparavant, toute cette logique faisait partie du code source de re2c, et pour la modifier ou ajouter un nouveau langage, il fallait patcher le code source et recompiler re2c. De tels patches n'étaient pas acceptés dans le dépôt principal sans la mise en œuvre d'un ensemble standard d'exemples et de tests, ce qui compliquait encore davantage le processus. Maintenant, toute cette logique a été transférée dans des fichiers syntaxiques – des fichiers de configuration textuels pouvant être fournis par l'utilisateur (par défaut, re2c utilise les standards). Le code source de re2c est entièrement exempt de détails spécifiques au langage et ne repose que sur le fichier syntaxique. L'utilisateur peut partiellement redéfinir un fichier syntaxique existant ou en écrire un nouveau à partir de zéro. Pour tous les langages officiellement supportés, il existe une documentation complète avec des exemples.

D'ailleurs, l'idée même des fichiers syntaxiques est née grâce à un commentaire sur LOR, merci à re2c 4.0the_coder.

La version comprend de nombreux autres changements pour simplifier l'interface utilisateur, améliorer le fonctionnement avec les groupes de capture, et un environnement en ligne pour éditer et compiler des exemples a également été ajouté : http://re2c.org/playground.

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