kynder Posted January 19, 2010 Report Posted January 19, 2010 salutareasta e proiectul meu la facultatesa fac un program in c++ care sa indenteze fisiere sursaexemplu:din codul astasa imi transforme in codul astanu vreau mura-n gura cod, ci o idee de pornire.ideea mea e sa transfer textul din fisierul neindentat intr-o singura linie in alt fisier si de acolo sa tratez fiecare caz in parte ( {,},public:,private:,protected:,etc) dar vreau sa vad si alte pareri. Quote
CyberWolf08 Posted January 19, 2010 Report Posted January 19, 2010 Pare o destul de buna ideea ta cu un swich case mare.Pluginul TextFX pt Notepad++ are deja functia asta si ai putea sa te uiti si pe acolo(functia se numeste reindentcode si se afla in NPPTextFX.c) sau ai putea sa perfectionezi pluginul daca chiar vrei. Quote
kynder Posted January 20, 2010 Author Report Posted January 20, 2010 ideea e ca dupa ce transfer totul pe o linie nu stiu cum sa continui.adica nu stiu prin ce metoda mi-ar fi mai usor sa tratez toate cazurile, si eventual si cateva exceptii.tu ce zici ? Quote
CyberWolf08 Posted January 20, 2010 Report Posted January 20, 2010 Pai parcurgi firecare caracter si daca e de exemplu '{' treci pe o linie noua si contorizezi (pentru a realiza o indentare calumea), verifici keywords(if, for, int...) si tratezi pe fiecare separat. Problema cea mai mare ar fi totusi ca sunt foarte multe cazuri si destul de mult de munca. Quote
kynder Posted January 20, 2010 Author Report Posted January 20, 2010 eu ma gandeam ca sa bag tot ce e intre spatii inntr-un vector.de exemplu: "class C : public F" sa "intre" in v[0]=class v[1]=C v[2]=: v[3]= public v[4]=F, pentru ca imi e mult mai usor sa verific apoi ce sa fac.nu trebuie sa verific if,for,while pentru ca sunt corect asezate.. eu trebuie sa tratez decat cazurile cand sa adaug "\n" si "\t"; cat despre exceptii.. e aiurea rau ca nu prea-mi dau seama cum sa fac,dar mai e pana ajung la exceptii. Quote