FileSystem = CompoundFile EOF. File : SimpleFile | CompoundFile common FileName. SimpleFile = "simple". CompoundFile = "compound" PList(File). Commands = List(Command) EOF. Command : Simple. Simple : MakeDirectory | ChangeDirectoryUp | ChangeDirectoryDown | RecursiveCopy | DiskUsage | Find | Echo | SymbolicLink | RemoveDirectory | CreateEmptyFile | RemoveFile. MakeDirectory = "mkdir" DirectoryName. ChangeDirectoryUp = "cd ..". ChangeDirectoryDown = "cd" DirectoryName. RecursiveCopy = "cp -r ../* ." . DiskUsage = "du .". SymbolicLink = "ln -s" FileName FileName. RemoveDirectory = "rmdir" DirectoryName. // "touch f" creates an empty file called f. CreateEmptyFile = "touch" FileName. RemoveFile = "rm" FileName. Find = "find . -name" DirectoryName "-print". Echo = "echo" Message. FileName = Ident. DirectoryName = Ident. Message = String. PList(S) ~ "(" {S} ")". List(S) ~ {S}. Main = .