Handle empty output
diff --git a/eval.go b/eval.go
index a07be29..33fb00b 100644
--- a/eval.go
+++ b/eval.go
@@ -175,6 +175,11 @@
 		cmdLineno: ast.cmdLineno,
 	}
 	ev.curRule.parse(line)
+	// It seems rules with no outputs are siliently ignored.
+	if len(ev.curRule.outputs) == 0 {
+		ev.curRule = nil
+		return
+	}
 
 	var cmds []string
 	for _, cmd := range ast.cmds {