Toster Napisano Grudzień 15, 2007 Zgłoś Share Napisano Grudzień 15, 2007 Hejka, W ramach prac nad Kwadratem Ninja pojawila sie potrzeba pisania dokumentacji w kodzie, uzywam narazie doxygena ale srednio to wspolpracuje. Tak wiec w miedzyczasie tworymy projekt do dokumentacji. Calosc jest pod adresem: http://www.assembla.com/search/search?sear...=DeDo&commit=Go (szukamy DeDo w spaces) Projekt jest pol-otwarty, czyli mozna przegladac nie mozna modyfikowac. co jakis czas bede wrzucal tutaj male procki ktore jakby komus sie nudzilo moglby dopisac, przyspieszy to nasze prace, mam zamiar rowniez udostpeniac exe'ka i zrodelka, ale chce uniemozliwic radosne modyfikowanie naszego kodu, wiec lokalnie bedzie mozna robic co sie chce ale nie na naszym projekcie. Tak wiec pierwsza procka do pomocy wyglada tak: function SameParamLists(const paramList1, paramList2: TStrings):Boolean; begin end; Procedura porownuje 2 listy stringow w ktorych sa zapisane teksty opisujace parametry metod listy maja taka postac: NazwaZmiennej=TypZmiennej lub NazwaZmiennej= trzeba sprawdzic czy obie listy sa identyczne, czyli: - czy liczba parametrow jest taka sama & - czy typy parametrow i ich nazwy sa takie same kolejnosc parametrow na listach tez musi byc taka sama Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Grudzień 15, 2007 Zgłoś Share Napisano Grudzień 15, 2007 function SameParamLists(const paramList1, paramList2: TStrings):Boolean; begin Result := paramList1.Text = paramList2.Text; end; ? ;-p Jeśli kolejność i właściwie wszystko musi być takie same, to takie porównanie wystarczy ;-) ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 15, 2007 Autor Zgłoś Share Napisano Grudzień 15, 2007 Chcialbym przypomniec ze delphi jest CaseInsensitive.... Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Grudzień 15, 2007 Zgłoś Share Napisano Grudzień 15, 2007 function SameParamLists(const paramList1, paramList2: TStrings):Boolean; begin Result := AnsiCompareText(paramList1.Text, paramList2.Text) = 0; end; ? ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 15, 2007 Autor Zgłoś Share Napisano Grudzień 15, 2007 obadamy wkleje obacze Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
TSr Napisano Grudzień 16, 2007 Zgłoś Share Napisano Grudzień 16, 2007 Czy próbowaliście PasDoc'a? http://pasdoc.sipsolutions.net/ Ubuntu.pl user #10593 Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 16, 2007 Autor Zgłoś Share Napisano Grudzień 16, 2007 Nope szukalem roznych projektow tego typu (sprawdzilem chyba z 8) ale jakos zaden mi nie podszedl za bardzo. Tego nie widzialem ale teraz juz za pozno... wyprodukowalem wczoraj 28kb kodu i mam juz sporo zrobione dziaisj bedzie pewnie pierwszy test. Pozatym od pewnego czasu mamy zamiar z Forcem zrobic pakiet narzedzi wspomagajacych do Delphi i sa szanse ze DeDo bedzie pierwsza z czesci. W sumie jak ktos ma doswiadczenie z Latexem, lub PDf'em (bez zewnetrznych instalowanych komponentow, liby tylko GNU/GPL) to soon pewnie cos sie dla niego znajdzie (jak bedzie mial oczywiscie chec i ochote) Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 16, 2007 Autor Zgłoś Share Napisano Grudzień 16, 2007 ok cos bardziej wymagajacego: procedure TDeDo_BasicParser.SimplifyFile(const content: TStrings); begin end; 6ŁŁą-Ź,rbęZąĘ-Ż7k:n'5i,+-'Ź#z[vĘ^r6ĄśKx)yv4IE Ź'!)6jhą,+-'!ŚygĄ'Ś-z%i)ui' procedure CosTam; var ala: integer; const du = 'dsfds'; begin if ala = 2 then showMessage(du); end; 0y'łjh''iŚ) Q(((()(() Jacys chetni ? Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Grudzień 16, 2007 Zgłoś Share Napisano Grudzień 16, 2007 Ad1 Nie można użyć Trim? Bo czemu z prawej strony ma nie kasować spacji? "bardziej wymagajacego" ? A jaki jest przypadek gdy procedura jest zagnieżdżona w innej? Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 16, 2007 Autor Zgłoś Share Napisano Grudzień 16, 2007 analogiczna czyscimy cialo zostawiamy zagniezdzone procki spacje z prawej nie maja znaczenia Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Grudzień 16, 2007 Zgłoś Share Napisano Grudzień 16, 2007 A można użyć RegEx-ów (PerlRegEx -- http://www.regular-expressions.info/delphi.html / http://www.regular-expressions.info/download/TPerlRegEx.zip) ? ;-) Bez nich się nie opłaca. ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 16, 2007 Autor Zgłoś Share Napisano Grudzień 16, 2007 nie uzywalem nigdy reg'ow na powaznie wiec ja sie takiej rzeczy nie podejme kwestja jeszcze jak to sobie poradzi (w sensie predkosci) z plikami rzedu 200kb ? Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Grudzień 16, 2007 Zgłoś Share Napisano Grudzień 16, 2007 Wydaje mi się że wszelakie unity z regami polegną na większych plikach. Nie prościej i zgrabniej wyjdzie napisanie analizatora składniowego? Może zamiast dłubać w pascalu, analizator pascala lepiej wygenerować taki program w YACC + LEX (z regami) w wersji code dla Delphi (link)? Moim zdaniem "zwykłe" języki nie bardzo się nadają do pisania sporych analizatorów i interpreterów, kompilatorów. Kod jest taki trochę masochistyczny... soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Grudzień 16, 2007 Zgłoś Share Napisano Grudzień 16, 2007 Ale nie pisz tylko, że używacie PosEx/Copy/Insert/... zamiast RegEx-ów? ;-) 200kb nie jest żadnym problemem, parsuję n-megowe pliki RegEx-ami i nie ma problemów. Machnę może wieczorem (tym późniejszym ;-) tę prockę dla Was. ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 17, 2007 Autor Zgłoś Share Napisano Grudzień 17, 2007 Ogolnie uzywam wlasnie copy (glownie) ale calosc bazuje na kilku podstawowych procka ktore w zaleznosci od tego jakie slowa kluczowe podam parsuja odpowiednie bloki. Co do parserow skladni itd brzmi ciekawie force tez cos takiego proponowal ale czas jaki mi bylby potrzebny na zrozumienie tego i wykorzystanie bylby chyba dluzszy niz napisanie tego od zera. No nic moze w przyszlosci sie za to wezme, narazie robie lopatologicznie. Tak czy siak dla zainteresowanych kod chyba powinien byc dostepny na assembli. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Grudzień 30, 2007 Zgłoś Share Napisano Grudzień 30, 2007 No więc, prace postępują i powstał parser co ma rozumieć definiowanie klas, metod, stałych itp. I chciałbym poprosić o testowanie go poprzez wrzucanie rożnych plików pas, które kiedyś tam napisaliście, muszą to być pliki unit, a nie library, program, package itp. W załączniku jest plik exe do testowania parsera. na początku otwieramy plik pas, potem naciskamy guzik ?Parsuj, parsuj? I jeśli dostaniemy OK to fajnie, jeśli co innego to mniej fajnie. Wtedy będzie plik ?error.txt?, który ma listę błędów. Powstaje też zazwyczaj plik ?tempik.txt? który jest tym samym plikiem pas, ale bez komentarzy ciał funkcji itp. Strukturę jaka się stworzy można zapisać jako plik txt. Warunkiem jest oczywiście to, że plik pas da się skompilować. Jeśli parser się wykrzaczy na czymś co nie powinien to proszę pisać na czym,zawartość pliku error itp. Zachęcam to twórczego myślenia i testowania. Na czym się na pewno wykrzaczy: Robienie linijek w stylu nazwa = class; w sekcji type będącej w ciele metody Sekcje threadvar i resourcestring Gdy mamy metodę i jej parametry to parametr nie może być taki: nazwa : set of(dwa,trzy); chodzi dokładnie o nawiasy okrągłe Można robić sekcje type w ciele klas, czyli zagnieżdżać klasy w klasach i tak kilka razy, robić GUID-y interfejsom, bogate dziedziczenia, bawcie się modyfikatorami inline, override, overload i innymi aby znaleźć które nie działają, a powinny, różne wielkości znaków w celu sprawdzanie czy parser patrzy na wielkość znaków (a nie powinien). I powtarzam: pliki musi dać się kompilować w Turbo Delphi, wynika to stąd, że składnia jaką parser rozumie można powiedzieć, że jest bardziej bogata niż składnia Delphi (choć są wyjątki jak te nawiasy) i można tworzyć zmienne o nazwie co jest słowem kluczowym, takie co nazwy się powtarzają, nie patrzy czy metoda klasowa jest static, a jeśli maja takie same nazwy to czy się overload i masę innych rzeczy nie testuje, bo to nie jest kompilator. Edit: I mam tyle postów co numer użytkownika Edit2: jest nowsza wersja, nie wykrzacza się na bloku try Project1.zip Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 20, 2008 Autor Zgłoś Share Napisano Styczeń 20, 2008 Czas leci i juz niedlugo wypuscimy DeDo V.1.0 Alpha RC1. W chwili obecnej tworzymy ostatnie poprawki.... Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Luty 6, 2008 Autor Zgłoś Share Napisano Luty 6, 2008 Ponizej link do DeDo v.0.0.1.140 Beta RC2. http://www.assembla.com/spaces[...]G/download?filename=1_DeDo.rar i tutaj http://thetosters.pl/DeDo/DeDo.rar Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Brainer Napisano Luty 7, 2008 Zgłoś Share Napisano Luty 7, 2008 Naprawdę niezła robota! Tylko wywala mi AV po wygenerowaniu raportu. .: Brainer :. patrick.nusbaum@gmail.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Luty 7, 2008 Autor Zgłoś Share Napisano Luty 7, 2008 Force w miare szybko wprowadza poprawki, na assembli w space: DeDo dzial files znajduja sie nowsze buildy. Zachecam do testow. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Luty 8, 2008 Zgłoś Share Napisano Luty 8, 2008 Masz to jest bardziej stabilne: link I od razu lista czego nie skuma, to abyście narzekali gdy nie skuma czegoś nie z tej listy: - w implementation są linijki w stylu coś = class(coś); - threadvarów - pliki pas nie mogę być programami (da się tak dla kontrolek ocx) - gdy zmienne są jakiegoś typu funkcyjnego to nie mogą mieć za sobą słowa kluczowego oznaczającego jak ta metoda ma być wywoływana - metody z implementation muszą mieć listę parametrów tak jak w interface. Ponieważ w Delphi nie jest konieczne aby metoda z implementation miała listę parametrów (chyba że przeładowane są), jeśli ma je w interface - u nas jest konieczne. Mam nadzieje, że mocno nie bolą te ograniczenia Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Luty 8, 2008 Autor Zgłoś Share Napisano Luty 8, 2008 O ile lyka KN to jego glowna przyczyna egzystencji jest spelniona ;D Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Luty 8, 2008 Zgłoś Share Napisano Luty 8, 2008 No tak, ale jednak milej gdy użyje się nasze ponad miesięczne wypociny więcej razy Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.