pub fn parse_str(src: &str) -> PResult<Vec<Node>>
Top-level utility: parse DSL source string into AST