Teon Banek
b33a654137
Add basic type checking to SymbolGenerator
...
Summary:
Test for simple type mismatch of node/edge types.
Add basic type checking of variables.
Check for edge type when creating an edge.
Add documentation to private structs and methods.
Reviewers: mislav.bradac, buda, florijan
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D148
2017-03-22 10:49:52 +01:00
Dominik Gleich
6be2399ad1
Fix warnings all over the codebase.
...
Reviewers: florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D146
2017-03-22 09:32:06 +01:00
Mislav Bradac
8e7ccf6e83
Extract literals to ast
...
Summary:
Extract literals to ast Literal node
Fix bugs in TypedValue
Add tests for properties to cypher_main_visitor test
Reviewers: buda, florijan, dgleich, teon.banek
Reviewed By: dgleich, teon.banek
Subscribers: dgleich, pullbot
Differential Revision: https://phabricator.memgraph.io/D149
2017-03-21 15:23:54 +01:00
florijan
a2a4c28168
Query - Add expansion LogicalOp and tests
...
Summary: Query - AstTreeStorage - TODO for forwarding resolved
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D139
2017-03-21 11:26:05 +01:00
matej.gradicek
88a96c2ebd
Fixed logging tests.
...
Summary: Fixed logging tests.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot, matej.gradicek
Differential Revision: https://phabricator.memgraph.io/D137
2017-03-20 08:18:52 +00:00
Teon Banek
bed9324da9
Use SYSTEM when including various library directories
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D144
2017-03-17 17:33:05 +01:00
Mislav Bradac
848d022c60
Bug fixes in cypher_main_visitor and add create clause
...
Reviewers: teon.banek, florijan
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D143
2017-03-17 16:47:29 +01:00
Teon Banek
5e6aaf231d
Add tests for symbol generation in CREATE clause
...
Summary:
Add tests for symbol generation in CREATE clause and correctly (hopefully)
check symbols in create clause and properties.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D135
2017-03-17 15:50:19 +01:00
Mislav Bradac
dd56acf375
Add tests for CypherMainVisitor
...
Summary:
Add tests for CypherMainVisitor
Initialise members to nullptrs in ast.hpp data structures
Preserver users identifier names
Reviewers: teon.banek
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D138
2017-03-17 10:45:13 +01:00
Mislav Bradac
0db7883670
Add AstTreeStorage
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D134
2017-03-16 15:07:22 +01:00
Teon Banek
baa644e9b7
Support creating NodeFilter and CreateOp logical operators
...
Reviewers: mislav.bradac, buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D133
2017-03-16 10:06:01 +01:00
florijan
da0c9c03d6
Query - create implementation started
...
Summary: CreateOp tests
Reviewers: teon.banek, buda, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D132
2017-03-16 09:31:04 +01:00
Teon Banek
ffd399906a
Use Symbol to get frame value
...
Summary:
Since we always use the symbol position to read from frame, it's more
convenient for `Frame::operator[]` to accept `Symbol` instead of `int`.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: florijan, buda
Differential Revision: https://phabricator.memgraph.io/D129
2017-03-15 16:31:13 +01:00
Teon Banek
74991c8289
Document and tweak the generic visitor
...
Summary:
Document and tweak the generic visitor
Use the generic visitor for AST visiting
Reviewers: buda, mislav.bradac, florijan
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D128
2017-03-15 16:16:47 +01:00
florijan
6c7372b3c5
Query - AST tests in progress
...
Summary:
Query compiler AST test in progress
Logical operator testing. NodeFilter LogicalOperator added
Reviewers: mislav.bradac, buda, teon.banek
Reviewed By: buda, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D126
2017-03-15 16:05:23 +01:00
Teon Banek
42e8d339c5
Add tests for symbol generation
...
Summary:
Add tests for symbol generator
Also, remove redundant PreVisit method from AST visitor
Reviewers: mislav.bradac, buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D124
2017-03-15 14:27:21 +01:00
Teon Banek
b956d0812b
Move all query related exceptions to a single file
...
Reviewers: mislav.bradac, buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D125
2017-03-15 14:13:14 +01:00
florijan
1a6aaaed58
DBMS now returns a unique pointer to a GraphDbAccessor
...
Summary: See above.
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D120
2017-03-14 13:37:23 +01:00
florijan
09999e877f
RecordAccessor uses pointers for storage so it's move/copy assignable
...
Summary: See above.
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D118
2017-03-14 13:04:07 +01:00
florijan
2e0cc13813
Produce logical op can now be streamed out by query/entry.hpp. Streaming, header and output functions removed from LogicalOperator
...
Summary: See above.
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: teon.banek, mislav.bradac, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D117
2017-03-14 12:40:46 +01:00
Teon Banek
de9e4991ac
Rename folders and API in query/logical directory
...
Summary:
Rename typecheck folder to semantic
Rename TypecheckVisitor to SymbolGenerator
Rename Apply to MakeLogicalPlan
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D119
2017-03-14 12:01:30 +01:00
florijan
1d2d609896
VertexAccessor::in_out() added
...
Reviewers: buda, dgleich
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D100
2017-03-14 07:48:11 +01:00
Mislav Bradac
f626e308c4
Adapt cpyher visitor to changes in AST
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D116
2017-03-13 17:16:58 +01:00
Mislav Bradac
a5a15673de
TypedValue getters return references
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D113
2017-03-13 17:09:05 +01:00
Teon Banek
e9b8dbd205
Adapt logical operators to changes in AST
...
Summary: Logical and semantic parts have been adapted to renames and other changes in AST. Evaluation has been extracted to a visitor class.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D115
2017-03-13 17:08:03 +01:00
Teon Banek
c638955758
Remove ast.cpp from CMakeLists.txt
2017-03-13 16:06:37 +01:00
Teon Banek
40e842286d
Rename identifier_ string to name_ inside Identifier
2017-03-13 15:43:55 +01:00
Teon Banek
915688b0d7
Clean up the ast and split base visitor into file
2017-03-13 15:32:53 +01:00
florijan
12c7cdcf0e
Add virtual destructor to TreeVisitorBase
2017-03-13 15:05:16 +01:00
Marko Budiselic
3e0b12f646
Merge branch 'compiler_prototype' into dev
2017-03-13 13:35:23 +01:00
Marko Budiselic
d0abb9f023
Interpreter works!
2017-03-12 03:05:31 +01:00
Marko Budiselic
1f75572d5e
it compilesga -A!
2017-03-12 00:04:10 +01:00
Mislav Bradac
026e0e6fbd
Implement ast generation by cypher visitor
2017-03-11 23:22:38 +01:00
Teon Banek
cfd2eae9d0
Use make_*_ptr to construct pointers
2017-03-11 23:05:38 +01:00
Teon Banek
bce605851d
Handle NamedExpr in TypeCheckVisitor
2017-03-11 21:49:50 +01:00
Marko Budiselic
10062b143c
Interpreter merge.
2017-03-11 21:21:09 +01:00
Marko Budiselic
0eeb1fc5b4
Basic interpreter implementation.
2017-03-11 21:09:26 +01:00
Marko Budiselic
9030454132
Add compiler prototype entry point (work in progress).
2017-03-11 21:02:25 +01:00
Teon Banek
34416bc505
Add basic generation of LogicalOperator tree
2017-03-11 20:49:22 +01:00
Teon Banek
fbf70de089
Add type checker which fills symbols for Ident
2017-03-11 18:04:48 +01:00
Mislav Bradac
8d8a1cef6a
Add basic ast types
2017-03-11 15:52:08 +01:00
Teon Banek
3adce8313c
Add default constructor for Symbol
...
SymbolTable should probably have different methods for adding a Symbol
to the table, instead of [] operator.
2017-03-11 15:39:02 +01:00
Teon Banek
425e1f8907
Correct iterator usage
2017-03-11 15:38:03 +01:00
Teon Banek
7d883ff008
Remove using uptr and sptr
2017-03-11 14:42:11 +01:00
Teon Banek
ef764e0367
Add ProduceCursor and Evaluate to expression
2017-03-11 14:39:13 +01:00
Marko Budiselic
1428ce0639
Add basic interpreter skeleton.
2017-03-11 13:47:11 +01:00
Dominik Gleich
4a220411e1
Fix warnings.
...
Reviewers: buda, mferencevic
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D110
2017-03-10 21:36:55 +01:00
Teon Banek
333861e7e9
Generate flags for PlanCompiler via cmake
...
Summary:
Add join function to functions.cmake
This is a convenience function which will join a list of values by
replacing ';' with the given separator.
cmake: Add fetching compile flags in gcc format
This is a utility function which takes all target compilation flags that
can be passed to gcc or clang.
Generate flags for PlanCompiler via cmake
Cmake will now collect all compiler options and definitions which are
then stored in a generated `query/plan_compiler.hpp`. The generated file
is not tracked by git and is stored inside cmake's build directory. The
file is fast to generate and may change often depending on the build
type.
Additionally, link and include directories are also generated as
absolute paths. In the future, we may want to support relative paths so
that copying/installing the build dir creates runnable binaries.
Add -Wall flag for all build types
Lowercase #pragma once in tests for network_common
It seems 'once' may be case sensitive, since clang outputs a warning for
it that the pragma is unknown.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D107
2017-03-10 18:21:31 +01:00
Teon Banek
9dada557a3
Add coverage option to cmake
...
Summary:
Coverage is by default set to OFF, but the new option can be used for convenient
toggle when building.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D109
2017-03-10 18:05:15 +01:00
Mislav Bradac
4bcee620bc
Change clique to use in64_t
...
Summary: Fix int -> int64_t in query_stripper
Reviewers: teon.banek, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D108
2017-03-10 13:58:02 +01:00