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),