Skip to main content

pln_parse/
lib.rs

1pub mod ast;
2pub mod error;
3pub mod parser;
4pub mod validate;
5
6pub use ast::{Item, Node, Size, Span, Unit};
7pub use error::ParseError;
8
9/// Parse a PLN layout string into an AST.
10pub fn parse(input: &str) -> Result<Item, ParseError> {
11    parser::parse(input)
12}
13
14/// Parse and validate a PLN layout string.
15///
16/// This runs both parsing and semantic validation (e.g. checking that
17/// col/row units are used in the correct split direction).
18pub fn parse_and_validate(input: &str) -> Result<Item, ParseError> {
19    let item = parser::parse(input)?;
20    validate::validate(&item)?;
21    Ok(item)
22}