Combinando lexer e parser em um combinador de analisador

estou a usaruu-parsinglib, mas acho que a seguinte pergunta é genérica combinador de analisador.

Vamos considerar o seguinte exemplo:

Eu tenho um lexer com um combinadorpLex, que produz uma lista de tokens (do tipoMyToken). Agora eu quero escrever um analisador, que irá consumir os tokens e construir umAST.

Qual é a melhor maneira de conectar o lexer e o analisador? Agora eu tenho umlex função:

lex s = parse ( (,) <
lex s = parse ( (,) <$> pLex <*> pEnd) (createStr (LineColPos 0 0 0) s)
gt; pLex <*> pEnd) (createStr (LineColPos 0 0 0) s)

Devo criar uma funçãoparse p = ...? Se sim, como construí-lo para acompanhar as colunas e linhas do lexer? Ou devo criar umparserCombinator, que usaria opLex combinador de alguma forma?

questionAnswers(2)

yourAnswerToTheQuestion