Newsgroup: it.comp.lang.c++
Titolo: [forse OT] Spirit

Salve. Ho scaricato la libreria Spirit 1.6 (che si appoggia a Boost): è un
generatore di parser completamente in C++, cioè non "genera" codice C++ a
partire da una definizione di grammatica, ma, attraverso il meccanismo dei
template, genera il codice necessario "al volo" direttamente dalla sintassi
C++. E' una libreria di soli header (non si deve quindi compilare alcuna
libreria).
Queste caratteristiche le ritengo ottime soprattutto per costruire
interpreti per linguaggi di scripting.
Sto leggendo la documentazione e mi pare ben fatta. Chi ne capisce mi può
dare qualche indicazione circa i pro e i contro di adottare un approccio di
questo tipo piuttosto che quello tradizionale come yacc o pccts ?
(quest'ultimo lo provai tempo fa, mi pareva buono, ma ha il solito problema
della generazione di codice "indipendente dal processo di compilazione"...
insomma non mi piace incasinarmi troppo). Grazie per le eventuali
delucidazioni.

 questo tipo piuttosto che quello tradizionale come yacc o pccts ?
Se il tuo linguaggio e' il C++ a mio avviso non c'e' storia: Spirit e'
molto piu' versatile degli strumenti tradizionali. A mio avviso
l'unico aspetto che puo' risultare problematico e' la portabilita':
Spirit mette a dura prova il compilatore, e non tutto funziona con
tutti i compilatori.
Aggiungi il fatto che Spirit e' sviluppato e mantenuto da una piccolo
gruppo di persone entusiaste, raccolto intorno al suo autore, Joel De
Guzman, la cui disponibilita' e' fuori dal comune e che tutti loro
animano le mailing list specifiche (disponibili via news su
news//
news.gmane.org
), per cui e' facile ottenere risposte ai propri
dubbi.
Se poi hai tempo e modo di studiarti come e' fatta "dentro", e' pure
molto istruttiva.
Credo di averti risposto :-)
Ciao,
Nicola

 Nicola
Diego.

 sarà la prima ad essere inserita nel prossimo standard)
Cosa fa?
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 Cosa fa?
E' una potente generalizzazione delle funzioni di binding della libreria
standard, molto più flessibile e generica, permette di "bindare"
funzioni,oggetti funzione e anche puntatori a funzioni membro con qualsiasi
(o quasi) numero di argomenti, attraverso una tecnica che usa degli oggetti
"segnaposto" che identificano quali sono gli argomenti su cui fare il
binding...
Mi sono spiegato malissimo, lo so :-) ma se guardi la documentazione ti si
chiariranno senza dubbio le idee.
Diego.

 chiariranno senza dubbio le idee.
No, a grandi linee mi sembra di aver capito. Grazie.


 E' una potente generalizzazione delle funzioni di binding [...]
fai capire anche a me, chè di C++ ne so zero?
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.1. C, C++ and ASM developers
                               and beta testers are welcome!

fai capire anche a me, chè di C++ ne so zero?
credo nessuno ti saprebbe spiegare meglio della stessa documentazione
di boost.. 
http://www.boost.org/libs/bind/bind.html
sbirish

 
http://www.boost.org/libs/bind/bind.html
carina. Terrò presente
