Question

Je recherche un générateur de scanner lexical décent pour C # / .NET - quelque chose qui prend en charge les catégories de caractères Unicode et génère quelque chose de lisible & amp; code efficace. Quelqu'un en sait un?

EDIT: j'ai besoin de la prise en charge des catégories Unicode , pas uniquement des caractères Unicode. Il y a actuellement 1 421 caractères dans la seule catégorie Lu (lettre, majuscule), et je dois faire correspondre très précisément de nombreuses catégories différentes, et je préférerais ne pas écrire à la main les jeux de caractères nécessaires. / p>

De même, le code réel est un must - cela exclut les choses qui génèrent un fichier binaire qui est ensuite utilisé avec un pilote (par exemple, GOLD)

EDIT: ANTLR ne prend pas encore en charge les catégories Unicode. Il existe un numéro ouvert pour lui cependant, cela pourrait peut-être répondre à mes besoins un jour.

Était-ce utile?

La solution

GPLEX semble répondre à vos besoins.

Autres conseils

Les deux solutions qui nous viennent à l’esprit sont ANTLR et Or . ANTLR a un concepteur de grammaire basé sur une interface graphique et un excellent exemple de projet en C # peut être trouvé ici .

Je suis d’accord avec @David Robbins, ANTLR est probablement votre meilleur pari. Cependant, le code ANTLR généré nécessite une bibliothèque d'exécution distincte pour pouvoir utiliser le code généré car il existe certaines analyses de chaînes et autres points communs de la bibliothèque sur lesquels repose le code généré. ANTLR génère un lexer ET un analyseur.

Sur une note de côté: ANTLR est génial ... J'ai écrit une grammaire de plus de 400 lignes pour générer plus de code 10k ou C # afin d'analyser efficacement un langage. Cela incluait la vérification d'erreur intégrée pour tout ce qui pourrait aller de travers dans l'analyse du langage. Essayez de le faire à la main, et vous ne suivrez jamais les bugs.

Je viens de trouver ceci

http://www.seclab.tuwien.ac.at/ projets / cuplex / lex.htm

Il est indiqué qu'il est suffisamment configurable pour prendre en charge l'unicode; -).

Herber

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top