Sto cercando di utilizzare flex
e bison
nel mio progetto per generare un codice parser per una struttura di file. Il linguaggio di programmazione principale è C++ e il progetto è su un progetto OO che funziona principalmente in parallelo.Flex ++ BisonC++ parser
Ho sentito che i parser generati da flex
e bison
sono codici C e non sono rientranti. Googling, ho trovato flex++
e bisonc++
. Sfortunatamente non esiste un semplice tutorial per iniziare. La maggior parte degli esempi si basa su bison/flex
. Alcune persone hanno in qualche modo integrato i parser bison/flex
nel loro codice C++. Dovrebbero essere "ingannevoli" ...
La documentazione di flex++
e bisonc++
non mi aiuta e. Esercitazioni ed esempi, tutti ricevono input da stdin e stampano alcuni messaggi sullo stdout.
ho bisogno di queste caratteristiche nel mio parser:
- Parser dovrebbe essere una classe C++, definito in modo normale (un colpo di testa e un file cpp)
- Parser riceve i dati sia da una
std::string
ostd::stringstream
o unchar*
a terminazione nulla.
Mi sento così confuso. Dovrei usare flex++/bisonc++
o flex/bison
? E come farlo, soddisfacendo le condizioni sopra?
Non riesco nemmeno a compilare flexC++! Ho appena scaricato il codice sorgente. Nessun makefile, niente cocake! –
@ sorush-r c'è un pacchetto Linux: http://packages.debian.org/sid/flexc++ Perché avresti bisogno di un makefile? Basta includere le intestazioni e costruire dal proprio ambiente. – TemplateRex
Prima non avevo sentito parlare di 'icmake'. sembra essere il sistema di compilazione usato per compilare 'flexC++'. Grazie –