some query examples are modified and try to add AS in grammar (not successfully one)

This commit is contained in:
Marko Budiselic 2016-01-19 23:36:00 +01:00
parent f79add5633
commit 1a6676e240
9 changed files with 19 additions and 8 deletions

View File

@ -9,8 +9,11 @@ namespace ast
struct Identifier : public AstNode<Identifier>
{
Identifier(std::string name) : name(name) {}
Identifier(std::string name, std::string alias)
: name(name), alias(alias) {}
std::string name;
std::string alias;
};
}

View File

@ -316,7 +316,14 @@ expr(E) ::= idn(I) DOT idn(P). {
%type idn {ast::Identifier*}
idn(I) ::= IDN(X). {
I = ast->create<ast::Identifier>(X->value);
I = ast->create<ast::Identifier>(X->value, "");
}
/*
not the best idea TODO: how to put AS into the grammar
*/
idn(I) ::= IDN(X) AS IDN(A). {
I = ast->create<ast::Identifier>(X->value, A->value);
}
expr(E) ::= INT(V). {

View File

@ -116,6 +116,7 @@ public:
{
auto entry = printer.advance();
entry << "Identifier '" << idn.name << "'";
entry << " Alias '" << idn.alias << "'";
}
void visit(ast::Return& return_clause) override

View File

@ -1 +1 @@
MATCH (user:User { name: 'Dominik', age: 8 + 4})-[has:HAS|IS|CAN { duration: 'PERMANENT'}]->(item:Item)--(shop)
MATCH (user:User { name: 'Dominik', age: 8 + 4})-[has:HAS|IS|CAN { duration: 'PERMANENT'}]->(item:Item)--(shop) RETURN shop

View File

@ -1 +1 @@
MATCH (n)-->(m)
MATCH (n)-->(m) RETURN n

View File

@ -1 +1 @@
OPTIONAL MATCH (n)-[r]->(m)
OPTIONAL MATCH (n)-[r]->(m) RETURN n

View File

@ -1 +1 @@
MATCH p = (n)-->(m)
MATCH p = (n:Person)-->(m:Dog {name: 'Bos'}) RETURN p

View File

@ -1 +1 @@
MATCH (n {name:'Alice'})-->(m)
MATCH (n {name:'Alice'})-->(m) RETURN m

View File

@ -1 +1 @@
MATCH (n:Person)-[:KNOWS]->(m:Person) WHERE n.name="Alice"
MATCH (n:Person)-[:KNOWS]->(m:Person) WHERE n.name="Alice" RETURN m