Add rule_in_var.mk test

Also now runtest.rb supports expected failure.
diff --git a/eval.go b/eval.go
index 42aa35a..baa36cf 100644
--- a/eval.go
+++ b/eval.go
@@ -165,6 +165,7 @@
 
 	result := ev.evalExpr(ast.expr)
 	if result != "" {
+		// TODO: Fix rule_in_var.mk.
 		fmt.Printf("%s:%d: *** missing separator.  Stop.\n", ast.filename, ast.lineno)
 	}
 }
diff --git a/runtest.rb b/runtest.rb
index 72a9f84..4b5d563 100755
--- a/runtest.rb
+++ b/runtest.rb
@@ -17,6 +17,8 @@
 Dir.glob('test/*.mk').sort.each do |mk|
   c = File.read(mk)
 
+  expected_failure = c =~ /\A# TODO/
+
   name = mk[/([^\/]+)\.mk$/, 1]
   dir = "out/#{name}"
   FileUtils.rm_rf(dir)
@@ -49,10 +51,18 @@
     File.open('out.kati', 'w'){|ofile|ofile.print(output)}
 
     if expected != output
-      puts "#{name}: FAIL"
-      puts `diff -u out.make out.kati`
+      if expected_failure
+        puts "#{name}: FAIL (expected)"
+      else
+        puts "#{name}: FAIL"
+        puts `diff -u out.make out.kati`
+      end
     else
-      puts "#{name}: OK"
+      if expected_failure
+        puts "#{name}: PASS (unexpected)"
+      else
+        puts "#{name}: PASS"
+      end
     end
   end
 end
diff --git a/test/rule_in_var.mk b/test/rule_in_var.mk
new file mode 100644
index 0000000..c527cb5
--- /dev/null
+++ b/test/rule_in_var.mk
@@ -0,0 +1,8 @@
+# TODO: Implement this. We probably need this.
+
+RULE=foo:
+
+test: foo
+
+$(RULE)
+	echo OK