在 `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