Rust library for parsing Ledger-cli input files.
Only a subset of the ledger-cli's file format is implemented.
Supported elements:
Line comments (starting with: ; # % | *
)
Inline comments (starting with ;
)
Transaction headers with format (minimum two spaces or one tab between DESC
and NOTE
):
ledger-cli
DATE[=EDATE] [*|!] [(CODE)] DESC [; NOTE]
Transaction postings with format (minimum two spaces or one tab between ACCOUNT
and AMOUNT
):
ledger-cli
ACCOUNT [AMOUNT] [= BALANCE] [; NOTE]
AMOUNT
can be combined with lot and commodity prices ({}, {{}}, @, @@)
Commodity prices with format:
ledger-cli
P DATE SYMBOL PRICE
Command directives: include
Parsing:
rust
let ledger = ledger_parser::parse(r#"; Example 1
2018-10-01=2018-10-14 ! (123) Description
; Transaction comment
TEST:Account 123 $1.20
; Posting comment
TEST:Account 345 -$1.20"#)?;
Serializing:
```rust use ledger_parser::{ Serializer, SerializerSettings };
println!("{}", ledger); println!("{}", ledger.tostringpretty(&SerializerSettings::default().with_indent("\t"))); ```