{"slug": "lemon", "name": "Lemon", "category": "ai", "category_name": "AI models and assistants", "description": "", "recommenders": 3, "commenters": 4, "warners": 0, "score": 2.899, "rising": -0.98, "first": "2026-02-08", "latest": "2026-06-11", "why": "Ragel [2] + Lemon[3] a friendlier if less well-established implementation", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 1, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Ragel [2] + Lemon[3] a friendlier if less well-established implementation", "kind": "", "icon": true, "domain": "sqlite.org", "github_repo": null, "official_url": "https://sqlite.org/src/doc/trunk/doc/lemon.html", "pricing": "", "aliases": ["Lemon", "lemon"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 775823105, "item_id": 48488944, "url": "https://news.ycombinator.com/item?id=48488944", "by": "mananaysiempre", "date": "2026-06-11", "stance": "recommend", "quote": "Ragel [2] + Lemon[3] a friendlier if less well-established implementation", "excerpt": "> Flex is one of the commonly used tools as a lexical analyzer. [...] Bison is a syntax analyzer. A valid choice; one might also find re2c[1] or Ragel [2] + Lemon[3] a friendlier if less well-established implementation of essentially the same theory. Moving further away, there\u2019s also ANTLR[4] or spending a week on a hand-coded lexer and parser. > CPU\u2019s parallelism is not utilized in the same way as GPU since differen", "context": "", "use_case": "", "switched_from": "", "story": "Making a Shading Language for My Offline Renderer"}, {"id": 762459504, "item_id": 47653719, "url": "https://news.ycombinator.com/item?id=47653719", "by": "smartmic", "date": "2026-04-05", "stance": "recommend", "quote": "This was also my first thought after reading", "excerpt": "Correct[0]. This was also my first thought after reading > Unfortunately, unlike many other languages, SQLite has no formal specification describing how it should be parsed. It doesn\u2019t expose a stable API for its parser either. In fact, quite uniquely, in its implementation it doesn\u2019t even build a parse tree at all9! The only reasonable approach left in my opinion is to carefully extract the relevant parts of SQLite\u2019", "context": "", "use_case": "", "switched_from": "", "story": "Eight years of wanting, three months of building with AI"}, {"id": 750933312, "item_id": 46933332, "url": "https://news.ycombinator.com/item?id=46933332", "by": "jbgt", "date": "2026-02-08", "stance": "recommend", "quote": "Sounds like exactly this, hot off the presses", "excerpt": "https://github.com/z80dev/lemon Sounds like exactly this, hot off the presses...", "context": "", "use_case": "agent observability", "switched_from": "", "story": "Show HN: LocalGPT \u2013 A local-first AI assistant in Rust with persistent memory"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["parser generator", "agent observability"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47648828", "title": "Eight years of wanting, three months of building with AI", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48444841", "title": "Making a Shading Language for My Offline Renderer", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46930391", "title": "Show HN: LocalGPT \u2013 A local-first AI assistant in Rust with persistent memory", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {"recommend": 1, "neutral": 1}, "2026-05": {}, "2026-06": {"recommend": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 775823105, "item_id": 48488944, "url": "https://news.ycombinator.com/item?id=48488944", "by": "mananaysiempre", "date": "2026-06-11", "stance": "recommend", "quote": "Ragel [2] + Lemon[3] a friendlier if less well-established implementation", "excerpt": "> Flex is one of the commonly used tools as a lexical analyzer. [...] Bison is a syntax analyzer. A valid choice; one might also find re2c[1] or Ragel [2] + Lemon[3] a friendlier if less well-established implementation of essentially the same theory. Moving further away, there\u2019s also ANTLR[4] or spending a week on a hand-coded lexer and parser. > CPU\u2019s parallelism is not utilized in the same way as GPU since differen", "context": "", "use_case": "", "switched_from": "", "story": "Making a Shading Language for My Offline Renderer"}, {"id": 762492768, "item_id": 47655798, "url": "https://news.ycombinator.com/item?id=47655798", "by": "lalitmaganti", "date": "2026-04-05", "stance": "neutral", "quote": "compiling Lemon and executing it against a custom implementation of parse.y", "excerpt": "When I refer to \"extracting sources from the SQLite codebase\" a big part of that was indeed referring to compiling Lemon and executing it against a custom implementation of parse.y [1]. The problem comes from how SQLite's upstream parse.y works. Becuase it doesn't actually generate the parse tree, instead generating the bytecode directly, the intepretation of any node labelled \"id\" or \"nm\" is buried inside the source", "context": "", "use_case": "Parser generator", "switched_from": "", "story": "Eight years of wanting, three months of building with AI"}, {"id": 762459504, "item_id": 47653719, "url": "https://news.ycombinator.com/item?id=47653719", "by": "smartmic", "date": "2026-04-05", "stance": "recommend", "quote": "This was also my first thought after reading", "excerpt": "Correct[0]. This was also my first thought after reading > Unfortunately, unlike many other languages, SQLite has no formal specification describing how it should be parsed. It doesn\u2019t expose a stable API for its parser either. In fact, quite uniquely, in its implementation it doesn\u2019t even build a parse tree at all9! The only reasonable approach left in my opinion is to carefully extract the relevant parts of SQLite\u2019", "context": "", "use_case": "", "switched_from": "", "story": "Eight years of wanting, three months of building with AI"}, {"id": 750933312, "item_id": 46933332, "url": "https://news.ycombinator.com/item?id=46933332", "by": "jbgt", "date": "2026-02-08", "stance": "recommend", "quote": "Sounds like exactly this, hot off the presses", "excerpt": "https://github.com/z80dev/lemon Sounds like exactly this, hot off the presses...", "context": "", "use_case": "agent observability", "switched_from": "", "story": "Show HN: LocalGPT \u2013 A local-first AI assistant in Rust with persistent memory"}]}