sylwke3100 2013-07-26 19:07:01 +10
Witajcie



Chciałbym szerszej publiczności zaprezentować mój parserek w formie biblioteczki(w którym trochę mi pomagał @KrzaQ2). Obecnie jego możliwości są skromne. Potrafi:



- Rozpoznawać tekst, liczby całkowite, liczby zmiennoprzecinkowe (do wyboru przecinek bądź kropka jako serparator), znaki alfanumeryczne oraz inne które sobie ustalimy

- Szukać w znalezionych danych konkretnych ciągów znaków

- Wykonywać zapytanie w zapytaniu



Parserek jest napisany w C++. Kod staram się by był w miarę przejrzysty (ale wiadomo jak to wygląda). Kod można znaleść tu :



https://github.com/sylwke3100/cristallparser

http://code.google.com/p/cristallparser/



Prosty przykład użycia :

http://pastebin.com/5EwqtMg1



Dokumentacji jeszcze nie zrobiłem tak swoją drogą

Jeśli ktoś by był zainteresowany nim oraz tworzeniem go to dawać znać



#cpp #programowanie #parser
zakowskijan72 2013-07-26 19:09:49 +4
Dokumentacji jeszcze nie zrobiłem tak swoją drogą

@sylwke3100: Widać, żeś młodym programistą jest. Bo nadzieję masz, że kiedyś zrobisz ją. Z wiekiem coraz trudniej będzie Ci uwierzyć w to...
zakowskijan72 2013-07-26 19:12:53 +3
@sylwke3100: Wyobraź sobie, że zatrudniasz programistę-testera, by z pomocą tej dokumentacji mógł napisać testy jednostkowe i funkcjonalne. I napisz ją w ten sposób...



sylwke3100 [OP] 2013-07-26 20:40:56 +3
@zakowskijan72: Sęk w tym że ja nie wiem jak się pisze testy z prawdziwego zdarzenia
zakowskijan72 2013-07-26 20:45:20 +3
@sylwke3100: Jak nie zaczniesz pisać, to się nie nauczysz. To jest naprawdę proste:

1. Napisz kod, który wywołuje jakąś funkcjonalność

2. Efektem tego jest powstanie pewnych struktur danych

3. Sprawdź, czy struktury są zgodne z oczekiwaniami

Skoro masz problem z "wykrywaniem" kropki skonstruuj test tak, by program wprowadzał tę kropkę i sprawdzał, czy jest wykrywana. Proste.
MacDada 2013-07-26 20:22:58 +2
sylwke3100 [OP] 2013-07-26 19:11:22 +0
@zakowskijan72: Raczej nie mam pomysłu jak ją zrobić żeby każdy mógł ją prosto ogarnąć
n.....l 2013-07-26 19:11:32 +0
@sylwke3100: Nie lepiej użyć po prostu regexów?
sylwke3100 [OP] 2013-07-26 19:12:34 +0
@nvll: Nie każdy zna, nie każdy umie się nimi posługiwać dobrze więc.
n.....l 2013-07-26 19:14:08 +0
@zakowskijan72: @sylwke3100: Co do dokumentacji, to najlepiej pisać w komentarzu nad każdą funkcją i potem sobie ją automatycznie wygenerować za pomocą np. javadoc, phpdocumentator
sylwke3100 [OP] 2013-07-26 19:15:52 +0
@zakowskijan72: Toś mnie na tym polu zgasił:(

@nvll: Ja mam wtyczkę do Code::Blocka która pozwala mi tworzyć komentarze dokumentacyje do Doxygena tak swoją drogą
Aberworthy 2013-07-26 20:23:34 +0
@sylwke3100: taki zdolny
sylwke3100 [OP] 2013-07-26 20:29:12 +0
@MacDada: @zakowskijan72 Jakby nie patrzeć to kod zanim do gita wpadnie na lokalu to jest testowany jakimś tam uniwersalnym testem w stylu tego przykładu. To się liczy ? :D
zakowskijan72 2013-07-26 20:31:22 +0
@sylwke3100: Jak porównujesz z czymś wyniki działania to lepsze to niż nic.
sylwke3100 [OP] 2013-07-26 20:33:51 +0
@zakowskijan72: No porównuje z działającymi wynikami. Inaczej połowa kodu by w gitcie nie działała. Problem jest z dokumentacją jednak dalej nie wiem jak się za nią zabrać
zakowskijan72 2013-07-26 20:36:10 +0
@sylwke3100: Więc idziesz w dobrym kierunku. Teraz tylko napisać dodatkowe testy na wszystkie możliwe przypadki, oraz po jednym na regresję każdego znalezionego błędu i będziesz miał kod prawie-że-doskonały :)
sylwke3100 [OP] 2013-07-26 20:38:11 +0
@zakowskijan72: Wiesz pozostaje mi jeszcze bug z kropką bo niewiedzieć czemu nie reaguje mi na dodanie zasady z kropką przez co nie wykrywa jej samej (problem jest na koncowym etapie
zakowskijan72 2013-07-26 20:39:13 +0
@sylwke3100: Więc najpierw napisz test. Jak go przejdzie - to znaczy, że bug już został rozwiązany.