Сочетание лексера и парсера в комбинаторе парсера

я используюuu-parsinglib, но я думаю, что следующий вопрос является универсальным синтаксического анализатора.

Давайте рассмотрим следующий пример:

У меня есть лексер с комбинаторомpLex, который производит список токенов (типаMyToken). Теперь я хочу написать парсер, который будет потреблять токены и создаватьAST.

Как лучше всего соединить лексер и парсер? Прямо сейчас у меня естьlex функция:

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

Должен ли я создать функциюparse p = ...? Если да, как я могу построить его, чтобы отслеживать столбцы и строки от лексера? Или я должен создатьparserCombinator, который бы использовалpLex комбинатор как-то?

Ответы на вопрос(2)

Ваш ответ на вопрос