Zastanawiam się, czy istnieje standardowy, kanoniczny sposób w Haskell, aby pisać nie tylko parser dla określonego formatu pliku, ale także pisarz.Parsowanie i ładne drukowanie tego samego formatu pliku w Haskell
W moim przypadku należy przeanalizować plik danych do analizy. Jednakże symuluję również dane do analizy i zapisuję je w tym samym formacie pliku. Mógłbym teraz napisać parser używając Parsetu lub czegoś podobnego, a także napisać funkcje, które wykonują tekst w taki sposób, w jaki jest to potrzebne, ale gdy tylko zmienię format pliku, będę musiał zmienić dwie funkcje w moim kodzie. Czy istnieje lepszy sposób osiągnięcia tego celu?
Dziękuję Dominik
Myślę, że najprościej byłoby zdefiniować typ danych reprezentujący składnię pliku, a następnie napisać osobny parser i ładną drukarkę, tak jak myślałeś. Właśnie to robi większość bibliotek językowych. – jozefg
Oto kilka ostatnich istotnych tematów na Reddit: [1] (https://www.reddit.com/r/haskell/comments/6aqvgj/parser_libraries_with_ast_output/), [2] (https://www.reddit.com/ r/haskell/comments/66o3lp/i_think_this_is_a_really_stupid_question_inverse /) IMO ta technologia wciąż wydaje się dość eksperymentalna. –
To, co chcesz zrobić, to zdefiniować gramatykę i użyć pewnej biblioteki do automatycznego wygenerowania analizatora składni i ładnej drukarki. Istnieje wiele bibliotek, które twierdzą, że są w stanie to zrobić, ale zalecając jeden jest prawdopodobnie OT (chciałbym, gdybym miał doświadczenie z którymkolwiek z nich). – jberryman