Return list is expanded, this commit is related to T45
This commit is contained in:
parent
c4e0e68e0b
commit
83880f8244
@ -22,10 +22,11 @@ endfunction(list_includes)
|
|||||||
|
|
||||||
# custom targets
|
# custom targets
|
||||||
|
|
||||||
# move test data files to a build directory
|
# move test data data to the build directory
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
set(test_data_src "${CMAKE_SOURCE_DIR}/tests/data")
|
set(test_data "tests/data")
|
||||||
set(test_data_dst "${CMAKE_BINARY_DIR}/tests/data")
|
set(test_data_src "${CMAKE_SOURCE_DIR}/${test_data}")
|
||||||
|
set(test_data_dst "${CMAKE_BINARY_DIR}/${test_data}")
|
||||||
add_custom_target (test_data
|
add_custom_target (test_data
|
||||||
COMMAND rm -rf ${test_data_dst}
|
COMMAND rm -rf ${test_data_dst}
|
||||||
COMMAND cp -r ${test_data_src} ${test_data_dst}
|
COMMAND cp -r ${test_data_src} ${test_data_dst}
|
||||||
|
@ -17,3 +17,4 @@
|
|||||||
#include "queries.hpp"
|
#include "queries.hpp"
|
||||||
#include "start.hpp"
|
#include "start.hpp"
|
||||||
#include "set.hpp"
|
#include "set.hpp"
|
||||||
|
#include "expr.hpp"
|
||||||
|
@ -41,6 +41,7 @@ struct Relationship;
|
|||||||
struct Node;
|
struct Node;
|
||||||
struct LabelList;
|
struct LabelList;
|
||||||
struct Pattern;
|
struct Pattern;
|
||||||
|
struct PatternExpr;
|
||||||
|
|
||||||
struct Return;
|
struct Return;
|
||||||
struct ReturnList;
|
struct ReturnList;
|
||||||
@ -66,7 +67,7 @@ struct SetList;
|
|||||||
struct AstVisitor : public Visitor<Accessor, Boolean, Float, Identifier, Alias,
|
struct AstVisitor : public Visitor<Accessor, Boolean, Float, Identifier, Alias,
|
||||||
Integer, String, Property, And, Or, Lt, Gt, Ge, Le, Eq, Ne, Plus, Minus,
|
Integer, String, Property, And, Or, Lt, Gt, Ge, Le, Eq, Ne, Plus, Minus,
|
||||||
Star, Slash, Rem, PropertyList, RelationshipList, Relationship, Node,
|
Star, Slash, Rem, PropertyList, RelationshipList, Relationship, Node,
|
||||||
RelationshipSpecs, LabelList, ReturnList, Pattern, Match, ReadQuery,
|
RelationshipSpecs, LabelList, ReturnList, Pattern, PatternExpr, Match, ReadQuery,
|
||||||
Start, Where, WriteQuery, Create, Return, Distinct, Delete,
|
Start, Where, WriteQuery, Create, Return, Distinct, Delete,
|
||||||
DeleteQuery, UpdateQuery, Set, SetKey, SetValue, SetElement, SetList> {};
|
DeleteQuery, UpdateQuery, Set, SetKey, SetValue, SetElement, SetList> {};
|
||||||
|
|
||||||
|
@ -36,4 +36,11 @@ struct BinaryExpr : public VisitableExpr<Derived>
|
|||||||
Expr* right;
|
Expr* right;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct PatternExpr : public VisitableExpr<PatternExpr>
|
||||||
|
{
|
||||||
|
PatternExpr(Pattern* pattern) : pattern(pattern) {}
|
||||||
|
|
||||||
|
Pattern* pattern;
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -360,13 +360,19 @@ expr(E) ::= expr(L) REM expr(R). {
|
|||||||
E = ast->create<ast::Rem>(L, R);
|
E = ast->create<ast::Rem>(L, R);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
expr(E) ::= idn(I). {
|
||||||
|
E = ast->create<ast::Accessor>(I, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
expr(E) ::= idn(I) DOT idn(P). {
|
expr(E) ::= idn(I) DOT idn(P). {
|
||||||
E = ast->create<ast::Accessor>(I, P);
|
E = ast->create<ast::Accessor>(I, P);
|
||||||
}
|
}
|
||||||
|
|
||||||
expr(E) ::= idn(I). {
|
// this production produces parser conflicts TODO: findout why
|
||||||
E = ast->create<ast::Accessor>(I, nullptr);
|
// the intention os to add patter in the RETURN statement
|
||||||
}
|
// expr(E) ::= pattern(P). {
|
||||||
|
// E = ast->create<ast::PatternExpr>(P);
|
||||||
|
// }
|
||||||
|
|
||||||
%type idn {ast::Identifier*}
|
%type idn {ast::Identifier*}
|
||||||
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
MATCH (test) RETURN test, test.property, "test" = "test", test.property > 5
|
Loading…
Reference in New Issue
Block a user