• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MDeiml/tree-sitter-markdown: A markdown grammar for tree-sitter

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

MDeiml/tree-sitter-markdown

开源软件地址(OpenSource Url):

https://github.com/MDeiml/tree-sitter-markdown

开源编程语言(OpenSource Language):

C 96.8%

开源软件介绍(OpenSource Introduction):

tree-sitter-markdown

A markdown parser for tree-sitter

For now this implements the CommonMark Spec. Maybe it will be extended to support Github flavored markdown

Structure

The parser is spit into two grammars. One for the block structure which can be found in /tree-sitter-markdown and one for the inline structure which is in /tree-sitter-markdown-inline. Because of this the entire document has to be scanned twice in order to be fully parsed. This is motivated by the parsing strategy section of the CommonMark Spec which suggests doing exactly this: Parsing the document twice, first determining the block structure and then parsing any inline content.

It also helps managing complexity, which was a problem with earlier versions of this parser, by allowing block and inline structure to be considered seperately. This was not the case as tree-sitters dynamic precedence can create hard to predict effects.

Usage

To use the two grammars, first parse the document with the block grammar. Then perform a second parse with the inline grammar using ts_parser_set_included_ranges to specify which parts are inline content. These parts are marked as inline nodes. Children of those inline nodes should be excluded from these ranges. For an example implementation see lib.rs in the bindings folder.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap