pub fn parse_macro(input: &str) -> Result<Vec<MacroStep>, AppError>Expand description
Parse a macro file body into an ordered list of MacroSteps.
Blank lines and full-line # comments are skipped (a # is only a comment
when it is the first non-whitespace character, so text a#b keeps its #).
A wait <ms> line becomes a MacroStep::Wait; every other line is parsed
as a semantic command via parse_send_tokens.
ยงErrors
Returns AppError::validation on the first malformed line, tagged with the
1-based line number for a precise diagnostic.