1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//! rustixml - Native iXML Parser
//!
//! A pure Rust implementation of the Invisible XML (iXML) specification.
//! Works natively in Rust and compiles to WebAssembly for browser use.
//!
//! # Quick Start
//!
//! ```rust
//! use rustixml::{parse_ixml_grammar, NativeParser};
//!
//! let grammar = r#"
//! greeting: "Hello, ", name, "!".
//! name: letter+.
//! letter: ["A"-"Z"; "a"-"z"].
//! "#;
//!
//! let ast = parse_ixml_grammar(grammar).expect("Invalid grammar");
//! let parser = NativeParser::new(ast);
//!
//! let xml = parser.parse("Hello, World!").expect("Parse failed");
//! println!("{}", xml);
//! ```
//!
//! # Features
//!
//! - 🚀 Fast native recursive descent parser
//! - ✅ 75.4% conformance with iXML specification (49/65 tests)
//! - 🌐 WebAssembly support for browser use
//! - 📦 Single dependency (unicode-general-category)
//! - 🔒 Pure safe Rust
// WASM bindings (only when compiling for wasm32 browser/Node.js, not IC canisters)
// Re-export main API
pub use IxmlGrammar;
pub use parse_ixml_grammar;
pub use NativeParser;
pub use ;
// Re-export WASM API for convenience (only for browser/Node.js WASM, not IC canisters)
pub use *;