Expand description
openCypher subset: lexer, AST, recursive-descent parser. The compiler that lowers AST onto graph operators lives in a separate slice; this module is the front-end only.
Re-exports§
pub use ast::BinaryOp;pub use ast::CaseExpr;pub use ast::CreateClause;pub use ast::CypherClause;pub use ast::CypherExpr;pub use ast::CypherQuery;pub use ast::DeleteClause;pub use ast::FunctionCall;pub use ast::InList;pub use ast::IsNotNull;pub use ast::IsNull;pub use ast::ListComprehension;pub use ast::ListIndex;pub use ast::ListLiteral;pub use ast::ListSlice;pub use ast::Literal;pub use ast::MapLiteral;pub use ast::MatchClause;pub use ast::MergeClause;pub use ast::NodePattern;pub use ast::OrderByItem;pub use ast::Parameter;pub use ast::PathElement;pub use ast::PathPattern;pub use ast::PropertyAccess;pub use ast::RelDirection;pub use ast::RelPattern;pub use ast::ReturnClause;pub use ast::ReturnItem;pub use ast::SetClause;pub use ast::SetItem;pub use ast::SetOperator;pub use ast::UnaryOp;pub use ast::UnwindClause;pub use ast::Variable;pub use ast::WithClause;pub use executor::Binding;pub use executor::BindingRow;pub use executor::CypherError;pub use executor::CypherExecutor;pub use executor::ResultRow;pub use lexer::tokenize;pub use lexer::LexError;pub use lexer::Token;pub use lexer::TokenKind;pub use parser::parse_cypher;pub use parser::ParseError;pub use writer::CypherWriter;
Modules§
- ast
- Cypher AST. Mirrors the openCypher subset implemented by the
UQA Cypher subset:
MATCH,OPTIONAL MATCH,CREATE,MERGE,SET,DELETE,DETACH DELETE,RETURN,WITH,WHERE,ORDER BY,SKIP,LIMIT,UNWIND. - executor
- Read-only Cypher executor: walks a
CypherQueryAST and lowers it onto graph operators against aGraphStore. - lexer
- Cypher tokenizer. Produces a flat
Tokenvector consumed by the recursive-descent parser. Keywords are case-insensitive — they arrive asIdentifiertokens whose uppercased text the parser matches against keyword strings. - parser
- Recursive-descent parser for the supported openCypher grammar.
- writer
- Mutating Cypher executor: extends the read-only
CypherExecutorpipeline withCREATE,SET,MERGE,DELETE/DETACH DELETE, andUNWINDclauses. Reads delegate to a transientCypherExecutorview that borrows the store immutably.