use slash_lang::parser::parse;
fn main() {
let inputs = [
"/build.release",
"/build.target(wasm32)",
"/build.target(release).jobs(4).lto",
"/cargo.version(1.0.0)",
"/run.dry-run()",
"/Build.target(release)! | /test",
];
for input in &inputs {
println!("Input: {input}");
match parse(input) {
Ok(program) => {
let cmd = &program.pipelines[0].commands[0];
println!(" name: {}", cmd.name);
if cmd.args.is_empty() {
println!(" args: (none)");
} else {
for arg in &cmd.args {
match &arg.value {
Some(v) => println!(" arg: {}={}", arg.name, v),
None => println!(" arg: {} (flag)", arg.name),
}
}
}
}
Err(e) => println!(" ERROR: {:?}", e),
}
println!();
}
}