diff --git a/README.md b/README.md index 23a577a3..f6a79634 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@

- ⚠️ EARLY STAGE: THERE IS NOTHING TO INSTALL OR RUN YET ⚠️
+ ⚠️ ALPHA STAGE: not for production use ⚠️


@@ -206,28 +206,26 @@ Additional languages and dynamic loading are planned. The foundation is complete: a resilient parser that recovers from errors and keeps going. -- [x] Resilient lexer ([`logos`](https://github.com/maciejhirsz/logos)) and parser ([`rowan`](https://github.com/rust-analyzer/rowan)) with error recovery -- [x] Typed AST layer over concrete syntax tree -- [x] Rich diagnostics with spans, colored output, related locations, and suggested fixes -- [x] Name resolution with two-pass symbol table construction -- [x] Recursion validation via Tarjan SCC analysis (escape path detection) -- [x] Shape cardinality inference (One vs Many) for field constraint validation -- [x] Alternation validation (mixed tagged/untagged detection) +- [x] Resilient parser +- [x] Rich diagnostics +- [x] Name resolution +- [x] Recursion validation +- [x] Structural validation ### Liftoff: type inference The schema infrastructure is built. Type inference is next. -- [x] `node-types.json` parsing and schema representation (`plotnik-core`) -- [x] Proc macro for compile-time schema embedding (`plotnik-macros`) -- [x] 26 languages bundled with static node type tables (`plotnik-langs`) -- [x] Query validation against language schemas (node types, fields, children) -- [ ] Full type inference: query → output shape → generated structs +- [x] `node-types.json` parsing and schema representation +- [x] Proc macro for compile-time schema embedding +- [x] Statically bundled languages with node type info +- [x] Query validation against language schemas (unstable) +- [x] Type inference ### Acceleration: query engine -- [ ] Thompson NFA construction for query IR -- [ ] Runtime execution with backtracking cursor walker +- [x] Runtime execution with backtracking cursor walker +- [x] Query IR - [ ] Advanced validation powered by `grammar.json` (production rules, precedence) - [ ] Match result API with typed accessors @@ -235,9 +233,11 @@ The schema infrastructure is built. Type inference is next. The CLI foundation exists. The full developer experience is ahead. -- [x] CLI framework with `debug`, `docs`, `langs` commands -- [x] Query inspection: AST dump, symbol table, cardinalities, spans +- [x] CLI framework with `debug`, `docs`, `langs`, `exec`, `types` commands +- [x] Query inspection: AST dump, symbol table, cardinalities, spans, transition graph, inferred types - [x] Source inspection: Tree-sitter parse tree visualization +- [x] Execute queries against source code and output JSON (`exec`) +- [x] Generate TypeScript types from queries (`types`) - [ ] CLI distribution: Homebrew, cargo-binstall, npm wrapper - [ ] Compiled queries via Rust proc macros (zero-cost: query → native code) - [ ] Language bindings: TypeScript (WASM), Python, Ruby