fix err_semicolon.mk
diff --git a/parser.go b/parser.go
index 624c1c3..d5f5a41 100644
--- a/parser.go
+++ b/parser.go
@@ -210,6 +210,10 @@
 }
 
 func (p *parser) parseMaybeRule(line, semi []byte) {
+	if len(line) == 0 {
+		p.err = p.srcpos().errorf("*** missing rule before commands.")
+		return
+	}
 	if line[0] == '\t' {
 		p.err = p.srcpos().errorf("*** commands commence before first target.")
 		return
diff --git a/testcase/err_semicolon.mk b/testcase/err_semicolon.mk
index 97a1c75..f85826a 100644
--- a/testcase/err_semicolon.mk
+++ b/testcase/err_semicolon.mk
@@ -1,2 +1,2 @@
-# TODO: This is an error. See also semicolon.mk
+# This is an error. See also semicolon.mk
 ;