https://github.com/ckampfe/lalrpop_edn
https://github.com/ckampfe/lalrpop_edn
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/ckampfe/lalrpop_edn
- Owner: ckampfe
- License: bsd-3-clause
- Created: 2022-01-21T03:04:43.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-24T05:33:53.000Z (about 4 years ago)
- Last Synced: 2025-02-01T20:11:21.411Z (over 1 year ago)
- Language: Rust
- Size: 66.4 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lalrpop_edn
A [LALRPOP](https://github.com/lalrpop/lalrpop) parser for [edn](https://github.com/edn-format/edn)
[](https://github.com/ckampfe/lalrpop_edn/actions/workflows/rust.yml)
```rust
let parser = edn::ExprParser::new();
let s = std::fs::read_to_string("deps.edn").unwrap();
assert!(parser.parse(&s).is_ok());
```
## TODO
- [x] Strings
- [x] Symbols
- [x] Keywords
- [x] Characters
- [x] Integers
- [x] Integers (arbitrary precision)
- [x] Floats
- [x] Floats (exact precision)
- [x] Lists
- [x] Vectors
- [x] Maps
- [x] Sets
- [x] Nil
- [x] Comments
- [x] `Display` impl
- [ ] Discard (`#_`)
- [ ] Tagged elements
- [ ] Get rid of all `.unwrap()`/`.expect()`
- [ ] Make `num-bigint` and `rust_decimal` optional