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?

questionAnswers(1)

yourAnswerToTheQuestion