2009-07-14 12 views
25

Ho cercato recentemente Boost.Spirit (la versione inclusa in Boost 1.39), tuttavia sono abbastanza confuso dai soli documenti. Quello che sto cercando è per un esempio di un linguaggio giocattolo implementato con Boost.Spirit - qualcosa sulla falsariga di un piccolo Javascript o Lua o così, in cui fondamentalmente si crea un AST e il processo è. Sarei felice se supportasse solo le definizioni di funzione/variabile e gli operatori di base, voglio solo vedere come si creerebbe un normale AST usando Boost.Spirit e come implementare regole di base come identificatori, dichiarazioni, ecc.Guida introduttiva per Boost.Spirit?

Finora, ho provato l'esempio della calcolatrice, ma non è chiaro per me come implementare una grammatica più ampia con Spirit. L'esempio mini_c che è in bundle d'altra parte sembra già abbastanza complicato, e non è troppo ben documentato. C'è qualche guida facile da capire su Boost.Spirit là fuori, o forse un libro?

+0

Se vuoi conoscere il nuovo Boost Spirit X3, ti consiglio [questo video] (https://www.youtube.com/watch?v=xSBWklPLRvw). Le diapositive di PowerPoint sono trovate [qui] (http://ciere.com/cppnow15/using_x3.pdf). –

risposta

10
+2

Ecco la mia versione personale di JSON utilizzando Spirit V2 https://github.com/sehe/spirit-v2-json per il confronto – sehe

+0

Ecco una bella recensione su Dr. Dobbs: [http://www.drdobbs.com/ cpp/the-spirit-parser-library-inline-parsing/184401692] (http://www.drdobbs.com/cpp/the-spirit-parser-library-inline-parsing/184401692?pgno=1) – evilspacepirate

5

si prega di tenere a mente c'è una versione più recente dello spirito impulso con l'approccio completamente nuovo verso la generazione di AST.

+3

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