Show the ninja string that failed to parse in errors

So that it's easier to debug what the problem is.

Test: m nothing
Change-Id: I97e81f98f0365e981d34c6b8bec8528de1b7e514
diff --git a/ninja_strings.go b/ninja_strings.go
index 51a167d..0b783c3 100644
--- a/ninja_strings.go
+++ b/ninja_strings.go
@@ -118,7 +118,7 @@
 		r := rune(str[i])
 		state, err = state(parseState, i, r)
 		if err != nil {
-			return nil, err
+			return nil, fmt.Errorf("error parsing ninja string %q: %s", str, err)
 		}
 	}
 
diff --git a/ninja_strings_test.go b/ninja_strings_test.go
index c1e05f7..f400074 100644
--- a/ninja_strings_test.go
+++ b/ninja_strings_test.go
@@ -87,7 +87,7 @@
 		strs:  []string{"$ ", " "},
 	}, {
 		input: "foo $ bar",
-		err:   "invalid character after '$' at byte offset 5",
+		err:   `error parsing ninja string "foo $ bar": invalid character after '$' at byte offset 5`,
 	},
 	{
 		input: "foo $",
@@ -95,11 +95,11 @@
 	},
 	{
 		input: "foo ${} bar",
-		err:   "empty variable name at byte offset 6",
+		err:   `error parsing ninja string "foo ${} bar": empty variable name at byte offset 6`,
 	},
 	{
 		input: "foo ${abc!} bar",
-		err:   "invalid character in variable name at byte offset 9",
+		err:   `error parsing ninja string "foo ${abc!} bar": invalid character in variable name at byte offset 9`,
 	},
 	{
 		input: "foo ${abc",