2010-01-02 3 views
0

J'ai installé avec succès antlr3 sur mon Windows et lié à Visual Studio, mais ...Besoin d'un exemple calc pour antlr3

Quelqu'un pourrait me montrer un exemple de travail de la calculatrice en C++/ANTLR? La même chose que de distribuer, qui est écrit en Java.

J'ai un mal à le faire. J'utiliser std :: carte < std :: string, double > pour NameTable, mais on ne peut pas charger C++ en-têtes de @header, parce que tous les fichiers générés sont totalement en C (avec extern implicite « C » pour compilateur C++) et même cstdlib peux compile pas. Quand j'ai codé les fonctions wrapper dans main.cpp et les ai chargées depuis lexer/parser, j'ai reçu un étrange message d'erreur. Finalement, j'ai le suivant et je ne donne pas une idée de ce que c'est.

 
Antlr3c.lib(antlr3lexer.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 
LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification 
Creating library D:\antlr_usage\Debug\antlr_usage.lib and object D:\antlr_usage\Debug\antlr_usage.exp 
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 
+0

Merci pour votre réponse à ma réponse. Je ne suis plus clair sur ce que tu veux. Il n'y a pas de cible C++ pour Antlr 3 mais le mieux que vous puissiez faire est la réponse C++ dans Antlr 2 que je vous ai montrée. Que pourriez-vous vouloir d'autre ?? – chollida

Répondre

0

Malheureusement il n'y a pas une version C++ cible encore pour Antlr 3. Antlr v2 n'a cependant une grande C++ cible ainsi qu'un exemple de programme Calc.

Antlr v3 a une cible C. Si vous voulez regarder à travers ses échantillons, vous pouvez les trouver sur cette page:

http://www.antlr.org/api/C/index.html

Ou ici pour les impatients :) http://www.antlr.org/download/examples-v3.tar.gz

Si vous voulez voir la Antlr V2 C++ Calc exemple et essayez de l'adapter pour utiliser C dans Antlr v3, vous pouvez le télécharger ici: http://www.antlr.org/api/C/index.html

+0

@Anthrax Gamma 'Mais j'ai une tradition d'utiliser Google avant de poser une question, si vous ne me dit rien new.' alors vous devriez le mettre dans la question que les gens sachent ce que vous avez déjà essayé. Poser de bonnes questions est un art difficile à apprendre :) – chollida