tbsp - 基于树的源处理语言

主要观点:tbsp 是类似 awk 的基于 tree-sitter 语法树的语言,可用于编写 markdown-to-html 转换器等。
关键信息

  • tbsp 程序以 stanza 形式编写,有“BEGIN”“END”等 stanza 用于开始和结束处理,还有“enter”“leave”条款用于节点进入和离开时的操作。
  • 通过 tree-sitter-md 解析 markdown 并可视化,如示例中的 markdown 结构。
  • tbsp 评估器用 rust 编写,可通过 cargo 构建和运行,需三个输入:tbsp 程序、语言、输入文件或 stdin 文本。
    重要细节
  • “BEGIN”stanza 中设置深度变量用于跟踪 markdown 标题嵌套,开始打印 html 标签。
  • “enter atx_heading”stanza 打印 h1 等标签,“leave atx_heading”打印结束标签。
  • “enter inline”stanza 打印节点文本。
  • 示例目录有完整 markdown-to-html 转换器及其他示例。
  • roadmap 包括提升 interpreter 性能(如引入 hir、字节码 VM 等)、模式匹配(支持树-sitter 查询和捕获等)、添加语言特征(数组、循环、访问节点子节点等)。
阅读 11
0 条评论