Czy powinienem używać lexera podczas korzystania z biblioteki kombinatora parsera, takiej jak Parsec?
Podczas pisania parsera w bibliotece kombinatora parsera, np. Parc Haskella, zazwyczaj masz 2 możliwości:
Napisz leksem, aby podzielić swójString
wprowadzać do tokenów, a następnie wykonywać parsowanie[Token]
Bezpośrednio pisz kombinatory parseraString
Pierwsza metoda często wydaje się sensowna, biorąc pod uwagę, że wiele danych wejściowych do analizy można rozumieć jako tokeny oddzielone białymi znakami.
W innych miejscach widziałem, jak ludzie zalecają tokenizowanie (lubłów lubleksykowanie, jak niektórzy to nazywają, przy czym główną przyczyną jest prostota.
Jakie są ogólne kompromisy między leksykowaniem a nie robieniem tego?