pub fn parse_trigger(source: &str) -> Result<TriggerAst, AstError>
Parse a single trigger source string; returns the first trigger found.
Returns an error if the source cannot be parsed or if no trigger is found.