Parser
其实和本章的主题关系微乎其微,只是正好放在这里了。
GitHub - tree-sitter/tree-sitter: An incremental parsing system for programming tools 这个库集成了很多编程语言的 parser。包括但不限于以下语言,具体可以参考 官网给出的列表:
- C
- JSON
- HTML
- Go
- Python
- Markdown
- Makefile
- gitignore
- SQL
C, Go, Rust, Java, Python 都可以使用它对这些语言的 parser。你也可以根据这个库自定义语法规则,为自己的语言实现 Parser。它有规定自己的 DSL,使用类似 EBNF 的文法。