在 `TSLexer` 中添加 `rewind` 回调

作者: comments-are-important创建于 2026年9月7日更新于 2026年9月14日
标签c-library

AI政策

  • 我读过AI政策 这个问题符合它。

问题

使用白空间来表示结构的语法往往使用Canonic INDENT/DEDENT符号,但 有时这些还不够。 如果所有的标志都是纯正的零向外偷看,那么作者 可能可以找出密码,确定对每次`前瞻'游行的反应 线性通过输入。 因为一切都是零的 规则变得混乱 消费什么 有人偷看过 返回正width 令牌需要先刻出“ mark begin”( yay # 2985) 和 " 标记 " 输入混淆的代码。 如果你真的不走运(就像我一样) 两道道道具会 想要把标记放在不相容的地方,所以标记是完全不可能的.

预期行为

这些片段是天真的草图, 可能是buggy, 我还没有时间深入挖掘代码...

将字段添加到 : 页:1 构造 TSLexer { 空 (*倒数)(TSlexer *);


" start-position " 仅位于 " ts-parser-lex " 上方。 离开它不会受伤的
似乎可以移动。 添加为
`struct Lexer'并更改`ts parser lex'中的引用,以使用“struct”代替“堆:
页:1
构造 Lexer {
长度开始位置;

添加一个新的函数ts lexer rewind',并将其初始化为.data.rewind'字段: 页:1 静态空虚 ts lexer 倒取( TSLer 自己) { Lexer *self = (Lexer *) self; (英语). ts lexer 重置(自,自 > start 位置); ts lexer start(自定义); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


我认为这就是它所需要的。 我知道,有名的遗言 对不起,我还没有时间
一起做公关,但也许这样最好 如果这个想法不通过集合.

内容来源: tree-sitter/tree-sitter