Harden tests for bad arrays
diff --git a/parser.go b/parser.go
index 7ba872b..bd33e0d 100644
--- a/parser.go
+++ b/parser.go
@@ -264,7 +264,7 @@
 		}
 		if follow.typ == tokenRightBracket {
 			p.getToken()
-			return array
+			break
 		}
 		val := p.parseRvalue()
 		if arrayType == nil {
@@ -275,7 +275,7 @@
 		}
 		array = append(array, val)
 		follow = p.peek()
-		if follow == nil {
+		if follow == nil || follow.typ == tokenEOF {
 			p.raiseError(follow, "unterminated array")
 		}
 		if follow.typ != tokenRightBracket && follow.typ != tokenComma {
diff --git a/parser_test.go b/parser_test.go
index 94308a4..9b827b1 100644
--- a/parser_test.go
+++ b/parser_test.go
@@ -297,6 +297,16 @@
 	if err.Error() != "(1, 8): unterminated array" {
 		t.Error("Bad error message:", err.Error())
 	}
+
+	_, err = Load("a = [1")
+	if err.Error() != "(1, 7): unterminated array" {
+		t.Error("Bad error message:", err.Error())
+	}
+
+	_, err = Load("a = [1 2")
+	if err.Error() != "(1, 8): missing comma" {
+		t.Error("Bad error message:", err.Error())
+	}
 }
 
 func TestNewlinesInArrays(t *testing.T) {