rustledger-parser
Fast Beancount parser using Logos lexer and Chumsky parser combinators.
Features
- Full Beancount syntax support (all 12 directive types)
- Error recovery (continues parsing after errors)
- Precise source locations for error reporting
- SIMD-accelerated lexing via Logos
Architecture
Source (&str) → Logos tokenize() → Vec<SpannedToken> → Chumsky parser → Directives
Example
use parse;
let source = r#"
2024-01-15 * "Coffee Shop" "Morning coffee"
Expenses:Food:Coffee 5.00 USD
Assets:Cash
"#;
let result = parse;
assert!;
assert_eq!;
Cargo Features
rkyv(default) - Enable rkyv serialization for binary caching
License
GPL-3.0