2010-09-30 4 views
2

Je suis en train d'écrire un compilateur qui compile un DSL spécifique au projet (avec les fonctionnalités d'un langage de script de base) dans un langage assembleur spécifique au projet . La plate-forme est écrite en C#, donc un .NET-Compiler natif serait la solution parfaite.Construction d'un compilateur pour un DSL utilisant ANTLR et la cible Anthar CSharp

Je l'ai déjà fait beaucoup de recherches et il semble ANTLR cadrerait dans le travail de construction du compilateur, si je comprends les bonnes choses suivantes:

je dois écrire la grammaire fichier et un « modèle "qui émet l'assembleur. Le framework ANTLR (java) génère un compilateur à partir du fichier de grammaire. Le compilateur lui-même est pur C# (en utilisant la cible CSharp Antlr 3) et peut, après la compilation à un assembly .NET, compiler "mon" DSL à notre assembleur personnalisé.

Est-ce que je comprends? Et est-ce qu'il n'y a définitivement pas besoin de Java/ANTLR-Java-API lors de l'exécution (= lors de "l'utilisation" du compilateur)? (Je suis également ouvert pour d'autres solutions/frameworks, tant que le compilateur résultant est un composant .NET).

Thx :)

Répondre

2

Il y a des informations détaillées sur l'utilisation de la cible csharp pour ANTLR

En résumé:

Tout ce que vous avez besoin est l'analyseur C#/code lexer que ANTLR génère en plus d'un référence au fichier ntlr3.Runtime.dll. La DLL est modélisée d'après la version Java, mais elle n'utilise ni ne fait appel à quoi que ce soit qui soit Java.

+0

Je connais la page d'informations sur la cible CSharp, mais comme je ne sais pas encore beaucoup de choses sur ANTLR, je dois m'assurer que j'ai tout compris correctement. Merci! –

+0

J'ai écrit quelques articles sur la façon d'utiliser ANTLR sur C# /. NET, http://lextm.com/search/label/ANTLR –

Questions connexes