Newsgroup: it.comp.lang.c++
Titolo: un motore di "espressioni regolari" o qualcosa di simile

Come da topic solo devo fare alcune precisazioni.
Allora tempo avevo postato una domanda simile,
quella su come si sviluppa un linguaggio di programmazione,
purtroppo per problemi di tempo non potuto piů seguire questo mio
mini progetto e lo riprendo in mano solo ora.
Attualmente io delle classi che uso per mappare il database delle classy
entity .
queste classi le uso in questo modo:
a[nomecarattteristica] = "nuovao valore";
oppure
string Msgbox(a[nomecarattteristica]);
nel mio caso specifico ho tante di queste classi ognuna con caratteristiche 
diverse
e molte volte mi capita di dover fare delle ricerche incrociate fra le varie 
classi
(tipo le join che si fanno in sql)
es:
mi serve avere tutti le classi a che sono legate alla classi b
alllora preparo adhoc un metodo chiamato ad'esempio  prendiclassialegateab e 
passo b come parametro (o altri archibugi)
Mi chiedevo come potrei implementare un sistema (ecco perchč linguaggio o 
espressione regolare) che mi permetta di gestire automaticamente
questo genere di confronti ... es:
io adesso faccio cos'
clsA a,atemp ;
clsB b;
//pseudo codice
a.prendiclassialegateab(b,*temp) {
cicla  b
e ogni volta che trovi una caratteristica uguale ad a mettila dentro temp
ritorna a temp //ovvero tutte le classi a legate a b
}
per chiarimenti sono sempre qua
p.s
con caratterstiche intendo campi uguali esattamente come per i databasae 
chiave o chiave esterna (reference) e tutte queste classi
derivano tutte dalla stessa base che poi gli pemette tutti di avere tutti 
quei meccanismi scritti sopra.
grazie ciao

 mini progetto e lo riprendo in mano solo ora.
Come si sviluppa un linguaggio?
E' un problema ben noto ed in internet esiste di tutto.
Puoi farlo in modo classico con 'lex' e 'yacc'.
Lo scoglio e' riuscire a scrivere la grammatica del tuo linguaggio.
lex e yacc generano in codice C il parser del tuo linguaggio.
Per C++ esiste spirit:
http://spirit.sourceforge.net
Che e' un motore di espressioni regolari.
Ciao,
Cesare

 Che e' un motore di espressioni regolari.
E' molto di piu': e' un framework per la realizzazione di parser a
discesa ricorsiva, nonche' un ottimo esempio di come implementare un
linguaggio nel linguaggio, attraverso l'uso spinto della ridefinizione
degli operatori.
Ciao,
Nicola

<Nicola....@ObjectWay.it> ha scritto nel messaggio 
news:1105359413....@c13g2000cwb.googlegroups.com...

Quindi quello che potrebbe fare per me...?!?
Ma se volessi imparare un pò di teoria a riguardo ? (lo so che in rete + 
pieno)
ma mi riferisco a libri ...
Ci sto sempe pensando , penso che il mio (NON SO COSA) è molto simile 
all'sql
come utilizzo,
ho delle condizioni (where) ed in base ad esse "estraggo" un'altro insieme 
(recordset)....
forse mi son spiegato male ...
in pratica deve lavorare con insiemi (classi) , non ci sono interi o altri 
tipi di dati.
p.s
questa utlima parte l'ho messa solo per fare una overview generale di 
quelllo che voglio fare ....
:-) spero di non aver confuso...tutto
grazie come sempre

 :-) spero di non aver confuso...tutto
Prova a dare un'occhiata a 
http://spirit.sourceforge.net/
 , piu' come
ispirazione che come strumento.
Ciao,
Nicola

 ma mi riferisco a libri ...
La teoria dei linguaggi e' tosta, quindi se ti interessa davvero
preparati al peggio! ;p
C'e' lo stranoto libro del drago, Compilers, in questa edizione speciale
http://www.ita-bol.com/bol/main.jsp?action=engscheda&ean=978032113143
Ti spiega molta teoria dei linguaggi e come funziona un compilatore.
Ne potresti fare uno per il tuo linguaggio...
Il libro e' in inglese e non so se ne esiste uno in italiano.
Cmq buona fortuna.
Valerio

<Nicola....@ObjectWay.it> ha scritto nel messaggio 
news:1105437096.1...@f14g2000cwb.googlegroups.com...



Prova a dare un'occhiata a 
http://spirit.sourceforge.net/
 , piu' come
ispirazione che come strumento.
Bè che dire grazie mi metto a lavoro...