[so] Includerea parser-ului
Stefan Bucur
stefan.bucur at gmail.com
Sun Oct 21 14:10:55 EEST 2007
On 10/21/07, Razvan Deaconescu <razvand at cs.pub.ro> wrote:
> Stefan Bucur wrote:
> > Salutare!
> >
> > Just to make sure, referitor la parserul oferit in enuntul temei, as
> > dori sa stiu daca e suficient sa includem in arhiva temei 1 fisierele
> > .c intermediare generate de Flex si Bison (care se regasesc si in
> > arhiva de pe site), sau suntem obligati sa includem fisierele sursa
> > originale .y si .l, si sa facem un makefile care sa genereze din nou
> > codul C, pe care sa-l legam de restul programului nostru.
>
> Stefan, e vorba de 2-3 reguli intr-un fisier Makefile ca sa lucrezi
> direct asupra surselor Flex si Bison.
>
> Care ar fi marele avantaj in a lua direct sursele intermediare generate?
> Intr-un proiect obisnuit pornesti de la sursele initiale nu iei surse
> intermediare, nu?
>
> Razvan
Am intrebat asta pentru ca mi s-a parut cam dubios modul in care erau
construite binarele parserului. Odata exista fisierul 'GNUMakefile'
care face totul de la zero (la asta cred ca te referi tu, doar ca e
ceva mai mult de 2 - 3 linii :P, desi adevarul e ca poate fi
simplificat mult), si in plus mai exista si un alt fisier 'makefile',
care doar construieste un executabil pe Windows, presupunand existente
fisierele obiect.
Nu am inteles de ce trebuie sa fie doua makefile-uri separate (ipoteza
ca unul ar fi de Windows si altul de Linux pica, pentru ca
'GNUMakefile' tine cont de 'cl' si de parametrii specifici de
compilare), si am dedus ca unul dintre ele se foloseste direct de
codul generat de celalalt (cel putin pe Windows), si am crezut ca si
noi avem de facut acelasi lucru - sa nu mai regeneram fisierele C, ci
doar sa legam codul obiect in binarele noastre, pentru a avea un
makefile cat mai simplu.
Si uite un avantaj de a lua direct sursele intermediare: nu mai
depinzi de Flex si Bison, mai ales in contextul in care vrei sa fii
cat mai portabil (si in plus nu am vazut inca ce e instalat pe masina
Windows, cand se face corectarea temei). Poti face foarte usor un
script care sa-ti genereze fisierele astea intermediare inainte sa
faci package-ul aplicatiei. I know, pseudo-avantajul asta este
"compensat" de multe alte dezavantaje (corectarea erorilor se face
mult mai greu, etc.)
In orice caz, pot sa lucrez in ambele moduri la fel de usor, fara sa
modific nimic la mine. Pur si simplu apelez recursiv make cu
'GNUmakefile'-ul dat de voi si iau fisierele obiect generate si le leg
la mine in executabil - am voie sa fac asta, nu? :) Am pus intrebarea
initiala doar pentru ca nu intelegeam ratiunile din spatele a 2
makefile-uri diferite si m-am gandit ca poate imi scapa mie ceva.
Numai bine,
Stefan Bucur
grupa 341CA
More information about the so
mailing list