Как получить комментарии с помощью Megaparsec?

Я печатаю AST, чтобы отформатировать исходный файл, из которого AST создается с использованием Megaparsec. Комментарии отсутствуют в AST, но я намерен сохранить их после переформатирования. Есть ли способ в Megaparsec получить все комментарии (как для строковых, так и для блочных комментариев), аннотированные с информацией об источнике, либо внутри AST как узел или снаружи отдельно, как это сделано в Language.Haskell.Exts.Annotated?


person sinoTrinity    schedule 21.05.2021    source источник
comment
Что не так с первым подходом? Не глядя на исходный код, я не уверен, как Megaparsec обрабатывает комментарии, если вы предоставите ему синтаксический анализатор комментариев, но я подозреваю, что он просто удаляет их. Таким образом, правильным решением было бы изменить свой AST, чтобы включить комментарии и предоставить синтаксический анализатор, который никогда не преуспеет в Megaparsec для синтаксического анализатора комментариев (или Nothing, если для этого требуется Может быть). Это оставлено как комментарий, поскольку я не исследовал, что делает Megaparsec.   -  person cole    schedule 22.05.2021