2009-07-14 10 views
25

J'ai regardé récemment Boost.Spirit (la version incluse dans Boost 1.39), mais je suis assez confus des docs seuls. Ce que je cherche est pour un exemple de langage de jouet mis en œuvre avec Boost.Spirit - quelque chose comme un petit Javascript ou Lua ou alors, où vous créez essentiellement un AST et le processus est. Je serais heureux s'il supporte simplement les définitions de fonction/variable et les opérateurs de base, je veux juste voir comment vous pourriez créer un AST normal en utilisant Boost.Spirit, et comment implémenter des règles de base comme des identifiants, des déclarations, etcGuide de démarrage de Boost.Spirit?

Jusqu'ici, j'ai essayé l'exemple de la calculatrice, mais il n'est pas clair pour moi comment implémenter une grammaire plus grande avec Spirit. L'exemple de mini_c qui est groupé d'un autre côté semble déjà assez compliqué, et il n'est pas très bien documenté. Y at-il un guide facile à comprendre pour Boost.Spirit là-bas, ou un livre peut-être?

+0

Si vous voulez en savoir plus sur le nouveau Boost Spirit X3, je recommanderais [cette vidéo] (https://www.youtube.com/watch?v=xSBWklPLRvw). Les diapositives powerpoint sont trouvées [ici] (http://ciere.com/cppnow15/using_x3.pdf). –

Répondre

10
+2

Voici ma propre prise à JSON en utilisant Spirit V2 https://github.com/sehe/spirit-v2-json pour comparaison – sehe

+0

Voici une belle description sur le Dr Dobbs: [http://www.drdobbs.com/ cpp/the-esprit-parser-bibliothèque-inline-parsing/184401692] (http://www.drdobbs.com/cpp/the-spirit-parser-library-inline-parsing/184401692?pgno=1) – evilspacepirate

5

s'il vous plaît garder à l'esprit il y a une version plus récente esprit d'élan à l'approche complètement nouvelle à générer AST.

+3

Documentation pour Spirit2: http://www.boost.org/doc/libs/1_40_0/libs/spirit/doc/html/index.html –

Questions connexes