← All questions

Hand-written vs. written by hand

The README calls the front end "a hand-written lexer, parser, and tree-walking evaluator." This is also a project built with an AI coding assistant. A reader put the two together and asked whether "hand-written" is honest.

Fair question. The answer is that the phrase makes a narrower claim than it seems to — a claim about tools, not about authorship — and the narrower claim is checkable against the tree. This page states that claim precisely, and then answers the question the reader actually cared about.

The claim the phrase makes

In compiler engineering, "hand-written" is a term of art. Its opposite is not "written by a machine"; it is "emitted by a parser generator" — a tool like yacc, bison, or ANTLR that compiles a grammar file into parser code. The term predates AI code generation by decades, and it is how production compilers describe themselves:

On this axis the README's claim is verifiable. There is no grammar file in the repository — no .y, no .l, no ANTLR grammar — and no generator step in the build: src/Lexer.cpp is the lexer and src/Parser.cpp is the parser, ordinary C++ compiled like every other file. The one body of generated code in the tree is the Unicode tables, produced from the Unicode character database into checked-in C++ sources — generated data, not a generated parser; UNICODE.md has the pipeline. Why a generator was never an option here — Raku's grammar changes while it is being parsed — is the subject of PARSING.md and CLASSIFICATION.md.

So who wrote the code?

Raku++ is developed by its author working with an AI coding assistant (Claude Code). The author sets direction, makes the design calls, reviews what lands, and decides what ships; the assistant writes much of the C++ — and much of the documentation, this page included.

Nor is this page the disclosure. GitHub's contributor panel for the repository has counted Claude from the start, and the launch announcement says it in prose: "we have great friends and helpers, AI."

In short: the parser is hand-written in exactly the sense GCC's and Go's are. The hands were not always human.