1 2 3 4 5 6 7 8 9 10 11
char = @{ !("|" | ";" | WHITESPACE) ~ ANY } word = @{ char+ } exe = { word+ } pipeline = { exe ~ ("|" ~ exe)* } commands = { pipeline ~ (";" ~ pipeline)* } line = { SOI ~ commands ~ EOI } WHITESPACE = _{ (" " | "\t" | "\n") } COMMENT = _{ "#" ~ ANY* }