use crate::shell::common::types::{ReplacementsCmd, ReplacementPart};
grammar;
match {
r#"("[^"]*")|('[^']*')"# => STRING,
r#"\$[^$\s"]"# => READ_VARIABLE,
r#"[^"'$]*"# => WORD,
}
pub ReplacementCmd: ReplacementsCmd = {
ReplacementPart+ => ReplacementsCmd {
parts: <>,
}
}
ReplacementPart: ReplacementPart = {
STRING => ReplacementPart::String(String::from(<>)),
READ_VARIABLE => ReplacementPart::Variable(String::from(<>.strip_prefix("$").unwrap())),
WORD => ReplacementPart::Word(String::from(<>)),
}