yacc = simple { class = "yacc", outputs = {"%U%/%I%.c"}, command = { "yacc -t -b %{return posix.dirname(self.out[1])}%/y -d %in%", "mv %{return posix.dirname(self.out[1])}%/y.tab.c %out%" } } flex = simple { class = "flex", outputs = {"%U%/%I%.c"}, command = { "flex -s -t %in% > %out%" } }