Liviu Daia scria la data de 20 Decembrie 2005:
>     Stie cineva un class browser pentru C++, preferabil free, care sa
> ruleze pe Linux sau *BSD?  Precizez ca programele in genul cscope nu
> sunt suficiente: am nevoie de un browser care sa stie de exemplu ca la
> linia N este apelata instanta Foo::Bar(int, int) si nu alta.  Voi ce
> folositi pentru asta?

    Revin asupra acestui subiect, pentru ca este probabil de interes
pentru mai multa lume.

    Am primit pana acum trei raspunsuri (pentru care le multumesc celor
care mi le-au dat): Kdevelop, Eclipse si Source Navigator.  M-am jucat
putin cu fiecare dintre ele, si fiecare are puncte sale tari si este
util pentru un anume task.  Nici unul nu raspunde insa problemei mele.

    Incerc sa fiu mai clar de aceasta data.  Multi ani am folosit (sub
un sistem care nu se numea Linux :-)) un utilitar de re-engineering
scris de Infinite Monkeys.  Scopul principal al acestui utilitar era
sa parse-ze sursele unui proiect si sa produca un arbore de sintaxa,
pe care il puteai apoi modifica in diferite feluri, iar la sfarsit
utilitarul salva sursele modificate.  Pachetul venea cu un compilator
propriu, si, ca bonus pentru ca lucra cu arborele de sintaxa, avea un
IDE care stia ca la linia N unde gasea de exemplu:

        B = Bar(3, 5);

se apeleaza exact instanta Foo::Bar(int, int), si nu Baz::Bar(int, int),
nici Foo::Bar(int, float).

    Evident, putine firme au capacitatea de a produce un asemenea
utilitar, iar majoritatea lumii pare sa traiasca in pace si fara el.
Nu ma astept deci sa existe un echivalent complet pentru Linux, si cu
atat mai putin unul free.  Problema pe care o rezolva IDE-ul este insa
una care mi se pare naturala.  Fara asa ceva, orice limbaj care suporta
overloading este in esenta write-only, si obliga programatorul sa faca
in minte o mare parte din treaba compilatorului.  (De altfel asta este
si unul dintre motivele pentru care am evitat intotdeauna limbaje ca C++
si Java.  Nefiind programator, mi-am putut permite. :-))

    Revenind la Kdevelop, Eclipse si Source Navigator: toate trei stiu
sa imi dea o lista de Foo::Bar care s-ar potrivi atunci cand gasesc
Bar(3, 5), ceea ce de altfel stie sa faca si Vim + Ctags sau Cscope.
Nici unul insa nu imi spune ca instanta care se apeleaza efectiv acolo
este Foo::Bar(int, int) si nu alta.  Pentru asta ar fi nevoie de o
compilare partiala, pe care nici unul din aceste utilitare nu o face.
Intrebarea mea era deci: exista ceva (pentru Linux sau *BSD, preferabil
free) care face mai mult in sensul asta?

    Salutari,

    Liviu Daia

-- 
Dr. Liviu Daia                                  http://www.imar.ro/~daia

_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui