我正在编写一个程序来解析 HTML 以使用 Ragel 从那里提取 URL。
找到 URL 后,我需要对其执行一些操作,然后准备处理下一个 URL。
所以我需要在 URL 端停止执行主循环,在解析器之外执行一些操作,然后从我中断的地方开始。
fbreak
似乎是一个很好的变体,但不幸的是它吃了缓冲区中的下一个符号。除了可能已经存在缓冲区结束之外,这里的问题是我们有效地跳过了输入流中的一个符号。
有没有一种方法可以中断执行而不提前到输入流中的下一个符号,就像fbreak
那样?
到目前为止,我发现只有脏 hack 可以写goto _out;
而不是 fbreak。