我试图使用re2c与使用迭代器对定义的输入而不是空终止字符串.
来自手册:
YYCURSOR
[...]
On entry, YYCURSOR is assumed to point to the first character of the current token.
On exit, YYCURSOR will point to the first character of the following token.
最后一点意味着它正在尝试迭代结束.
是否有一个让re2c与迭代器一起工作的技巧? (除了不使用已检查的迭代器.)
解决方法:
您是否在拉模型中使用re2c,它调用YYFILL(n)或通过传递-f推送模型?
在pull模型中,声明YYFILL(n)在迭代器耗尽时调用return.
在push模型中,你的迭代器循环将决定输入何时完成,你不会再次调用解析器.