Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion hugo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ disableKinds = ["taxonomy", "term", "RSS", "sitemap", "404"]
name = "parser"
url = "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/go-ruby-parser/parser"
status = "ready"
blurb = "The front-end: `parser.Parse(src) (*ast.Program, error)`, with sub-packages `token`, `ast` and `lexer`. A stateful lexer (MRI `spaceSeen` semantics), a recursive-descent + Pratt expression parser with a scope stack, and a typed AST for a broad, practical subset of **Ruby 4.0** — literals, operators, control flow, `case`/`in` **pattern matching**, methods/blocks, classes/modules/metaprogramming. 100% covered (the gate runs on all three OS lanes; the suite also runs on all six 64-bit targets and on js/wasm and wasip1/wasm), differential-tested against MRI Ruby 4.0.5. Current release **v0.2.0** (2026-09-21): fourteen grammar gaps closed, and every one of the 68 files in the pinned ruby/spec `language/` corpus now parses."
blurb = "The front-end: `parser.Parse(src) (*ast.Program, error)`, with sub-packages `token`, `ast` and `lexer`. A stateful lexer (MRI `spaceSeen` semantics), a recursive-descent + Pratt expression parser with a scope stack, and a typed AST for a broad, practical subset of **Ruby 4.0** — literals, operators, control flow, `case`/`in` **pattern matching**, methods/blocks, classes/modules/metaprogramming. 100% covered (the gate runs on all three OS lanes; the suite also runs on all six 64-bit targets and on js/wasm and wasip1/wasm), differential-tested against MRI Ruby 4.0.5. Current release **v0.4.0** (2026-09-26): all 80 `_spec.rb` files in the pinned ruby/spec `language/` corpus parse, and the three limitations the docs used to list — paren-less command calls with keyword/splat/block args, default block parameters, and the positional `Class(a)` find-pattern — all parse now. `BEGIN { }` / `END { }` remain the one refusal."
13 changes: 8 additions & 5 deletions layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ <h1>go-ruby-parser</h1>
<span class="pill">stateful lexer</span>
<span class="pill">recursive-descent + Pratt</span>
<span class="pill">typed AST</span>
<span class="pill">v0.2.0 · 2026-09-21</span>
<span class="pill">v0.4.0 · 2026-09-26</span>
<span class="pill">Ruby 4.0 subset</span>
<span class="pill">pattern matching</span>
<span class="pill">heredocs</span>
Expand Down Expand Up @@ -119,10 +119,13 @@ <h1>go-ruby-parser</h1>
<strong>100% coverage</strong> is enforced in CI on all three OS lanes, and the suite also runs
on all <strong>six 64-bit targets</strong> — amd64 and arm64 natively, riscv64 / loong64 /
ppc64le / s390x under QEMU — plus <code>js/wasm</code> and <code>wasip1/wasm</code>.
The current release is <a href="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/go-ruby-parser/parser/tree/v0.2.0"><strong>v0.2.0</strong></a>
(2026-09-21), which closed fourteen grammar gaps: every one of the 68 files in the pinned
ruby/spec <code>language/</code> corpus now parses, thirteen of which had not parsed at all
before.</p>
The current release is <a href="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/go-ruby-parser/parser/tree/v0.4.0"><strong>v0.4.0</strong></a>
(2026-09-26). Measured on 2026-09-26: <strong>all 80</strong> <code>_spec.rb</code> files in the
pinned ruby/spec <code>language/</code> corpus parse, and of 47 top-level CRuby 4.0.5 stdlib
files MRI accepts, this parser accepts 46. On parse speed it is roughly
<strong>1.9× quicker than <code>Ripper.sexp</code></strong> and about
<strong>1.6× slower than the C parser built into CRuby</strong>
(<code>RubyVM::AbstractSyntaxTree.parse</code>).</p>

<section class="grid">
{{ range .Site.Params.repos }}
Expand Down
Loading