Merge pull request #4 from chris-ramon/malformed-syntax-improvement

malformed syntax improvement
diff --git a/parser/parser.go b/parser/parser.go
index a0132ea..b679210 100644
--- a/parser/parser.go
+++ b/parser/parser.go
@@ -286,9 +286,8 @@
 			// finished
 			break
 		} else if parser.tokenChar(";") {
-			parser.shiftToken()
-			// finished
-			break
+			errMsg := fmt.Sprintf("Unexpected ; character: %s", parser.nextToken().String())
+			return result, errors.New(errMsg)
 		} else {
 			// parse prelude
 			prelude, err, tokens := parser.parsePrelude()
diff --git a/parser/parser_test.go b/parser/parser_test.go
index 89d0ecc..e54a1c7 100644
--- a/parser/parser_test.go
+++ b/parser/parser_test.go
@@ -861,22 +861,8 @@
 
 func TestInfiniteLoop(t *testing.T) {
 	input := "{;}"
-
-	expectedRule := &css.Rule{
-		Kind:    css.QualifiedRule,
-		Prelude: "",
-		Selectors: []*css.Selector{
-			{
-				Value:  "",
-				Line:   0,
-				Column: 0,
-			},
-		},
-		Declarations: []*css.Declaration{},
+	_, err := Parse(input)
+	if err == nil {
+		t.Fatal("Expected an error got nil")
 	}
-
-	stylesheet := MustParse(t, input, 1)
-	rule := stylesheet.Rules[0]
-
-	MustEqualRule(t, rule, expectedRule)
 }