<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tagged Deterministic Finite Automata with Lookahead · HackerPapers discussions</title><link>https://hackerpaper.kaipfister.de/p/1907.08837/</link><description>Collected HN comments and submissions linking this paper.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 11:16:22 GMT</lastBuildDate><atom:link href="https://hackerpaper.kaipfister.de/p/1907.08837/feed.xml" rel="self" type="application/rss+xml" /><item><title>Tagged Deterministic Finite Automata with Lookahead — mentioned by chubot</title><link>https://news.ycombinator.com/item?id=39469359</link><guid isPermaLink="false">urn:hackerpapers:mention:1907.08837:39469359</guid><pubDate>Thu, 22 Feb 2024 16:22:52 GMT</pubDate><description>&lt;p&gt;Hm as an re2c user, I always thought that Ragel vs. re2c was a push/pull issue (though re2c flag has a --storable-state flag to generate the push style -- I haven&amp;#x27;t used it) But now that I look at the example on the front page: http://www.colm.net/open-source/ragel/ action dgt { printf(&amp;quot;DGT: %c\n&amp;quot;, fc); } action dec { printf(&amp;quot;DEC: .\n&amp;quot;); } number = ( [0-9]+ $dgt ( &amp;#x27;.&amp;#x27; @dec [0-9]+ $dgt )? I don&amp;#x27;t like how the dgt and dec actions are &amp;quot;inline&amp;quot; in the regex. This seems to be breaking the key abstraction of regexes, which in my mind is &amp;quot;NON-DETERMINISM for free&amp;quot;. The better mechanism is submatch…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1907.08837/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.FL</category></item><item><title>Tagged Deterministic Finite Automata with Lookahead — mentioned by chubot</title><link>https://news.ycombinator.com/item?id=23694103</link><guid isPermaLink="false">urn:hackerpapers:mention:1907.08837:23694103</guid><pubDate>Tue, 30 Jun 2020 19:54:30 GMT</pubDate><description>&lt;p&gt;Hm I don&amp;#x27;t really think RE2 is even that influential (unfortunately IMO). Rust is the only new language whose engine borrows its design AFAIK. For example, I was disappointed to learn that Julia uses PCRE. ---- I think backtracking is firmly in the past because it causes too many problems in practice [1], but I think there&amp;#x27;s scope for a text matching engine that&amp;#x27;s built on top of regular languages, but more expressive. As mentioned here and on lobste.rs recently, regular languages aren&amp;#x27;t expressive enough for syntax highlighting (or lexing most programming languages in their entirety). But it…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1907.08837/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.FL</category></item><item><title>Tagged Deterministic Finite Automata with Lookahead — mentioned by chubot</title><link>https://news.ycombinator.com/item?id=23665506</link><guid isPermaLink="false">urn:hackerpapers:mention:1907.08837:23665506</guid><pubDate>Sat, 27 Jun 2020 23:22:13 GMT</pubDate><description>&lt;p&gt;OK thanks for the clarifications. I responded to BurntSushi and others here: https://lobste.rs/s/fq8uil/aho_corasick https://news.ycombinator.com/item?id=23665341 I don&amp;#x27;t have experience with captures in re2c, but it&amp;#x27;s entirely automata-based, and they apparently implement something &amp;quot;fast&amp;quot; for captures and published it in this 2017 paper, so it&amp;#x27;s pretty new: https://arxiv.org/abs/1907.08837 I&amp;#x27;m sort of interested in benchmarking some Sublime-ish workloads with it, but I&amp;#x27;m not sure I&amp;#x27;ll have time. ---- And the other claim from that comment is that while regular languages aren&amp;#x27;t powerful enough…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1907.08837/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.FL</category></item></channel></rss>
