fn substitute_macros(input: &str) -> String