comma
splits shell-style commands, e.g. sendmsg joe "I say \"hi\" to you!"
, into a list of individual tokens.
It correctly handles unicode characters, escape sequences, and single- or double-quoted strings.
[dependencies]
comma = "1.0.0"
use comma::parse_command;
fn main () {
let parsed = parse_command("sendmsg joe \"I say \\\"hi\\\" to you!\" 'but only\\ntoday'").unwrap();
println!("Result: {:#?}", parsed); // Result: [ "sendmsg", "joe", "I say \"hi\" to you!", "but only\ntoday" ]
}