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
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.
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ą
@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.