0
votes

Le générateur d'analyseurs AntLR4 peut-il générer du code C?

J'étudie AntlR4 et, dans la documentation, j'ai lu que les principales cibles de ce générateur d'analyseur sont: Java, C #, Python2 | 3, JavaScript, Go, C ++, Swift. Au lieu de cela, la version précédente (AntLR3) comprend également c.

Ma question est la suivante: Y a-t-il un moyen de générer un code C aussi dans AntLR4? Merci


2 commentaires

La réponse de Bart Kiers raconte qu'il n'y a pas de cible C. Cependant, il est assez facile de créer un fichier d'en-tête C qui déclare des fonctions, qui sont définies dans un code C ++ comme externe "c" (et puisqu'il est Code C ++, il peut appeler le code ANTLR4-GenRated C ++. code). Un tel wrapper serait-il servir votre but?


Merci, peut-être que cela pourrait être une option


3 Réponses :


1
votes

Réponse courte: Non, il n'y a pas de cible C.

Vous avez oublié un, BTW: il y a aussi une cible PHP. Au moment de cette écriture, ce sont les objectifs disponibles:


2 commentaires

Merci beaucoup, je recherche un générateur d'analyseurs qui génère un analyseur de haut en bas en C, Java, Python et éventuellement JavaScript (mais non requis). AntLR4 pourrait être une option car est très utilisée, mais pour mon cours d'université, C est une forte exigence. Pouvez-vous me suggérer un autre générateur d'analyseurs avec ces fonctionnalités? Que pensez-vous de Coco / R?


Désolé, je n'ai aucune expérience avec (ll) générateurs d'analyseurs avec une cible C :(



0
votes

AntlR4 Ansing and Code Generation ont été conçus à base de fonctionnalités orientées objet telles que l'héritage et le polymorphisme, et la génération de cible C générant C est un peu difficile, car elle ne prend pas en charge la programmation orientée objet.


0 commentaires

0
votes

J'ai écrit un constructeur d'analyseurs dans le code commun de Kotlin. Le code natif est une option en tant que cible de kotlin, l'analyseur doit donc appeler du code C. Bien que je n'ai pas testé cela très largement.

Ce n'est pas AntLR4, les analyseurs générés par ANTLR sont beaucoup plus rapides. Mais la syntaxe de définition d'une grammaire est similaire à celle d'Antlr, donc si vous avez encore besoin de quelque chose, n'hésitez pas à essayer de le faire, et laissez-moi savoir comment vous allez sur.

Les détails peuvent être trouvés ici: https://medium.com/@dr.david.h.akehurst/a-kotlin-multi-platform-parser-usable-de-a-jvm-or-javascript-59e870832A79


0 commentaires