| Crates.io | formualizer-parse |
| lib.rs | formualizer-parse |
| version | 0.1.0 |
| created_at | 2025-09-20 00:18:00.709544+00 |
| updated_at | 2025-09-20 00:18:00.709544+00 |
| description | Excel/OpenFormula tokenizer, parser, and pretty-printer for the Formualizer spreadsheet engine |
| homepage | https://github.com/psu3d0/formualizer |
| repository | https://github.com/psu3d0/formualizer |
| max_upload_size | |
| id | 1847286 |
| size | 222,251 |
formualizer-parse provides the tokenization, parsing, and pretty-printing
infrastructure for the Formualizer spreadsheet engine. It understands both
Excel-style and OpenFormula dialects, producing an AST that downstream crates
(formualizer-eval, formualizer-workbook, and the language bindings) rely on.
use formualizer_parse::{FormulaDialect, Tokenizer, canonical_formula};
use formualizer_parse::parser::Parser;
# fn example() -> Result<(), Box<dyn std::error::Error>> {
let tokenizer = Tokenizer::new_with_dialect("=SUM(A1:B3)", FormulaDialect::Excel)?;
let tokens = tokenizer.items;
let mut parser = Parser::new(tokens, false);
let ast = parser.parse()?;
assert_eq!(canonical_formula(&ast), "=SUM(A1:B3)");
# Ok(())
# }
# example().unwrap();
Tokenizer::new(..) keeps Excel semantics, while
Tokenizer::new_with_dialect(.., FormulaDialect::OpenFormula) enables
OpenFormula rules.
Dual-licensed under MIT or Apache-2.0, at your option.