https://github.com/swiftcoder/transmogrify
parsing experiments in rust
https://github.com/swiftcoder/transmogrify
parsing rust
Last synced: 8 months ago
JSON representation
parsing experiments in rust
- Host: GitHub
- URL: https://github.com/swiftcoder/transmogrify
- Owner: swiftcoder
- License: mit
- Created: 2025-04-12T09:46:04.000Z (about 1 year ago)
- Default Branch: trunk
- Last Pushed: 2025-04-12T17:08:23.000Z (about 1 year ago)
- Last Synced: 2025-04-15T09:59:40.416Z (about 1 year ago)
- Topics: parsing, rust
- Language: Rust
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Transmogrify
Parsing experiments in rust
*This is not intended for production use*
## What makes a good parser?
- Supports arbitrary (left and right, direct and indirect) recursion
- Error reporting that clearly identifies the specific problem in the input
- Lexer built in - we don't want to maintain a separate grammar for the lexer
- Can attach actions to build an AST, or directly execute the input
## Status
- Arbitrary recursion a la [Left recursion in Parsing Expression Grammars](https://doi.org/10.1016/j.scico.2014.01.013)
- Rich error messages by tracking expected tokens at each failed terminal
- Arbitrary token skipping rules, and a Lexer rule to disable skipping
- Limited action support: actions can transform the input, but with limited output formats and no side-effects
## TODO
- ~~Can we stop doing everything via Boxed dyn Traits?~~
- Can we support actions that build a tree of user-defined types?
- Can we support actions that have side-effects?