parsing - Haskell - 用另一个解析器散布解析器
问题描述
我有两个解析器parser1 :: Parser a
和parser2 :: Parser a
.
我现在想解析一个a
穿插它们的 s列表parser2
所需的签名类似于
interspersedParser :: Parser b -> Parser a -> Parser [a]
例如,如果Parser a
解析'a'
字符并Parser b
解析'b'
字符,那么interspersedParser
应该解析
""
"a"
"aba"
"ababa"
...
我正在使用megaparsec。是否已经有一些行为像这样的组合器,我目前无法找到?
解决方案
在 parsec 中有一个sepBy
解析器可以做到这一点。相同的解析器似乎也可以在 megaparsec 中使用:https ://hackage.haskell.org/package/megaparsec-4.4.0/docs/Text-Megaparsec-Combinator.html
推荐阅读
- moqui - 有没有推荐的方法来跳过 Moqui 中 CSV 文件的第一行?
- python - Gssapi+Freeipa+Python。找不到客户主体。但它存在。为什么?
- python - Pandas-选择具有特定值的列
- c - C - 如何解决内存泄漏?
- pysimplegui - 使用 PySimpleGUI 和 pysimplegui-exemaker 从 python 制作 exe 文件
- python - “简单”的方式来创建和绘制栅格并在 python 中用滚球动画覆盖它
- python-3.x - 将字符串从 JSON 转换为字典或元组
- java - 如何从 spring boot kafka 项目连接到 aws MSK
- r - 如何在 r 中使用 group_by 通过某些列组合数据帧的行,但同时保留其他列
- c# - 反转时间和日期的位置