diff --git a/src/parser/parser.yy b/src/parser/parser.yy
index 5d3947cb19a45f08b9c545f55524d95d4557a379..e5fb90dacaba4f857199360d13bed6848bd05307 100644
--- a/src/parser/parser.yy
+++ b/src/parser/parser.yy
@@ -211,6 +211,7 @@ name_label
 
 unreserved_keyword
      : KW_SPACE              { $$ = new std::string("space"); }
+     | KW_VALUES             { $$ = new std::string("values"); }
      | KW_HOSTS              { $$ = new std::string("hosts"); }
      | KW_SPACES             { $$ = new std::string("spaces"); }
      | KW_FIRSTNAME          { $$ = new std::string("firstname"); }
diff --git a/src/parser/scanner.lex b/src/parser/scanner.lex
index eb25f3527bdd6cd7f1e21d2225832e674fc11ccc..5b4e7f72bea27c361b79634f8d034f78da8badee 100644
--- a/src/parser/scanner.lex
+++ b/src/parser/scanner.lex
@@ -34,7 +34,7 @@ FROM                        ([Ff][Rr][Oo][Mm])
 WHERE                       ([Ww][Hh][Ee][Rr][Ee])
 MATCH                       ([Mm][Aa][Tt][Cc][Hh])
 INSERT                      ([Ii][Nn][Ss][Ee][Rr][Tt])
-VALUES                      ([Vv][Aa][Ll][Uu][Ee][Ss])
+VALUES                      ([Vv][Aa][Ll][Uu][Ee][Ss]?)
 YIELD                       ([Yy][Ii][Ee][Ll][Dd])
 RETURN                      ([Rr][Ee][Tt][Uu][Rr][Nn])
 CREATE                      ([Cc][Rr][Ee][Aa][Tt][Ee])
@@ -47,7 +47,7 @@ UPDATE                      ([Uu][Pp][Dd][Aa][Tt][Ee])
 DELETE                      ([Dd][Ee][Ll][Ee][Tt][Ee])
 FIND                        ([Ff][Ii][Nn][Dd])
 ALTER                       ([Aa][Ll][Tt][Ee][Rr])
-STEPS                       ([Ss][Tt][Ee][Pp][Ss])
+STEPS                       ([Ss][Tt][Ee][Pp][Ss]?)
 OVER                        ([Oo][Vv][Ee][Rr])
 UPTO                        ([Uu][Pp][Tt][Oo])
 REVERSELY                   ([Rr][Ee][Vv][Ee][Rr][Ss][Ee][Ll][Yy])
diff --git a/src/parser/test/ScannerTest.cpp b/src/parser/test/ScannerTest.cpp
index 36f49c6ee65ac325d8aad08e929109ffcbb004f4..e8a8d663cb7feb1503b67a7fa7d2c5d5248db84a 100644
--- a/src/parser/test/ScannerTest.cpp
+++ b/src/parser/test/ScannerTest.cpp
@@ -183,6 +183,8 @@ TEST(Scanner, Basic) {
         CHECK_SEMANTIC_TYPE("match", TokenType::KW_MATCH),
         CHECK_SEMANTIC_TYPE("INSERT", TokenType::KW_INSERT),
         CHECK_SEMANTIC_TYPE("insert", TokenType::KW_INSERT),
+        CHECK_SEMANTIC_TYPE("VALUE", TokenType::KW_VALUES),
+        CHECK_SEMANTIC_TYPE("value", TokenType::KW_VALUES),
         CHECK_SEMANTIC_TYPE("VALUES", TokenType::KW_VALUES),
         CHECK_SEMANTIC_TYPE("values", TokenType::KW_VALUES),
         CHECK_SEMANTIC_TYPE("YIELD", TokenType::KW_YIELD),
@@ -199,6 +201,8 @@ TEST(Scanner, Basic) {
         CHECK_SEMANTIC_TYPE("update", TokenType::KW_UPDATE),
         CHECK_SEMANTIC_TYPE("ALTER", TokenType::KW_ALTER),
         CHECK_SEMANTIC_TYPE("alter", TokenType::KW_ALTER),
+        CHECK_SEMANTIC_TYPE("STEP", TokenType::KW_STEPS),
+        CHECK_SEMANTIC_TYPE("step", TokenType::KW_STEPS),
         CHECK_SEMANTIC_TYPE("STEPS", TokenType::KW_STEPS),
         CHECK_SEMANTIC_TYPE("steps", TokenType::KW_STEPS),
         CHECK_SEMANTIC_TYPE("OVER", TokenType::KW_OVER),