Convert a Pest or PEG grammar into a ready-to-run Rust parser in your browser using Marser.
The downloaded project includes a README with next steps like AST shaping, error recovery, diagnostics, and tracing.
Creates a .zip with a complete, ready-to-build Rust project — your grammar file, the generated parser in src/grammar.rs, a Cargo.toml, and a README with next steps.
(...), ~, |&, !, ?, *, +, {n}, {n,}, {,n}, {n,m}_, atomic @, compound atomic $, non-atomic !"...", ^"...", 'a'..'z', #name = exprWHITESPACE and COMMENT rulesSOI, EOI, ANY, NEWLINE, ASCII_DIGIT, ASCII_NONZERO_DIGIT, ASCII_BIN_DIGIT, ASCII_OCT_DIGIT, ASCII_HEX_DIGIT, ASCII_ALPHA_LOWER, ASCII_ALPHA_UPPER, ASCII_ALPHA, ASCII_ALPHANUMERICPUSH, PUSH_LITERAL, POP, POP_ALL, DROP, PEEK, PEEK_ALLPair trees, spans, or .memoized()Some unsupported constructs are still parsed so the editor can point at them precisely, but conversion fails with an explicit error. Generated output returns a typed Parsed<'src> enum with one variant per rule; tagged binds become named fields and leaf rules store their matched slice as value.
/), repetition (* + ?)(), &, !"...", 'x', [a-z], .name, name=term, #name=term// line commentsGenerated output returns a typed Parsed<'src> enum with one variant per rule; tagged binds become named fields and leaf rules store their matched slice as value.
Adds .trace() calls to every rule in the generated parser. When you build and run with the parser-trace feature, each rule attempt and match result is recorded to a JSON file.
Open that file in marser-trace-viewer — a terminal UI where you can step through every parsing decision and see exactly where your grammar matches, backtracks, or fails on a given input.