#parser-combinator #parser #combinator #functional #message-parser #error-message

lip

Lip提供强大的解析器组合器,用于创建可重用和灵活的解析器。

24个稳定版本 (8个主要版本)

8.1.2 2023年6月25日
7.0.2 2023年6月24日
7.0.0 2022年1月1日
6.0.0 2021年12月31日
0.1.2 2020年3月24日

60解析器工具

每月30次 下载
用于 wordshk_tools

MIT 许可证

1MB
3.5K SLoC

lip logo

Lip

Lip提供强大的解析器组合器,用于创建可重用和灵活的解析器。

为什么选择Lip?

  • 易于理解 - 使用直观的组合器如keep和skip
  • 紧凑 - 学习这个库不到一小时
  • 灵活且可组合的解析器组合器
  • 高效 - 最小回溯
  • 内置精确、定位的错误消息支持
  • 跟踪额外的状态,如行号和指令索引
  • 可扩展 - 如果需要,创建自己的组合器
// Parse an (x, y) position pair
use lip::*;
let position = succeed!(|x, y| (x, y))
  .keep(int())
  .skip(token(","))
  .keep(int())
  .run("2,3", ()); // run this parser on string "2,3" without extra states
// when parsing finished, position == (2, 3)

教程

阅读Bodil的 解析器组合器 是了解解析器组合器工作原理的绝佳方式。

许可证

MIT

致谢

基于Bodil的 解析器组合器教程 和Evan的 elm/paser

依赖项

~1.5MB
~20K SLoC