2009-08-09 13 views

Répondre

5

Quelle est la complexité de votre DSL?

J'ai créé un analyseur (en Delphi) pour le nouveau langage RIDL Delphi afin de prendre en charge certains outils de génération COM internes que nous utilisons.

Mon approche était d'utiliser ANTLR pour jouer avec les règles de syntaxe jusqu'à ce que j'avais quelque chose qui analysait les différents fichiers de test que j'avais. J'ai ensuite codé à la main un analyseur de descente récursif (basé sur le Java généré par ANTLR). J'utilisais également le Castalia Delphi Parser dans le projet, donc j'ai basé mon analyseur lexical sur cela.

Les analyseurs de descente récursifs sont réellement très simples (mais fastidieux :-)) pour écrire manuellement.

+0

C'est une bonne idée. Mon DSL est assez simple. J'aime l'idée de le prototyper aussi dans ANTLR. –

4
+0

Merci. C'est assez vieille école cependant. Rédaction d'un DSL pousse déjà les limites de l'acceptabilité. lex/yacc ferait juste paniquer les gens. Malheureusement, je devrais faire mon DSL en tant que langage XML. –

+0

Nah, la version TP est old school: http://wiki.freepascal.org/Utilities#tply –

2

Je n'ai pas essayé du tout et je viens de remarquer l'information alors que je lisais dans la documentation, mais FastScript, dans leur documentation que vous pouvez obtenir here, dit que vous pouvez utiliser leur analyseur pour créer votre propre langage que vous spécifiez dans un fichier XML. Cela pourrait vous donner quelque chose que vous pouvez utiliser.

0

J'ai trouvé Antlr For Delphi 3.1.1.

SharpPlus Antlr Pour Delphi cible 3.1.1, un outil linguistique qui fournit un cadre pour la construction , Recognizers interprètes, compilateurs avec Delphi!

C'est un produit commercial. Je n'ai aucune idée de ce que c'est.