1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
char = { ASCII_ALPHANUMERIC } word = @{ char+ } exe = { word+ } and = { "&&" ~ command } or = { "||" ~ command } both = { ";" ~ command } pipe = { "|" ~ command } command = { exe ~ (and | or | both | pipe)? } line = { SOI ~ command ~ EOI } WHITESPACE = _{ " " } COMMENT = _{ "#" ~ ANY* }