The T3 blog illustrates how a sequence of tiny parsers builds a structured result from the string "Hello 100".
*Parser combinators offer a middle ground between fragile regex and heavyweight tree‑sitter. The T3 blog post of Oct 17 2026 shows how tiny functions can turn "Hello, world!" into a structured object in seconds. The technique promises faster, cleaner data extraction for developers.*
The T3 blog post dated Oct 17 2026 lifts the veil on parser combinators, a technique that turns raw strings into structured data with surgical precision. It walks through a concrete example: the phrase "Hello, world!" becomes an object { greeting: "Hello", who: "world" } through a chain of tiny parsers. The same logic parses a ping dump from 1.1.1.1, extracting packet counts, loss rates, and round‑trip times without a full‑blown parser generator. In an era where developers juggle regex, tree‑sitter, and ad‑hoc string hacks, the post argues that combinators offer a clean, reusable alternative.
A parser combinator is a function that receives a string and returns a tuple: the parsed value and the remaining string. The blog defines type Parser
The post warns that regex becomes tangled on complex tasks, while tree‑sitter is overkill for simple extraction. Combinators sit in the middle: they can embed regex inside a partial parser, yet remain lightweight and composable. Developers get the precision of a hand‑crafted parser without the boilerplate of a full grammar. The example shows a clear, readable pipeline that would be unreadable with a single massive regex. This suggests a shift toward modular parsing in everyday codebases.
The code builds pHello100 by feeding pHello, pIgnoreWhitespace, and pInteger into pSeq. The result of pHello100("Hello 100") is a tuple ["Hello", null, 100] and an empty remainder. Folding that tuple with list.reduce produces the string "Hello 100"; unfolding runs the reverse transformation. The pattern demonstrates that any parser can be swapped, reordered, or extended without touching the others. The blog also shows pSeq(pNumber, pSemicolon) parsing "10;20;30;" into three separate number‑semicolon pairs, proving the approach scales to repeated structures.
The article includes a raw ping dump to 1.1.1.1: eight packets sent, seven received, 12.5% loss, RTT min 47.129 ms, avg 115.880 ms, max 388.750 ms, mdev 112.515 ms. Each line follows the same tuple pattern—byte count, source IP, sequence, TTL, time. A parser combinator could extract the sequence numbers and timings into a structured array, enabling instant statistical analysis. The example shows that even network diagnostics benefit from the same composable parsing technique.
A parser combinator returns a tuple consisting of the parsed value and the remaining string.
pInteger matches the leading digits, returns the number 10, and leaves the rest of the string as " 20 30".
The ping to 1.1.1.1 reported 12.5% packet loss after transmitting 8 packets and receiving 7.
If the community adopts combinators as the default parsing tool, codebases will shed brittle regex and heavyweight parsers alike. The T3 demonstration proves the approach works on both simple greetings and raw network logs. Expect a wave of modular parsers to appear in open‑source libraries, reshaping how developers extract meaning from text.
Sources: [Hacker News – Parser Combinators]