libcypher-parser-0.6.0
Data Structures | Typedefs | Enumerations | Functions | Variables
cypher-parser.h File Reference
#include <stdlib.h>
#include <stdint.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/uio.h>

Data Structures

struct  cypher_input_position
 A position in the input. More...
 
struct  cypher_input_range
 A range in the input. More...
 

Typedefs

typedef struct cypher_astnode cypher_astnode_t
 An abstract syntax tree node.
 
typedef uint8_t cypher_astnode_type_t
 A cypher AST node type.
 
typedef struct cypher_operator cypher_operator_t
 A cypher expression operator.
 
typedef struct cypher_parser_config cypher_parser_config_t
 Configuration for a cypher parser.
 
typedef struct cypher_parse_segment cypher_parse_segment_t
 A parse segment.
 
typedef struct cypher_parse_result cypher_parse_result_t
 A parse result.
 
typedef struct cypher_parse_error cypher_parse_error_t
 A parse error.
 
typedef int(* cypher_parser_segment_callback_t) (void *userdata, cypher_parse_segment_t *segment)
 A parse callback.
 
typedef struct cypher_quick_parse_segment cypher_quick_parse_segment_t
 A quick parse segment.
 
typedef int(* cypher_parser_quick_segment_callback_t) (void *userdata, const cypher_quick_parse_segment_t *segment)
 A quick parse callback.
 

Enumerations

enum  cypher_rel_direction
 The direction of a relationship pattern.
 

Functions

const char * libcypher_parser_version (void)
 The version string for libcypher-parser.
 
cypher_astnode_type_t cypher_astnode_type (const cypher_astnode_t *node)
 Get the type of an AST node. More...
 
bool cypher_astnode_instanceof (const cypher_astnode_t *node, cypher_astnode_type_t type)
 Check the type of an AST node. More...
 
const char * cypher_astnode_typestr (cypher_astnode_type_t type)
 Get a string description of the AST node type. More...
 
unsigned int cypher_astnode_nchildren (const cypher_astnode_t *node)
 Get the number of children from an AST node. More...
 
const cypher_astnode_tcypher_astnode_get_child (const cypher_astnode_t *node, unsigned int index)
 Get a child from an AST node. More...
 
struct cypher_input_range cypher_astnode_range (const cypher_astnode_t *node)
 Get the range of an AST node in the input. More...
 
cypher_astnode_tcypher_ast_statement (cypher_astnode_t *const *options, unsigned int noptions, const cypher_astnode_t *body, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_STATEMENT node. More...
 
unsigned int cypher_ast_statement_noptions (const cypher_astnode_t *node)
 Get the number of options in a CYPHER_AST_STATEMENT node. More...
 
const cypher_astnode_tcypher_ast_statement_get_option (const cypher_astnode_t *node, unsigned int index)
 Get an option of a CYPHER_AST_STATEMENT node. More...
 
const cypher_astnode_tcypher_ast_statement_get_body (const cypher_astnode_t *node)
 Get the body of a CYPHER_AST_STATEMENT node. More...
 
cypher_astnode_tcypher_ast_cypher_option (const cypher_astnode_t *version, cypher_astnode_t *const *params, unsigned int nparams, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CYPHER_OPTION node. More...
 
const cypher_astnode_tcypher_ast_cypher_option_get_version (const cypher_astnode_t *node)
 Get the version of a CYPHER_AST_CYPHER_OPTION node. More...
 
unsigned int cypher_ast_cypher_option_nparams (const cypher_astnode_t *node)
 Get the number of parameters in a CYPHER_AST_CYPHER_OPTION node. More...
 
const cypher_astnode_tcypher_ast_cypher_option_get_param (const cypher_astnode_t *node, unsigned int index)
 Get an option of a CYPHER_AST_CYPHER_OPTION node. More...
 
cypher_astnode_tcypher_ast_cypher_option_param (const cypher_astnode_t *name, const cypher_astnode_t *value, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CYPHER_OPTION_PARAM node. More...
 
const cypher_astnode_tcypher_ast_cypher_option_param_get_name (const cypher_astnode_t *node)
 Get an name of a CYPHER_AST_CYPHER_OPTION_PARAM node. More...
 
const cypher_astnode_tcypher_ast_cypher_option_param_get_value (const cypher_astnode_t *node)
 Get an value of a CYPHER_AST_CYPHER_OPTION_PARAM node. More...
 
cypher_astnode_tcypher_ast_explain_option (cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_EXPLAIN_OPTION node. More...
 
cypher_astnode_tcypher_ast_profile_option (cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_PROFILE_OPTION node. More...
 
cypher_astnode_tcypher_ast_create_node_prop_index (const cypher_astnode_t *label, const cypher_astnode_t *prop_name, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CREATE_NODE_PROP_INDEX node. More...
 
const cypher_astnode_tcypher_ast_create_node_prop_index_get_label (const cypher_astnode_t *node)
 Get the label of a CYPHER_AST_CREATE_NODE_PROP_INDEX node. More...
 
const cypher_astnode_tcypher_ast_create_node_prop_index_get_prop_name (const cypher_astnode_t *node)
 Get the property name of a CYPHER_AST_CREATE_NODE_PROP_INDEX node. More...
 
cypher_astnode_tcypher_ast_drop_node_prop_index (const cypher_astnode_t *label, const cypher_astnode_t *prop_name, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_DROP_NODE_PROP_INDEX node. More...
 
const cypher_astnode_tcypher_ast_drop_node_prop_index_get_label (const cypher_astnode_t *node)
 Get the label of a CYPHER_AST_DROP_NODE_PROP_INDEX node. More...
 
const cypher_astnode_tcypher_ast_drop_node_prop_index_get_prop_name (const cypher_astnode_t *node)
 Get the property name of a CYPHER_AST_DROP_NODE_PROP_INDEX node. More...
 
cypher_astnode_tcypher_ast_create_node_prop_constraint (const cypher_astnode_t *identifier, const cypher_astnode_t *label, const cypher_astnode_t *expression, bool unique, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_create_node_prop_constraint_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_create_node_prop_constraint_get_label (const cypher_astnode_t *node)
 Get the label of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_create_node_prop_constraint_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node. More...
 
bool cypher_ast_create_node_prop_constraint_is_unique (const cypher_astnode_t *node)
 Check if the constraint of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node is unique. More...
 
cypher_astnode_tcypher_ast_drop_node_prop_constraint (const cypher_astnode_t *identifier, const cypher_astnode_t *label, const cypher_astnode_t *expression, bool unique, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_drop_node_prop_constraint_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_drop_node_prop_constraint_get_label (const cypher_astnode_t *node)
 Get the label of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_drop_node_prop_constraint_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node. More...
 
bool cypher_ast_drop_node_prop_constraint_is_unique (const cypher_astnode_t *node)
 Check if the constraint of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node is unique. More...
 
cypher_astnode_tcypher_ast_create_rel_prop_constraint (const cypher_astnode_t *identifier, const cypher_astnode_t *label, const cypher_astnode_t *expression, bool unique, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_create_rel_prop_constraint_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_create_rel_prop_constraint_get_reltype (const cypher_astnode_t *node)
 Get the relationship type of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_create_rel_prop_constraint_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node. More...
 
bool cypher_ast_create_rel_prop_constraint_is_unique (const cypher_astnode_t *node)
 Check if the constraint of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node is unique. More...
 
cypher_astnode_tcypher_ast_drop_rel_prop_constraint (const cypher_astnode_t *identifier, const cypher_astnode_t *label, const cypher_astnode_t *expression, bool unique, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_drop_rel_prop_constraint_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_drop_rel_prop_constraint_get_reltype (const cypher_astnode_t *node)
 Get the relationship type of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node. More...
 
const cypher_astnode_tcypher_ast_drop_rel_prop_constraint_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node. More...
 
bool cypher_ast_drop_rel_prop_constraint_is_unique (const cypher_astnode_t *node)
 Check if the constraint of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node is unique. More...
 
cypher_astnode_tcypher_ast_query (cypher_astnode_t *const *options, unsigned int noptions, cypher_astnode_t *const *clauses, unsigned int nclauses, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_QUERY node. More...
 
unsigned int cypher_ast_query_noptions (const cypher_astnode_t *node)
 Get the number of options in a CYPHER_AST_QUERY node. More...
 
const cypher_astnode_tcypher_ast_query_get_option (const cypher_astnode_t *node, unsigned int index)
 Get an option of a CYPHER_AST_QUERY node. More...
 
unsigned int cypher_ast_query_nclauses (const cypher_astnode_t *node)
 Get the number of clauses in a CYPHER_AST_QUERY node. More...
 
const cypher_astnode_tcypher_ast_query_get_clause (const cypher_astnode_t *node, unsigned int index)
 Get a clause of a CYPHER_AST_QUERY node. More...
 
cypher_astnode_tcypher_ast_using_periodic_commit (const cypher_astnode_t *limit, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_USING_PERIODIC_COMMIT node. More...
 
const cypher_astnode_tcypher_ast_using_periodic_commit_get_limit (const cypher_astnode_t *node)
 Get the limit of a CYPHER_AST_USING_PERIODIC_COMMIT node. More...
 
cypher_astnode_tcypher_ast_load_csv (bool with_headers, const cypher_astnode_t *url, const cypher_astnode_t *identifier, const cypher_astnode_t *field_terminator, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_LOAD_CSV node. More...
 
bool cypher_ast_load_csv_has_with_headers (const cypher_astnode_t *node)
 Check the with_headers value of a CYPHER_AST_LOAD_CSV node. More...
 
const cypher_astnode_tcypher_ast_load_csv_get_url (const cypher_astnode_t *node)
 Get the url of a CYPHER_AST_LOAD_CSV node. More...
 
const cypher_astnode_tcypher_ast_load_csv_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_LOAD_CSV node. More...
 
const cypher_astnode_tcypher_ast_load_csv_get_field_terminator (const cypher_astnode_t *node)
 Get the field terminator of a CYPHER_AST_LOAD_CSV node. More...
 
cypher_astnode_tcypher_ast_start (cypher_astnode_t *const *points, unsigned int npoints, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_START node. More...
 
unsigned int cypher_ast_start_npoints (const cypher_astnode_t *node)
 Get the number of start points in a CYPHER_AST_START node. More...
 
const cypher_astnode_tcypher_ast_start_get_point (const cypher_astnode_t *node, unsigned int index)
 Get a start point of a CYPHER_AST_START node. More...
 
const cypher_astnode_tcypher_ast_start_get_predicate (const cypher_astnode_t *node)
 Get the predicate of a CYPHER_AST_START node. More...
 
cypher_astnode_tcypher_ast_node_index_lookup (const cypher_astnode_t *identifier, const cypher_astnode_t *index_name, const cypher_astnode_t *prop_name, const cypher_astnode_t *lookup, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_NODE_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_node_index_lookup_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_NODE_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_node_index_lookup_get_index_name (const cypher_astnode_t *node)
 Get the index name of a CYPHER_AST_NODE_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_node_index_lookup_get_prop_name (const cypher_astnode_t *node)
 Get the prop name of a CYPHER_AST_NODE_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_node_index_lookup_get_lookup (const cypher_astnode_t *node)
 Get the lookup of a CYPHER_AST_NODE_INDEX_LOOKUP node. More...
 
cypher_astnode_tcypher_ast_node_index_query (const cypher_astnode_t *identifier, const cypher_astnode_t *index_name, const cypher_astnode_t *query, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_NODE_INDEX_QUERY node. More...
 
const cypher_astnode_tcypher_ast_node_index_query_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_NODE_INDEX_QUERY node. More...
 
const cypher_astnode_tcypher_ast_node_index_query_get_index_name (const cypher_astnode_t *node)
 Get the index name of a CYPHER_AST_NODE_INDEX_QUERY node. More...
 
const cypher_astnode_tcypher_ast_node_index_query_get_query (const cypher_astnode_t *node)
 Get the query of a CYPHER_AST_NODE_INDEX_QUERY node. More...
 
cypher_astnode_tcypher_ast_node_id_lookup (const cypher_astnode_t *identifier, cypher_astnode_t *const *ids, unsigned int nids, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_NODE_ID_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_node_id_lookup_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_NODE_ID_LOOKUP node. More...
 
unsigned int cypher_ast_node_id_lookup_nids (const cypher_astnode_t *node)
 Get the number of ids in a CYPHER_AST_NODE_ID_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_node_id_lookup_get_id (const cypher_astnode_t *node, unsigned int index)
 Get an id of a CYPHER_AST_NODE_ID_LOOKUP node. More...
 
cypher_astnode_tcypher_ast_all_nodes_scan (const cypher_astnode_t *identifier, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_ALL_NODES_SCAN node. More...
 
const cypher_astnode_tcypher_ast_all_nodes_scan_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_ALL_NODES_SCAN node. More...
 
cypher_astnode_tcypher_ast_rel_index_lookup (const cypher_astnode_t *identifier, const cypher_astnode_t *index_name, const cypher_astnode_t *prop_name, const cypher_astnode_t *lookup, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REL_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_rel_index_lookup_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_REL_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_rel_index_lookup_get_index_name (const cypher_astnode_t *node)
 Get the index name of a CYPHER_AST_REL_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_rel_index_lookup_get_prop_name (const cypher_astnode_t *node)
 Get the prop name of a CYPHER_AST_REL_INDEX_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_rel_index_lookup_get_lookup (const cypher_astnode_t *node)
 Get the lookup of a CYPHER_AST_REL_INDEX_LOOKUP node. More...
 
cypher_astnode_tcypher_ast_rel_index_query (const cypher_astnode_t *identifier, const cypher_astnode_t *index_name, const cypher_astnode_t *query, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REL_INDEX_QUERY node. More...
 
const cypher_astnode_tcypher_ast_rel_index_query_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_REL_INDEX_QUERY node. More...
 
const cypher_astnode_tcypher_ast_rel_index_query_get_index_name (const cypher_astnode_t *node)
 Get the index name of a CYPHER_AST_REL_INDEX_QUERY node. More...
 
const cypher_astnode_tcypher_ast_rel_index_query_get_query (const cypher_astnode_t *node)
 Get the query of a CYPHER_AST_REL_INDEX_QUERY node. More...
 
cypher_astnode_tcypher_ast_rel_id_lookup (const cypher_astnode_t *identifier, cypher_astnode_t *const *ids, unsigned int nids, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REL_ID_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_rel_id_lookup_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_REL_ID_LOOKUP node. More...
 
unsigned int cypher_ast_rel_id_lookup_nids (const cypher_astnode_t *node)
 Get the number of ids in a CYPHER_AST_REL_ID_LOOKUP node. More...
 
const cypher_astnode_tcypher_ast_rel_id_lookup_get_id (const cypher_astnode_t *node, unsigned int index)
 Get an id of a CYPHER_AST_REL_ID_LOOKUP node. More...
 
cypher_astnode_tcypher_ast_all_rels_scan (const cypher_astnode_t *identifier, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_ALL_RELS_SCAN node. More...
 
const cypher_astnode_tcypher_ast_all_rels_scan_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_ALL_RELS_SCAN node. More...
 
cypher_astnode_tcypher_ast_match (bool optional, const cypher_astnode_t *pattern, cypher_astnode_t *const *hints, unsigned int nhints, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MATCH node. More...
 
bool cypher_ast_match_is_optional (const cypher_astnode_t *node)
 Check if the optional value of a CYPHER_AST_MATCH node is set. More...
 
const cypher_astnode_tcypher_ast_match_get_pattern (const cypher_astnode_t *node)
 Get the pattern of a CYPHER_AST_MATCH node. More...
 
unsigned int cypher_ast_match_nhints (const cypher_astnode_t *node)
 Get the number of hints in a CYPHER_AST_MATCH node. More...
 
const cypher_astnode_tcypher_ast_match_get_hint (const cypher_astnode_t *node, unsigned int index)
 Get a hint from a CYPHER_AST_MATCH node. More...
 
const cypher_astnode_tcypher_ast_match_get_predicate (const cypher_astnode_t *node)
 Get the predicate of a CYPHER_AST_PREDICATE node. More...
 
cypher_astnode_tcypher_ast_using_index (const cypher_astnode_t *identifier, const cypher_astnode_t *label, const cypher_astnode_t *prop_name, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_USING_INDEX node. More...
 
const cypher_astnode_tcypher_ast_using_index_get_identifier (const cypher_astnode_t *node)
 Get the identifer of a CYPHER_AST_USING_INDEX node. More...
 
const cypher_astnode_tcypher_ast_using_index_get_label (const cypher_astnode_t *node)
 Get the label of a CYPHER_AST_USING_INDEX node. More...
 
const cypher_astnode_tcypher_ast_using_index_get_prop_name (const cypher_astnode_t *node)
 Get the label of a CYPHER_AST_USING_INDEX node. More...
 
cypher_astnode_tcypher_ast_using_join (cypher_astnode_t *const *identifiers, unsigned int nidentifiers, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_USING_JOIN node. More...
 
unsigned int cypher_ast_using_join_nidentifiers (const cypher_astnode_t *node)
 Get the number of identifiers in a CYPHER_AST_USING_JOIN node. More...
 
const cypher_astnode_tcypher_ast_using_join_get_identifier (const cypher_astnode_t *node, unsigned int index)
 Get a identifier from a CYPHER_AST_USING_JOIN node. More...
 
cypher_astnode_tcypher_ast_using_scan (const cypher_astnode_t *identifier, const cypher_astnode_t *label, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_USING_SCAN node. More...
 
const cypher_astnode_tcypher_ast_using_scan_get_identifier (const cypher_astnode_t *node)
 Get the identifer of a CYPHER_AST_USING_SCAN node. More...
 
const cypher_astnode_tcypher_ast_using_scan_get_label (const cypher_astnode_t *node)
 Get the label of a CYPHER_AST_USING_SCAN node. More...
 
cypher_astnode_tcypher_ast_merge (const cypher_astnode_t *path, cypher_astnode_t *const *actions, unsigned int nactions, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MERGE node. More...
 
const cypher_astnode_tcypher_ast_merge_get_pattern_path (const cypher_astnode_t *node)
 Get the pattern path of a CYPHER_AST_MERGE node. More...
 
unsigned int cypher_ast_merge_nactions (const cypher_astnode_t *node)
 Get the number of actions in a CYPHER_AST_MERGE node. More...
 
const cypher_astnode_tcypher_ast_merge_get_action (const cypher_astnode_t *node, unsigned int index)
 Get an action from a CYPHER_AST_MERGE node. More...
 
cypher_astnode_tcypher_ast_on_match (cypher_astnode_t *const *items, unsigned int nitems, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_ON_MATCH node. More...
 
unsigned int cypher_ast_on_match_nitems (const cypher_astnode_t *node)
 Get the number of items in a CYPHER_AST_ON_MATCH node. More...
 
const cypher_astnode_tcypher_ast_on_match_get_item (const cypher_astnode_t *node, unsigned int index)
 Get an item from a CYPHER_AST_ON_MATCH node. More...
 
cypher_astnode_tcypher_ast_on_create (cypher_astnode_t *const *items, unsigned int nitems, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_ON_CREATE node. More...
 
unsigned int cypher_ast_on_create_nitems (const cypher_astnode_t *node)
 Get the number of items in a CYPHER_AST_ON_CREATE node. More...
 
const cypher_astnode_tcypher_ast_on_create_get_item (const cypher_astnode_t *node, unsigned int index)
 Get an item from a CYPHER_AST_ON_CREATE node. More...
 
cypher_astnode_tcypher_ast_create (bool unique, const cypher_astnode_t *pattern, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CREATE node. More...
 
bool cypher_ast_create_is_unique (const cypher_astnode_t *node)
 Check if the unique value of a CYPHER_AST_CREATE node is set. More...
 
const cypher_astnode_tcypher_ast_create_get_pattern (const cypher_astnode_t *node)
 Get the pattern of a CYPHER_AST_CREATE node. More...
 
cypher_astnode_tcypher_ast_set (cypher_astnode_t *const *items, unsigned int nitems, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SET node. More...
 
unsigned int cypher_ast_set_nitems (const cypher_astnode_t *node)
 Get the number of items in a CYPHER_AST_SET node. More...
 
const cypher_astnode_tcypher_ast_set_get_item (const cypher_astnode_t *node, unsigned int index)
 Get an item from a CYPHER_AST_SET node. More...
 
cypher_astnode_tcypher_ast_set_property (const cypher_astnode_t *property, const cypher_astnode_t *expression, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SET_PROPERTY node. More...
 
const cypher_astnode_tcypher_ast_set_property_get_property (const cypher_astnode_t *node)
 Get the property operator of a CYPHER_AST_SET_PROPERTY node. More...
 
const cypher_astnode_tcypher_ast_set_property_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_SET_PROPERTY node. More...
 
cypher_astnode_tcypher_ast_set_all_properties (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SET_ALL_PROPERTIES node. More...
 
const cypher_astnode_tcypher_ast_set_all_properties_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_SET_ALL_PROPERTIES node. More...
 
const cypher_astnode_tcypher_ast_set_all_properties_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_SET_ALL_PROPERTIES node. More...
 
cypher_astnode_tcypher_ast_merge_properties (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MERGE_PROPERTIES node. More...
 
const cypher_astnode_tcypher_ast_merge_properties_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_MERGE_PROPERTIES node. More...
 
const cypher_astnode_tcypher_ast_merge_properties_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_MERGE_PROPERTIES node. More...
 
cypher_astnode_tcypher_ast_set_labels (const cypher_astnode_t *identifier, cypher_astnode_t *const *labels, unsigned int nlabels, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SET_LABELS node. More...
 
const cypher_astnode_tcypher_ast_set_labels_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_SET_LABELS node. More...
 
unsigned int cypher_ast_set_labels_nlabels (const cypher_astnode_t *node)
 Get the number of labels in a CYPHER_AST_SET_LABELS node. More...
 
const cypher_astnode_tcypher_ast_set_labels_get_label (const cypher_astnode_t *node, unsigned int index)
 Get a label from a CYPHER_AST_SET_LABELS node. More...
 
cypher_astnode_tcypher_ast_delete (bool detach, cypher_astnode_t *const *expressions, unsigned int nexpressions, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_DELETE node. More...
 
bool cypher_ast_delete_has_detach (const cypher_astnode_t *node)
 Check if DETACH is present for a CYPHER_AST_DELETE node. More...
 
unsigned int cypher_ast_delete_nexpressions (const cypher_astnode_t *node)
 Get the number of expression in a CYPHER_AST_DELETE node. More...
 
const cypher_astnode_tcypher_ast_delete_get_expression (const cypher_astnode_t *node, unsigned int index)
 Get an expression from a CYPHER_AST_DELETE node. More...
 
cypher_astnode_tcypher_ast_remove (cypher_astnode_t *const *items, unsigned int nitems, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REMOVE node. More...
 
unsigned int cypher_ast_remove_nitems (const cypher_astnode_t *node)
 Get the number of items in a CYPHER_AST_REMOVE node. More...
 
const cypher_astnode_tcypher_ast_remove_get_item (const cypher_astnode_t *node, unsigned int index)
 Get an item from a CYPHER_AST_REMOVE node. More...
 
cypher_astnode_tcypher_ast_remove_labels (const cypher_astnode_t *identifier, cypher_astnode_t *const *labels, unsigned int nlabels, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REMOVE_LABELS node. More...
 
const cypher_astnode_tcypher_ast_remove_labels_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_REMOVE_LABELS node. More...
 
unsigned int cypher_ast_remove_labels_nlabels (const cypher_astnode_t *node)
 Get the number of labels in a CYPHER_AST_REMOVE_LABELS node. More...
 
const cypher_astnode_tcypher_ast_remove_labels_get_label (const cypher_astnode_t *node, unsigned int index)
 Get a label from a CYPHER_AST_REMOVE_LABELS node. More...
 
cypher_astnode_tcypher_ast_remove_property (const cypher_astnode_t *property, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REMOVE_PROPERTY node. More...
 
const cypher_astnode_tcypher_ast_remove_property_get_property (const cypher_astnode_t *node)
 Get the property operator of a CYPHER_AST_REMOVE_PROPERTY node. More...
 
cypher_astnode_tcypher_ast_foreach (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, cypher_astnode_t *const *clauses, unsigned int nclauses, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_FOREACH node. More...
 
const cypher_astnode_tcypher_ast_foreach_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_FOREACH node. More...
 
const cypher_astnode_tcypher_ast_foreach_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_FOREACH node. More...
 
unsigned int cypher_ast_foreach_nclauses (const cypher_astnode_t *node)
 Get the number of clauses from a CYPHER_AST_FOREACH node. More...
 
const cypher_astnode_tcypher_ast_foreach_get_clause (const cypher_astnode_t *node, unsigned int index)
 Get a clause from a CYPHER_AST_FOREACH node. More...
 
cypher_astnode_tcypher_ast_with (bool distinct, bool include_existing, cypher_astnode_t *const *projections, unsigned int nprojections, const cypher_astnode_t *order_by, const cypher_astnode_t *skip, const cypher_astnode_t *limit, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_WITH node. More...
 
bool cypher_ast_with_is_distinct (const cypher_astnode_t *node)
 Check if DISTINCT is present for a CYPHER_AST_WITH node. More...
 
bool cypher_ast_with_has_include_existing (const cypher_astnode_t *node)
 Check if including existing identifiers (*) in a CYPHER_AST_WITH node. More...
 
unsigned int cypher_ast_with_nprojections (const cypher_astnode_t *node)
 Get the number of projections in a CYPHER_AST_WITH node. More...
 
const cypher_astnode_tcypher_ast_with_get_projection (const cypher_astnode_t *node, unsigned int index)
 Get a projection from a CYPHER_AST_WITH node. More...
 
const cypher_astnode_tcypher_ast_with_get_order_by (const cypher_astnode_t *node)
 Get the "order by" node of a CYPHER_AST_WITH node. More...
 
const cypher_astnode_tcypher_ast_with_get_skip (const cypher_astnode_t *node)
 Get the skip value of a CYPHER_AST_WITH node. More...
 
const cypher_astnode_tcypher_ast_with_get_limit (const cypher_astnode_t *node)
 Get the limit value of a CYPHER_AST_WITH node. More...
 
const cypher_astnode_tcypher_ast_with_get_predicate (const cypher_astnode_t *node)
 Get the predicate of a CYPHER_AST_WITH node. More...
 
cypher_astnode_tcypher_ast_unwind (const cypher_astnode_t *expression, const cypher_astnode_t *alias, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_UNWIND node. More...
 
const cypher_astnode_tcypher_ast_unwind_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_UNWIND node. More...
 
const cypher_astnode_tcypher_ast_unwind_get_alias (const cypher_astnode_t *node)
 Get the alias of a CYPHER_AST_UNWIND node. More...
 
cypher_astnode_tcypher_ast_call (const cypher_astnode_t *proc_name, cypher_astnode_t *const *args, unsigned int nargs, cypher_astnode_t *const *projections, unsigned int nprojections, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CALL node. More...
 
const cypher_astnode_tcypher_ast_call_get_proc_name (const cypher_astnode_t *node)
 Get the proc name of a CYPHER_AST_CALL node. More...
 
unsigned int cypher_ast_call_narguments (const cypher_astnode_t *node)
 Get the number of arguments of a CYPHER_AST_CALL node. More...
 
const cypher_astnode_tcypher_ast_call_get_argument (const cypher_astnode_t *node, unsigned int index)
 Get an argument of a CYPHER_AST_CALL node. More...
 
unsigned int cypher_ast_call_nprojections (const cypher_astnode_t *node)
 Get the number of projections of a CYPHER_AST_CALL node. More...
 
const cypher_astnode_tcypher_ast_call_get_projection (const cypher_astnode_t *node, unsigned int index)
 Get a projection of a CYPHER_AST_CALL node. More...
 
cypher_astnode_tcypher_ast_return (bool distinct, bool include_existing, cypher_astnode_t *const *projections, unsigned int nprojections, const cypher_astnode_t *order_by, const cypher_astnode_t *skip, const cypher_astnode_t *limit, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_RETURN node. More...
 
bool cypher_ast_return_is_distinct (const cypher_astnode_t *node)
 Check if DISTINCT is set in a CYPHER_AST_RETURN node. More...
 
bool cypher_ast_return_has_include_existing (const cypher_astnode_t *node)
 Check if including existing identifiers (*) in a CYPHER_AST_RETURN node. More...
 
unsigned int cypher_ast_return_nprojections (const cypher_astnode_t *node)
 Get the number of projections in a CYPHER_AST_RETURN node. More...
 
const cypher_astnode_tcypher_ast_return_get_projection (const cypher_astnode_t *node, unsigned int index)
 Get a projection from a CYPHER_AST_RETURN node. More...
 
const cypher_astnode_tcypher_ast_return_get_order_by (const cypher_astnode_t *node)
 Get the "order by" node of a CYPHER_AST_RETURN node. More...
 
const cypher_astnode_tcypher_ast_return_get_skip (const cypher_astnode_t *node)
 Get the skip value of a CYPHER_AST_RETURN node. More...
 
const cypher_astnode_tcypher_ast_return_get_limit (const cypher_astnode_t *node)
 Get the limit value of a CYPHER_AST_RETURN node. More...
 
cypher_astnode_tcypher_ast_projection (const cypher_astnode_t *expression, const cypher_astnode_t *alias, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_PROJECTION node. More...
 
const cypher_astnode_tcypher_ast_projection_get_expression (const cypher_astnode_t *node)
 Get the expression from a CYPHER_AST_PROJECTION node. More...
 
const cypher_astnode_tcypher_ast_projection_get_alias (const cypher_astnode_t *node)
 Get the alias from a CYPHER_AST_PROJECTION node. More...
 
cypher_astnode_tcypher_ast_order_by (cypher_astnode_t *const *items, unsigned int nitems, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_ORDER_BY node. More...
 
unsigned int cypher_ast_order_by_nitems (const cypher_astnode_t *node)
 Get the number of items in a CYPHER_AST_ORDER_BY node. More...
 
const cypher_astnode_tcypher_ast_order_by_get_item (const cypher_astnode_t *node, unsigned int index)
 Get an item from a CYPHER_AST_ORDER_BY node. More...
 
cypher_astnode_tcypher_ast_sort_item (const cypher_astnode_t *expression, bool ascending, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SORT_ITEM node. More...
 
const cypher_astnode_tcypher_ast_sort_item_get_expression (const cypher_astnode_t *node)
 Get the expression from a CYPHER_AST_SORT_ITEM node. More...
 
bool cypher_ast_sort_item_is_ascending (const cypher_astnode_t *node)
 Check if a CYPHER_AST_SORT_ITEM node is using ascending order. More...
 
cypher_astnode_tcypher_ast_union (bool all, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_UNION node. More...
 
bool cypher_ast_union_has_all (const cypher_astnode_t *node)
 Check if a CYPHER_AST_UNION node has ALL specified. More...
 
cypher_astnode_tcypher_ast_unary_operator (const cypher_operator_t *op, const cypher_astnode_t *arg, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_UNARY_OPERATOR node. More...
 
const cypher_operator_tcypher_ast_unary_operator_get_operator (const cypher_astnode_t *node)
 Get the operator of a CYPHER_AST_UNARY_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_unary_operator_get_argument (const cypher_astnode_t *node)
 Get the argument of a CYPHER_AST_UNARY_OPERATOR node. More...
 
cypher_astnode_tcypher_ast_binary_operator (const cypher_operator_t *op, const cypher_astnode_t *arg1, const cypher_astnode_t *arg2, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_BINARY_OPERATOR node. More...
 
const cypher_operator_tcypher_ast_binary_operator_get_operator (const cypher_astnode_t *node)
 Get the operator of a CYPHER_AST_BINARY_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_binary_operator_get_argument1 (const cypher_astnode_t *node)
 Get the first (left) argument of a CYPHER_AST_BINARY_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_binary_operator_get_argument2 (const cypher_astnode_t *node)
 Get the second (right) argument of a CYPHER_AST_BINARY_OPERATOR node. More...
 
cypher_astnode_tcypher_ast_comparison (unsigned int length, const cypher_operator_t *const *ops, cypher_astnode_t *const *args, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_COMPARISON node. More...
 
unsigned int cypher_ast_comparison_get_length (const cypher_astnode_t *node)
 Get the comparsion chain length of a CYPHER_AST_COMPARISON node. More...
 
const cypher_operator_tcypher_ast_comparison_get_operator (const cypher_astnode_t *node, unsigned int pos)
 Get an operator in the chain of a CYPHER_AST_COMPARISON node. More...
 
const cypher_astnode_tcypher_ast_comparison_get_argument (const cypher_astnode_t *node, unsigned int pos)
 Get the argument in the chain of a CYPHER_AST_COMPARISON node. More...
 
cypher_astnode_tcypher_ast_apply_operator (const cypher_astnode_t *func_name, bool distinct, cypher_astnode_t *const *args, unsigned int nargs, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_APPLY_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_apply_operator_get_func_name (const cypher_astnode_t *node)
 Get the function name of a CYPHER_AST_APPLY_OPERATOR node. More...
 
bool cypher_ast_apply_operator_get_distinct (const cypher_astnode_t *node)
 Check if a CYPHER_AST_APPLY_OPERATOR node is DISTINCT. More...
 
unsigned int cypher_ast_apply_operator_narguments (const cypher_astnode_t *node)
 Get the number of arguments of a CYPHER_AST_APPLY_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_apply_operator_get_argument (const cypher_astnode_t *node, unsigned int index)
 Get an argument of a CYPHER_AST_APPLY_OPERATOR node. More...
 
cypher_astnode_tcypher_ast_apply_all_operator (const cypher_astnode_t *func_name, bool distinct, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_APPLY_ALL_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_apply_all_operator_get_func_name (const cypher_astnode_t *node)
 Get the function name of a CYPHER_AST_APPLY_ALL_OPERATOR node. More...
 
bool cypher_ast_apply_all_operator_get_distinct (const cypher_astnode_t *node)
 Check if a CYPHER_AST_APPLY_ALL_OPERATOR node is DISTINCT. More...
 
cypher_astnode_tcypher_ast_property_operator (const cypher_astnode_t *expression, const cypher_astnode_t *prop_name, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_PROPERTY_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_property_operator_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_PROPERTY_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_property_operator_get_prop_name (const cypher_astnode_t *node)
 Get the property name of a CYPHER_AST_PROPERTY_OPERATOR node. More...
 
cypher_astnode_tcypher_ast_subscript_operator (const cypher_astnode_t *expression, const cypher_astnode_t *subscript, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SUBSCRIPT_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_subscript_operator_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_SUBSCRIPT_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_subscript_operator_get_subscript (const cypher_astnode_t *node)
 Get the subscript of a CYPHER_AST_SUBSCRIPT_OPERATOR node. More...
 
cypher_astnode_tcypher_ast_slice_operator (const cypher_astnode_t *expression, const cypher_astnode_t *start, const cypher_astnode_t *end, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SLICE_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_slice_operator_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_SLICE_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_slice_operator_get_start (const cypher_astnode_t *node)
 Get the start of a CYPHER_AST_SLICE_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_slice_operator_get_end (const cypher_astnode_t *node)
 Get the end of a CYPHER_AST_SLICE_OPERATOR node. More...
 
cypher_astnode_tcypher_ast_map_projection (const cypher_astnode_t *expression, cypher_astnode_t *const *selectors, unsigned int nselectors, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MAP_PROJECTION node. More...
 
const cypher_astnode_tcypher_ast_map_projection_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_MAP_PROJECTION node. More...
 
unsigned int cypher_ast_map_projection_nselectors (const cypher_astnode_t *node)
 Get the number of selectors in a CYPHER_AST_MAP_PROJECTION node. More...
 
const cypher_astnode_tcypher_ast_map_projection_get_selector (const cypher_astnode_t *node, unsigned int index)
 Get a selector from a CYPHER_AST_MAP_PROJECTION node. More...
 
cypher_astnode_tcypher_ast_map_projection_literal (const cypher_astnode_t *prop_name, const cypher_astnode_t *expression, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MAP_PROJECTION_LITERAL node. More...
 
const cypher_astnode_tcypher_ast_map_projection_literal_get_prop_name (const cypher_astnode_t *node)
 Get the property name of a CYPHER_AST_MAP_PROJECTION_LITERAL node. More...
 
const cypher_astnode_tcypher_ast_map_projection_literal_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_MAP_PROJECTION_LITERAL node. More...
 
cypher_astnode_tcypher_ast_map_projection_property (const cypher_astnode_t *prop_name, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MAP_PROJECTION_PROPERTY node. More...
 
const cypher_astnode_tcypher_ast_map_projection_property_get_prop_name (const cypher_astnode_t *node)
 Get the property name of a CYPHER_AST_MAP_PROJECTION_PROPERTY node. More...
 
cypher_astnode_tcypher_ast_map_projection_identifier (const cypher_astnode_t *identifier, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MAP_PROJECTION_IDENTIFIER node. More...
 
const cypher_astnode_tcypher_ast_map_projection_identifier_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_MAP_PROJECTION_IDENTIFIER node. More...
 
cypher_astnode_tcypher_ast_map_projection_all_properties (cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MAP_PROJECTION_ALL_PROPERTIES node. More...
 
cypher_astnode_tcypher_ast_labels_operator (const cypher_astnode_t *expression, cypher_astnode_t *const *labels, unsigned int nlabels, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_LABELS_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_labels_operator_get_expression (const cypher_astnode_t *node)
 Get the expression of a CYPHER_AST_PROPERTY_OPERATOR node. More...
 
unsigned int cypher_ast_labels_operator_nlabels (const cypher_astnode_t *node)
 Get the number of labels from a CYPHER_AST_LABELS_OPERATOR node. More...
 
const cypher_astnode_tcypher_ast_labels_operator_get_label (const cypher_astnode_t *node, unsigned int index)
 Get a label from a CYPHER_AST_LABELS_OPERATOR node. More...
 
cypher_astnode_tcypher_ast_list_comprehension (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *predicate, const cypher_astnode_t *eval, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_LIST_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_list_comprehension_get_identifier (const cypher_astnode_t *node)
 Get the identifier from a CYPHER_AST_LIST_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_list_comprehension_get_expression (const cypher_astnode_t *node)
 Get the expression from a CYPHER_AST_LIST_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_list_comprehension_get_predicate (const cypher_astnode_t *node)
 Get the predicate from a CYPHER_AST_LIST_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_list_comprehension_get_eval (const cypher_astnode_t *node)
 Get the evaluation from a CYPHER_AST_LIST_COMPREHENSION node. More...
 
cypher_astnode_tcypher_ast_filter (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_FILTER node. More...
 
cypher_astnode_tcypher_ast_extract (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *eval, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_EXTRACT node. More...
 
cypher_astnode_tcypher_ast_all (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_ALL node. More...
 
cypher_astnode_tcypher_ast_any (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_ANY node. More...
 
cypher_astnode_tcypher_ast_single (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SINGLE node. More...
 
cypher_astnode_tcypher_ast_none (const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *predicate, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_NONE node. More...
 
cypher_astnode_tcypher_ast_pattern_comprehension (const cypher_astnode_t *identifier, const cypher_astnode_t *pattern, const cypher_astnode_t *predicate, const cypher_astnode_t *eval, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_PATTERN_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_pattern_comprehension_get_identifier (const cypher_astnode_t *node)
 Get the identifier from a CYPHER_AST_PATTERN_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_pattern_comprehension_get_pattern (const cypher_astnode_t *node)
 Get the expression from a CYPHER_AST_PATTERN_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_pattern_comprehension_get_predicate (const cypher_astnode_t *node)
 Get the predicate from a CYPHER_AST_PATTERN_COMPREHENSION node. More...
 
const cypher_astnode_tcypher_ast_pattern_comprehension_get_eval (const cypher_astnode_t *node)
 Get the evaluation from a CYPHER_AST_PATTERN_COMPREHENSION node. More...
 
cypher_astnode_tcypher_ast_reduce (const cypher_astnode_t *accumulator, const cypher_astnode_t *init, const cypher_astnode_t *identifier, const cypher_astnode_t *expression, const cypher_astnode_t *eval, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REDUCE node. More...
 
const cypher_astnode_tcypher_ast_reduce_get_accumulator (const cypher_astnode_t *node)
 Get the accumulator from a CYPHER_AST_REDUCE node. More...
 
const cypher_astnode_tcypher_ast_reduce_get_init (const cypher_astnode_t *node)
 Get the accumulator init expression from a CYPHER_AST_REDUCE node. More...
 
const cypher_astnode_tcypher_ast_reduce_get_identifier (const cypher_astnode_t *node)
 Get the identifier from a CYPHER_AST_REDUCE node. More...
 
const cypher_astnode_tcypher_ast_reduce_get_expression (const cypher_astnode_t *node)
 Get the expression from a CYPHER_AST_REDUCE node. More...
 
const cypher_astnode_tcypher_ast_reduce_get_eval (const cypher_astnode_t *node)
 Get the evaluation from a CYPHER_AST_REDUCE node. More...
 
cypher_astnode_tcypher_ast_case (const cypher_astnode_t *expression, cypher_astnode_t *const *alternatives, unsigned int nalternatives, const cypher_astnode_t *deflt, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_CASE node. More...
 
const cypher_astnode_tcypher_ast_case_get_expression (const cypher_astnode_t *node)
 Get the expression from a CYPHER_AST_CASE node. More...
 
unsigned int cypher_ast_case_nalternatives (const cypher_astnode_t *node)
 Get the number of alternatives from a CYPHER_AST_CASE node. More...
 
const cypher_astnode_tcypher_ast_case_get_predicate (const cypher_astnode_t *node, unsigned int index)
 Get a predicate from a CYPHER_AST_CASE node. More...
 
const cypher_astnode_tcypher_ast_case_get_value (const cypher_astnode_t *node, unsigned int index)
 Get a value from a CYPHER_AST_CASE node. More...
 
const cypher_astnode_tcypher_ast_case_get_default (const cypher_astnode_t *node)
 Get the default from a CYPHER_AST_CASE node. More...
 
cypher_astnode_tcypher_ast_collection (cypher_astnode_t *const *elements, unsigned int nelements, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_COLLECTION node. More...
 
unsigned int cypher_ast_collection_length (const cypher_astnode_t *node)
 Get the collection length from a CYPHER_AST_COLLECTION node. More...
 
const cypher_astnode_tcypher_ast_collection_get (const cypher_astnode_t *node, unsigned int index)
 Get an element from a CYPHER_AST_COLLECTION node. More...
 
cypher_astnode_tcypher_ast_map (cypher_astnode_t *const *keys, cypher_astnode_t *const *values, unsigned int nentries, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MAP node. More...
 
cypher_astnode_tcypher_ast_pair_map (cypher_astnode_t *const *pairs, unsigned int nentries, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_MAP node. More...
 
unsigned int cypher_ast_map_nentries (const cypher_astnode_t *node)
 Get the number of entries in a CYPHER_AST_MAP node. More...
 
const cypher_astnode_tcypher_ast_map_get_key (const cypher_astnode_t *node, unsigned int index)
 Get a key from a CYPHER_AST_MAP node. More...
 
const cypher_astnode_tcypher_ast_map_get_value (const cypher_astnode_t *node, unsigned int index)
 Get a value from a CYPHER_AST_MAP node. More...
 
cypher_astnode_tcypher_ast_identifier (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_IDENTIFIER node. More...
 
const char * cypher_ast_identifier_get_name (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_IDENTIFIER node. More...
 
cypher_astnode_tcypher_ast_parameter (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_PARAMETER node. More...
 
const char * cypher_ast_parameter_get_name (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_PARAMETER node. More...
 
cypher_astnode_tcypher_ast_string (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_STRING node. More...
 
const char * cypher_ast_string_get_value (const cypher_astnode_t *node)
 Get the null terminated string value from a CYPHER_AST_STRING node. More...
 
cypher_astnode_tcypher_ast_integer (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_INTEGER node. More...
 
const char * cypher_ast_integer_get_valuestr (const cypher_astnode_t *node)
 Get the null terminated string value from a CYPHER_AST_INTEGER node. More...
 
cypher_astnode_tcypher_ast_float (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_FLOAT node. More...
 
const char * cypher_ast_float_get_valuestr (const cypher_astnode_t *node)
 Get the null terminated string value from a CYPHER_AST_FLOAT node. More...
 
cypher_astnode_tcypher_ast_true (struct cypher_input_range range)
 Construct a CYPHER_AST_TRUE node. More...
 
cypher_astnode_tcypher_ast_false (struct cypher_input_range range)
 Construct a CYPHER_AST_FALSE node. More...
 
cypher_astnode_tcypher_ast_null (struct cypher_input_range range)
 Construct a CYPHER_AST_NULL node. More...
 
cypher_astnode_tcypher_ast_label (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_LABEL node. More...
 
const char * cypher_ast_label_get_name (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_LABEL node. More...
 
cypher_astnode_tcypher_ast_reltype (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_RELTYPE node. More...
 
const char * cypher_ast_reltype_get_name (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_RELTYPE node. More...
 
cypher_astnode_tcypher_ast_prop_name (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_PROP_NAME node. More...
 
const char * cypher_ast_prop_name_get_value (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_PROP_NAME node. More...
 
cypher_astnode_tcypher_ast_function_name (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_FUNCTION_NAME node. More...
 
const char * cypher_ast_function_name_get_value (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_FUNCTION_NAME node. More...
 
cypher_astnode_tcypher_ast_index_name (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_INDEX_NAME node. More...
 
const char * cypher_ast_index_name_get_value (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_INDEX_NAME node. More...
 
cypher_astnode_tcypher_ast_proc_name (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_PROC_NAME node. More...
 
const char * cypher_ast_proc_name_get_value (const cypher_astnode_t *node)
 Get a null terminated name string for a CYPHER_AST_PROC_NAME node. More...
 
cypher_astnode_tcypher_ast_pattern (cypher_astnode_t *const *paths, unsigned int npaths, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_PATTERN node. More...
 
unsigned int cypher_ast_pattern_npaths (const cypher_astnode_t *node)
 Get the number of paths in a CYPHER_AST_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_pattern_get_path (const cypher_astnode_t *node, unsigned int index)
 Get a path from a CYPHER_AST_PATTERN node. More...
 
cypher_astnode_tcypher_ast_named_path (const cypher_astnode_t *identifier, const cypher_astnode_t *path, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_NAMED_PATH node. More...
 
const cypher_astnode_tcypher_ast_named_path_get_identifier (const cypher_astnode_t *node)
 Get the identifier from a CYPHER_AST_NAMED_PATH node. More...
 
const cypher_astnode_tcypher_ast_named_path_get_path (const cypher_astnode_t *node)
 Get the unnamed pattern path from a CYPHER_AST_NAMED_PATH node. More...
 
cypher_astnode_tcypher_ast_shortest_path (bool single, const cypher_astnode_t *path, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_SHORTEST_PATH node. More...
 
bool cypher_ast_shortest_path_is_single (const cypher_astnode_t *node)
 Check if a CYPHER_AST_SHORTEST_PATH node is for a single path. More...
 
const cypher_astnode_tcypher_ast_shortest_path_get_path (const cypher_astnode_t *node)
 Get the unnamed pattern path from a CYPHER_AST_SHORTEST_PATH node. More...
 
cypher_astnode_tcypher_ast_pattern_path (cypher_astnode_t *const *elements, unsigned int nelements, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_PATTERN_PATH node. More...
 
unsigned int cypher_ast_pattern_path_nelements (const cypher_astnode_t *node)
 Get the number of elements in a CYPHER_AST_PATTERN_PATH node. More...
 
const cypher_astnode_tcypher_ast_pattern_path_get_element (const cypher_astnode_t *node, unsigned int index)
 Get an element from a CYPHER_AST_PATTERN_PATH node. More...
 
cypher_astnode_tcypher_ast_node_pattern (const cypher_astnode_t *identifier, cypher_astnode_t *const *labels, unsigned int nlabels, const cypher_astnode_t *properties, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_NODE_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_node_pattern_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_NODE_PATTERN node. More...
 
unsigned int cypher_ast_node_pattern_nlabels (const cypher_astnode_t *node)
 Get the number of labels in a CYPHER_AST_NODE_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_node_pattern_get_label (const cypher_astnode_t *node, unsigned int index)
 Get a label from a CYPHER_AST_NODE_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_node_pattern_get_properties (const cypher_astnode_t *node)
 Get the properties of a CYPHER_AST_NODE_PATTERN node. More...
 
cypher_astnode_tcypher_ast_rel_pattern (enum cypher_rel_direction direction, const cypher_astnode_t *identifier, cypher_astnode_t *const *reltypes, unsigned int nreltypes, const cypher_astnode_t *properties, const cypher_astnode_t *varlength, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_REL_PATTERN node. More...
 
enum cypher_rel_direction cypher_ast_rel_pattern_get_direction (const cypher_astnode_t *node)
 Get the direction of a CYPHER_AST_REL_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_rel_pattern_get_identifier (const cypher_astnode_t *node)
 Get the identifier of a CYPHER_AST_REL_PATTERN node. More...
 
unsigned int cypher_ast_rel_pattern_nreltypes (const cypher_astnode_t *node)
 Get the number of reltypes in a CYPHER_AST_REL_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_rel_pattern_get_reltype (const cypher_astnode_t *node, unsigned int index)
 Get a reltypes from a CYPHER_AST_REL_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_rel_pattern_get_varlength (const cypher_astnode_t *node)
 Get the varlength range of a CYPHER_AST_REL_PATTERN node. More...
 
const cypher_astnode_tcypher_ast_rel_pattern_get_properties (const cypher_astnode_t *node)
 Get the properties of a CYPHER_AST_REL_PATTERN node. More...
 
cypher_astnode_tcypher_ast_range (const cypher_astnode_t *start, const cypher_astnode_t *end, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_RANGE node. More...
 
const cypher_astnode_tcypher_ast_range_get_start (const cypher_astnode_t *node)
 Get the start of a CYPHER_AST_RANGE node. More...
 
const cypher_astnode_tcypher_ast_range_get_end (const cypher_astnode_t *node)
 Get the end of a CYPHER_AST_RANGE node. More...
 
cypher_astnode_tcypher_ast_command (const cypher_astnode_t *name, cypher_astnode_t *const *args, unsigned int nargs, cypher_astnode_t **children, unsigned int nchildren, struct cypher_input_range range)
 Construct a CYPHER_AST_COMMAND node. More...
 
const cypher_astnode_tcypher_ast_command_get_name (const cypher_astnode_t *node)
 Get the name from a CYPHER_AST_COMMAND node. More...
 
unsigned int cypher_ast_command_narguments (const cypher_astnode_t *node)
 Get the number of arguments from a CYPHER_AST_COMMAND node. More...
 
const cypher_astnode_tcypher_ast_command_get_argument (const cypher_astnode_t *node, unsigned int index)
 Get an argument from a CYPHER_AST_COMMAND node. More...
 
cypher_astnode_tcypher_ast_line_comment (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_LINE_COMMENT node. More...
 
const char * cypher_ast_line_comment_get_value (const cypher_astnode_t *node)
 Get a null terminated string for a CYPHER_AST_LINE_COMMENT node. More...
 
cypher_astnode_tcypher_ast_block_comment (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_BLOCK_COMMENT node. More...
 
const char * cypher_ast_block_comment_get_value (const cypher_astnode_t *node)
 Get a null terminated string for a CYPHER_AST_BLOCK_COMMENT node. More...
 
cypher_astnode_tcypher_ast_error (const char *s, size_t n, struct cypher_input_range range)
 Construct a CYPHER_AST_ERROR node. More...
 
const char * cypher_ast_error_get_value (const cypher_astnode_t *node)
 Get a null terminated string for a CYPHER_AST_ERROR node. More...
 
void cypher_ast_free (cypher_astnode_t *ast)
 Release an entire AST tree. More...
 
int cypher_ast_fprint (const cypher_astnode_t *ast, FILE *stream, unsigned int width, const struct cypher_parser_colorization *colorization, uint_fast32_t flags)
 Print a represetation of an AST to a stream. More...
 
cypher_parser_config_tcypher_parser_new_config (void)
 Generate a new parser configuration. More...
 
void cypher_parser_config_free (cypher_parser_config_t *config)
 Release a parser configuration. More...
 
void cypher_parser_config_set_initial_position (cypher_parser_config_t *config, struct cypher_input_position position)
 Set the initial input position for parsing. More...
 
void cypher_parser_config_set_initial_ordinal (cypher_parser_config_t *config, unsigned int n)
 Set the initial ordinal for parsing. More...
 
void cypher_parser_config_set_error_colorization (cypher_parser_config_t *config, const struct cypher_parser_colorization *colorization)
 Set the colorization scheme for error messages. More...
 
int cypher_uparse_each (const char *s, size_t n, cypher_parser_segment_callback_t callback, void *userdata, struct cypher_input_position *last, cypher_parser_config_t *config, uint_fast32_t flags)
 Parse segments from a string. More...
 
cypher_parse_result_tcypher_uparse (const char *s, size_t n, struct cypher_input_position *last, cypher_parser_config_t *config, uint_fast32_t flags)
 Parse a statement or command from a string. More...
 
int cypher_fparse_each (FILE *stream, cypher_parser_segment_callback_t callback, void *userdata, struct cypher_input_position *last, cypher_parser_config_t *config, uint_fast32_t flags)
 Parse segments from a stream. More...
 
cypher_parse_result_tcypher_fparse (FILE *stream, struct cypher_input_position *last, cypher_parser_config_t *config, uint_fast32_t flags)
 Parse a statement or command from a stream. More...
 
struct cypher_input_range cypher_parse_segment_get_range (const cypher_parse_segment_t *segment)
 Get the range of a parse segment. More...
 
unsigned int cypher_parse_segment_nerrors (const cypher_parse_segment_t *segment)
 Get the number of errors encountered in a parse segment. More...
 
const cypher_parse_error_tcypher_parse_segment_get_error (const cypher_parse_segment_t *segment, unsigned int index)
 Get an error from a parse segment. More...
 
unsigned int cypher_parse_segment_nroots (const cypher_parse_segment_t *segment)
 Get the number of root AST nodes parsed in a segment. More...
 
const cypher_astnode_tcypher_parse_segment_get_root (const cypher_parse_segment_t *segment, unsigned int index)
 Get a root AST node from a parse segment. More...
 
unsigned int cypher_parse_segment_nnodes (const cypher_parse_segment_t *segment)
 Get the total number of AST nodes parsed in a segment. More...
 
const cypher_astnode_tcypher_parse_segment_get_directive (const cypher_parse_segment_t *segment)
 Get the statement or client command parsed in a segment. More...
 
bool cypher_parse_segment_is_eof (const cypher_parse_segment_t *segment)
 Check if the parse encountered the end of the input. More...
 
int cypher_parse_segment_fprint_ast (const cypher_parse_segment_t *segment, FILE *stream, unsigned int width, const struct cypher_parser_colorization *colorization, uint_fast32_t flags)
 Print a represetation of the AST from a parse segment to a stream. More...
 
void cypher_parse_segment_retain (cypher_parse_segment_t *segment)
 Retain a reference to a parse segment. More...
 
void cypher_parse_segment_release (cypher_parse_segment_t *segment)
 Release a reference to a parse segment. More...
 
unsigned int cypher_parse_result_nroots (const cypher_parse_result_t *result)
 Get the number of root AST nodes parsed. More...
 
const cypher_astnode_tcypher_parse_result_get_root (const cypher_parse_result_t *result, unsigned int index)
 Get a root AST nodes from a parse result. More...
 
unsigned int cypher_parse_result_nnodes (const cypher_parse_result_t *result)
 Get the total number of AST nodes parsed. More...
 
unsigned int cypher_parse_result_ndirectives (const cypher_parse_result_t *result)
 Get the number of statements or commands parsed. More...
 
const cypher_astnode_tcypher_parse_result_get_directive (const cypher_parse_result_t *result, unsigned int index)
 Get the AST for a parsed statement or command from a parse result. More...
 
unsigned int cypher_parse_result_nerrors (const cypher_parse_result_t *result)
 Get the number of errors encountered during parsing. More...
 
const cypher_parse_error_tcypher_parse_result_get_error (const cypher_parse_result_t *result, unsigned int index)
 Get an error description from a parse result. More...
 
bool cypher_parse_result_eof (const cypher_parse_result_t *result)
 Check if the parse encountered the end of the input. More...
 
int cypher_parse_result_fprint_ast (const cypher_parse_result_t *result, FILE *stream, unsigned int width, const struct cypher_parser_colorization *colorization, uint_fast32_t flags)
 Print a represetation of a parse result to a stream. More...
 
void cypher_parse_result_free (cypher_parse_result_t *result)
 Free memory associated with a parse result. More...
 
struct cypher_input_position cypher_parse_error_position (const cypher_parse_error_t *error)
 Get the position of an error. More...
 
const char * cypher_parse_error_message (const cypher_parse_error_t *error)
 Get the error message of an error. More...
 
const char * cypher_parse_error_context (const cypher_parse_error_t *error)
 Get the error context of an error. More...
 
size_t cypher_parse_error_context_offset (const cypher_parse_error_t *error)
 Get the offset into the context of an error. More...
 
int cypher_quick_uparse (const char *s, size_t n, cypher_parser_quick_segment_callback_t callback, void *userdata, uint_fast32_t flags)
 Quick parse segments from a string. More...
 
int cypher_quick_fparse (FILE *stream, cypher_parser_quick_segment_callback_t callback, void *userdata, uint_fast32_t flags)
 Quick parse a statement or command from a stream. More...
 
bool cypher_quick_parse_segment_is_statement (const cypher_quick_parse_segment_t *segment)
 Check if the quick parse segment is for a statement. More...
 
bool cypher_quick_parse_segment_is_command (const cypher_quick_parse_segment_t *segment)
 Check if the quick parse segment is for a command. More...
 
const char * cypher_quick_parse_segment_get_text (const cypher_quick_parse_segment_t *segment, size_t *n)
 Get the character string of a segment. More...
 
struct cypher_input_range cypher_quick_parse_segment_get_range (const cypher_quick_parse_segment_t *segment)
 Get the range of a quick parse segment. More...
 
struct cypher_input_position cypher_quick_parse_segment_get_next (const cypher_quick_parse_segment_t *segment)
 Get the next input position that will be parsed. More...
 
bool cypher_quick_parse_segment_is_eof (const cypher_quick_parse_segment_t *segment)
 Check if the quick parse encountered the end of the input. More...
 
int cypher_parse_each (const char *s, cypher_parser_segment_callback_t callback, void *userdata, struct cypher_input_position *last, cypher_parser_config_t *config, uint_fast32_t flags)
 Parse segments from a string. More...
 
cypher_parse_result_tcypher_parse (const char *s, struct cypher_input_position *last, cypher_parser_config_t *config, uint_fast32_t flags)
 Parse a command or statement from a string. More...
 
int cypher_quick_parse (const char *s, cypher_parser_quick_segment_callback_t callback, void *userdata, uint_fast32_t flags)
 Quick parse segments from a string. More...
 

Variables

const struct cypher_parser_colorization * cypher_parser_no_colorization
 Colorization rules for uncolorized output. More...
 
const struct cypher_parser_colorization * cypher_parser_ansi_colorization
 Colorization rules for ANSI terminal output. More...
 
const cypher_astnode_type_t CYPHER_AST_STATEMENT
 Type for an AST statement node. More...
 
const cypher_astnode_type_t CYPHER_AST_STATEMENT_OPTION
 Type for an AST statement option node. More...
 
const cypher_astnode_type_t CYPHER_AST_CYPHER_OPTION
 Type for an AST CYPHER option node. More...
 
const cypher_astnode_type_t CYPHER_AST_CYPHER_OPTION_PARAM
 Type for an AST CYPHER option parameter node. More...
 
const cypher_astnode_type_t CYPHER_AST_EXPLAIN_OPTION
 Type for an AST EXPLAIN option node. More...
 
const cypher_astnode_type_t CYPHER_AST_PROFILE_OPTION
 Type for an AST PROFILE option node. More...
 
const cypher_astnode_type_t CYPHER_AST_SCHEMA_COMMAND
 Type for an AST schema command node. More...
 
const cypher_astnode_type_t CYPHER_AST_CREATE_NODE_PROP_INDEX
 Type for an AST CREATE INDEX node. More...
 
const cypher_astnode_type_t CYPHER_AST_DROP_NODE_PROP_INDEX
 Type for an AST DROP INDEX node. More...
 
const cypher_astnode_type_t CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT
 Type for an AST create node property constraint node. More...
 
const cypher_astnode_type_t CYPHER_AST_DROP_NODE_PROP_CONSTRAINT
 Type for an AST drop node property constraint node. More...
 
const cypher_astnode_type_t CYPHER_AST_CREATE_REL_PROP_CONSTRAINT
 Type for an AST create rel property constraint node. More...
 
const cypher_astnode_type_t CYPHER_AST_DROP_REL_PROP_CONSTRAINT
 Type for an AST drop rel property constraint node. More...
 
const cypher_astnode_type_t CYPHER_AST_QUERY
 Type for an AST query node. More...
 
const cypher_astnode_type_t CYPHER_AST_QUERY_OPTION
 Type for an AST query option node. More...
 
const cypher_astnode_type_t CYPHER_AST_USING_PERIODIC_COMMIT
 Type for an AST USING PERIODIC COMMIT clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_QUERY_CLAUSE
 Type for an AST query clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_LOAD_CSV
 Type for an AST LOAD CSV clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_START
 Type for an AST START clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_START_POINT
 Type for an AST start point node. More...
 
const cypher_astnode_type_t CYPHER_AST_NODE_INDEX_LOOKUP
 Type for an AST node-index lookup node. More...
 
const cypher_astnode_type_t CYPHER_AST_NODE_INDEX_QUERY
 Type for an AST node-index query node. More...
 
const cypher_astnode_type_t CYPHER_AST_NODE_ID_LOOKUP
 Type for an AST node-by-id-lookup node. More...
 
const cypher_astnode_type_t CYPHER_AST_ALL_NODES_SCAN
 Type for an AST all-nodes-scan node. More...
 
const cypher_astnode_type_t CYPHER_AST_REL_INDEX_LOOKUP
 Type for an AST rel-index lookup node. More...
 
const cypher_astnode_type_t CYPHER_AST_REL_INDEX_QUERY
 Type for an AST rel-index query node. More...
 
const cypher_astnode_type_t CYPHER_AST_REL_ID_LOOKUP
 Type for an AST rel-by-id-lookup node. More...
 
const cypher_astnode_type_t CYPHER_AST_ALL_RELS_SCAN
 Type for an AST all-rels-scan node. More...
 
const cypher_astnode_type_t CYPHER_AST_MATCH
 Type for an AST MATCH clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_MATCH_HINT
 Type for an AST match hint node. More...
 
const cypher_astnode_type_t CYPHER_AST_USING_INDEX
 Type for an AST USING INDEX hint node. More...
 
const cypher_astnode_type_t CYPHER_AST_USING_JOIN
 Type for an AST USING JOIN ON hint node. More...
 
const cypher_astnode_type_t CYPHER_AST_USING_SCAN
 Type for an AST USING SCAN hint node. More...
 
const cypher_astnode_type_t CYPHER_AST_MERGE
 Type for an AST MERGE clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_MERGE_ACTION
 Type for an AST merge action node. More...
 
const cypher_astnode_type_t CYPHER_AST_ON_MATCH
 Type for an AST ON MATCH action node. More...
 
const cypher_astnode_type_t CYPHER_AST_ON_CREATE
 Type for an AST ON CREATE action node. More...
 
const cypher_astnode_type_t CYPHER_AST_CREATE
 Type for an AST CREATE clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_SET
 Type for an AST SET clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_SET_ITEM
 Type for an AST set item node. More...
 
const cypher_astnode_type_t CYPHER_AST_SET_PROPERTY
 Type for an AST set property node. More...
 
const cypher_astnode_type_t CYPHER_AST_SET_ALL_PROPERTIES
 Type for an AST set all properties node. More...
 
const cypher_astnode_type_t CYPHER_AST_MERGE_PROPERTIES
 Type for an AST merge properties node. More...
 
const cypher_astnode_type_t CYPHER_AST_SET_LABELS
 Type for an AST set labels node. More...
 
const cypher_astnode_type_t CYPHER_AST_DELETE
 Type for an AST DELETE clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_REMOVE
 Type for an AST REMOVE clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_REMOVE_ITEM
 Type for an AST remove item node. More...
 
const cypher_astnode_type_t CYPHER_AST_REMOVE_LABELS
 Type for an AST remove labels node. More...
 
const cypher_astnode_type_t CYPHER_AST_REMOVE_PROPERTY
 Type for an AST remove property node. More...
 
const cypher_astnode_type_t CYPHER_AST_FOREACH
 Type for an AST FOREACH clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_WITH
 Type for an AST WITH clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_UNWIND
 Type for an AST UNWIND clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_CALL
 Type for an AST CALL clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_RETURN
 Type for an AST RETURN clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_PROJECTION
 Type for an AST projection node. More...
 
const cypher_astnode_type_t CYPHER_AST_ORDER_BY
 Type for an AST ORDER BY node. More...
 
const cypher_astnode_type_t CYPHER_AST_SORT_ITEM
 Type for an AST sort item node. More...
 
const cypher_astnode_type_t CYPHER_AST_UNION
 Type for an AST UNION clause node. More...
 
const cypher_astnode_type_t CYPHER_AST_EXPRESSION
 Type for an AST expression node. More...
 
const cypher_astnode_type_t CYPHER_AST_UNARY_OPERATOR
 Type for an AST unary operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_BINARY_OPERATOR
 Type for an AST binary operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_COMPARISON
 Type for an AST n-ary comparison operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_APPLY_OPERATOR
 Type for an AST apply operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_APPLY_ALL_OPERATOR
 Type for an AST apply * operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_PROPERTY_OPERATOR
 Type for an AST property operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_SUBSCRIPT_OPERATOR
 Type for an AST subscript operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_SLICE_OPERATOR
 Type for an AST slice operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_MAP_PROJECTION
 Type for an AST map projection operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_MAP_PROJECTION_SELECTOR
 Type for an AST map projection selector node. More...
 
const cypher_astnode_type_t CYPHER_AST_MAP_PROJECTION_LITERAL
 Type for an AST map projection literal entry node. More...
 
const cypher_astnode_type_t CYPHER_AST_MAP_PROJECTION_PROPERTY
 Type for an AST map projection property entry node. More...
 
const cypher_astnode_type_t CYPHER_AST_MAP_PROJECTION_IDENTIFIER
 Type for an AST map projection identifier entry node. More...
 
const cypher_astnode_type_t CYPHER_AST_MAP_PROJECTION_ALL_PROPERTIES
 Type for an AST map projection all properties entry node. More...
 
const cypher_astnode_type_t CYPHER_AST_LABELS_OPERATOR
 Type for an AST label check operator node. More...
 
const cypher_astnode_type_t CYPHER_AST_LIST_COMPREHENSION
 Type for an AST list comprehension node. More...
 
const cypher_astnode_type_t CYPHER_AST_PATTERN_COMPREHENSION
 Type for an AST pattern comprehension node. More...
 
const cypher_astnode_type_t CYPHER_AST_CASE
 Type for an AST CASE expression node. More...
 
const cypher_astnode_type_t CYPHER_AST_FILTER
 Type for an AST filter expression node. More...
 
const cypher_astnode_type_t CYPHER_AST_EXTRACT
 Type for an AST extract expression node. More...
 
const cypher_astnode_type_t CYPHER_AST_REDUCE
 Type for an AST reduce expression node. More...
 
const cypher_astnode_type_t CYPHER_AST_ALL
 Type for an AST all predicate node. More...
 
const cypher_astnode_type_t CYPHER_AST_ANY
 Type for an AST any predicate node. More...
 
const cypher_astnode_type_t CYPHER_AST_SINGLE
 Type for an AST single predicate node. More...
 
const cypher_astnode_type_t CYPHER_AST_NONE
 Type for an AST none predicate node. More...
 
const cypher_astnode_type_t CYPHER_AST_COLLECTION
 Type for an AST collection node. More...
 
const cypher_astnode_type_t CYPHER_AST_MAP
 Type for an AST literal map node. More...
 
const cypher_astnode_type_t CYPHER_AST_IDENTIFIER
 Type for an AST identifier node. More...
 
const cypher_astnode_type_t CYPHER_AST_PARAMETER
 Type for an AST parameter node. More...
 
const cypher_astnode_type_t CYPHER_AST_STRING
 Type for an AST string literal node. More...
 
const cypher_astnode_type_t CYPHER_AST_INTEGER
 Type for an AST integer literal node. More...
 
const cypher_astnode_type_t CYPHER_AST_FLOAT
 Type for an AST float literal node. More...
 
const cypher_astnode_type_t CYPHER_AST_BOOLEAN
 Type for an AST boolean literal node. More...
 
const cypher_astnode_type_t CYPHER_AST_TRUE
 Type for an AST TRUE literal node. More...
 
const cypher_astnode_type_t CYPHER_AST_FALSE
 Type for an AST FALSE literal node. More...
 
const cypher_astnode_type_t CYPHER_AST_NULL
 Type for an AST NULL literal node. More...
 
const cypher_astnode_type_t CYPHER_AST_LABEL
 Type for an AST label node. More...
 
const cypher_astnode_type_t CYPHER_AST_RELTYPE
 Type for an AST reltype node. More...
 
const cypher_astnode_type_t CYPHER_AST_PROP_NAME
 Type for an AST prop name node. More...
 
const cypher_astnode_type_t CYPHER_AST_FUNCTION_NAME
 Type for an AST function name node. More...
 
const cypher_astnode_type_t CYPHER_AST_INDEX_NAME
 Type for an AST index name node. More...
 
const cypher_astnode_type_t CYPHER_AST_PROC_NAME
 Type for an AST procedure name node. More...
 
const cypher_astnode_type_t CYPHER_AST_PATTERN
 Type for an AST pattern node. More...
 
const cypher_astnode_type_t CYPHER_AST_NAMED_PATH
 Type for an AST named pattern path node. More...
 
const cypher_astnode_type_t CYPHER_AST_SHORTEST_PATH
 Type for an AST shortestPath node. More...
 
const cypher_astnode_type_t CYPHER_AST_PATTERN_PATH
 Type for an AST pattern path node. More...
 
const cypher_astnode_type_t CYPHER_AST_NODE_PATTERN
 Type for an AST node pattern node. More...
 
const cypher_astnode_type_t CYPHER_AST_REL_PATTERN
 Type for an AST relationship pattern node. More...
 
const cypher_astnode_type_t CYPHER_AST_RANGE
 Type for an AST range node. More...
 
const cypher_astnode_type_t CYPHER_AST_COMMAND
 Type for an AST command node. More...
 
const cypher_astnode_type_t CYPHER_AST_COMMENT
 Type for an AST comment node. More...
 
const cypher_astnode_type_t CYPHER_AST_LINE_COMMENT
 Type for an AST line comment node. More...
 
const cypher_astnode_type_t CYPHER_AST_BLOCK_COMMENT
 Type for an AST block comment node. More...
 
const cypher_astnode_type_t CYPHER_AST_ERROR
 Type for an AST error node. More...
 
const cypher_operator_tCYPHER_OP_OR
 The infix binary OR operator. More...
 
const cypher_operator_tCYPHER_OP_XOR
 The infix binary XOR operator. More...
 
const cypher_operator_tCYPHER_OP_AND
 The infix binary AND operator. More...
 
const cypher_operator_tCYPHER_OP_NOT
 The prefix unary NOT operator. More...
 
const cypher_operator_tCYPHER_OP_EQUAL
 The infix binary = operator. More...
 
const cypher_operator_tCYPHER_OP_NEQUAL
 The infix binary <> operator. More...
 
const cypher_operator_tCYPHER_OP_LT
 The n-ary < operator. More...
 
const cypher_operator_tCYPHER_OP_GT
 The n-ary > operator. More...
 
const cypher_operator_tCYPHER_OP_LTE
 The n-ary <= operator. More...
 
const cypher_operator_tCYPHER_OP_GTE
 The n-ary >= operator. More...
 
const cypher_operator_tCYPHER_OP_PLUS
 The infix binary + operator. More...
 
const cypher_operator_tCYPHER_OP_MINUS
 The infix binary - operator. More...
 
const cypher_operator_tCYPHER_OP_MULT
 The infix binary * operator. More...
 
const cypher_operator_tCYPHER_OP_DIV
 The infix binary / operator. More...
 
const cypher_operator_tCYPHER_OP_MOD
 The infix binary % operator. More...
 
const cypher_operator_tCYPHER_OP_POW
 The infix binary ^ operator. More...
 
const cypher_operator_tCYPHER_OP_UNARY_PLUS
 The prefix unary + operator. More...
 
const cypher_operator_tCYPHER_OP_UNARY_MINUS
 The prefix unary - operator. More...
 
const cypher_operator_tCYPHER_OP_SUBSCRIPT
 The postfix binary subscript ([exp]) operator. More...
 
const cypher_operator_tCYPHER_OP_MAP_PROJECTION
 The postfix binary map projection ({exp}) operator. More...
 
const cypher_operator_tCYPHER_OP_REGEX
 The infix binary =~ operator. More...
 
const cypher_operator_tCYPHER_OP_IN
 The infix binary IN operator. More...
 
const cypher_operator_tCYPHER_OP_STARTS_WITH
 The infix binary STARTS WITH operator. More...
 
const cypher_operator_tCYPHER_OP_ENDS_WITH
 The infix binary ENDS WITH operator. More...
 
const cypher_operator_tCYPHER_OP_CONTAINS
 The infix binary CONTAINS operator. More...
 
const cypher_operator_tCYPHER_OP_IS_NULL
 The postfix unary IS NULL operator. More...
 
const cypher_operator_tCYPHER_OP_IS_NOT_NULL
 The postfix unary IS NOT NULL operator. More...
 
const cypher_operator_tCYPHER_OP_PROPERTY
 The infix binary property lookup (l.r) operator. More...
 
const cypher_operator_tCYPHER_OP_LABEL
 The n-ary label check (l:r) operator. More...
 

Function Documentation

◆ cypher_ast_all()

cypher_astnode_t* cypher_ast_all ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ALL node.

The node will also be an instance of CYPHER_AST_LIST_COMPREHENSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_all_nodes_scan()

cypher_astnode_t* cypher_ast_all_nodes_scan ( const cypher_astnode_t identifier,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ALL_NODES_SCAN node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_all_nodes_scan_get_identifier()

const cypher_astnode_t* cypher_ast_all_nodes_scan_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_ALL_NODES_SCAN node.

If the node is not an instance of CYPHER_AST_ALL_NODES_SCAN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_all_rels_scan()

cypher_astnode_t* cypher_ast_all_rels_scan ( const cypher_astnode_t identifier,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ALL_RELS_SCAN node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_all_rels_scan_get_identifier()

const cypher_astnode_t* cypher_ast_all_rels_scan_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_ALL_RELS_SCAN node.

If the node is not an instance of CYPHER_AST_ALL_RELS_SCAN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_any()

cypher_astnode_t* cypher_ast_any ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ANY node.

The node will also be an instance of CYPHER_AST_LIST_COMPREHENSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_apply_all_operator()

cypher_astnode_t* cypher_ast_apply_all_operator ( const cypher_astnode_t func_name,
bool  distinct,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_APPLY_ALL_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[func_name]A CYPHER_AST_FUNCTION_NAME node.
[distinct]true if the function removes duplicate results.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_apply_all_operator_get_distinct()

bool cypher_ast_apply_all_operator_get_distinct ( const cypher_astnode_t node)

Check if a CYPHER_AST_APPLY_ALL_OPERATOR node is DISTINCT.

If the node is not an instance of CYPHER_AST_APPLY_ALL_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if DISTINCT is specified, and false otherwise.

◆ cypher_ast_apply_all_operator_get_func_name()

const cypher_astnode_t* cypher_ast_apply_all_operator_get_func_name ( const cypher_astnode_t node)

Get the function name of a CYPHER_AST_APPLY_ALL_OPERATOR node.

If the node is not an instance of CYPHER_AST_APPLY_ALL_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_FUNCTION_NAME node.

◆ cypher_ast_apply_operator()

cypher_astnode_t* cypher_ast_apply_operator ( const cypher_astnode_t func_name,
bool  distinct,
cypher_astnode_t *const *  args,
unsigned int  nargs,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_APPLY_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[func_name]A CYPHER_AST_FUNCTION_NAME node.
[distinct]true if the DISTINCT keyword is specified.
[args]An array of CYPHER_AST_EXPRESSION nodes.
[nargs]The number of args.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_apply_operator_get_argument()

const cypher_astnode_t* cypher_ast_apply_operator_get_argument ( const cypher_astnode_t node,
unsigned int  index 
)

Get an argument of a CYPHER_AST_APPLY_OPERATOR node.

If the node is not an instance of CYPHER_AST_APPLY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the argument.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_apply_operator_get_distinct()

bool cypher_ast_apply_operator_get_distinct ( const cypher_astnode_t node)

Check if a CYPHER_AST_APPLY_OPERATOR node is DISTINCT.

If the node is not an instance of CYPHER_AST_APPLY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if DISTINCT is specified, and false otherwise.

◆ cypher_ast_apply_operator_get_func_name()

const cypher_astnode_t* cypher_ast_apply_operator_get_func_name ( const cypher_astnode_t node)

Get the function name of a CYPHER_AST_APPLY_OPERATOR node.

If the node is not an instance of CYPHER_AST_APPLY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_FUNCTION_NAME node.

◆ cypher_ast_apply_operator_narguments()

unsigned int cypher_ast_apply_operator_narguments ( const cypher_astnode_t node)

Get the number of arguments of a CYPHER_AST_APPLY_OPERATOR node.

If the node is not an instance of CYPHER_AST_APPLY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of arguments.

◆ cypher_ast_binary_operator()

cypher_astnode_t* cypher_ast_binary_operator ( const cypher_operator_t op,
const cypher_astnode_t arg1,
const cypher_astnode_t arg2,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_BINARY_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[op]The operator.
[arg1]The first (left) argument to the binary operator, of type CYPHER_AST_EXPRESSION.
[arg2]The second (right) argument to the binary operator, of type CYPHER_AST_EXPRESSION.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_binary_operator_get_argument1()

const cypher_astnode_t* cypher_ast_binary_operator_get_argument1 ( const cypher_astnode_t node)

Get the first (left) argument of a CYPHER_AST_BINARY_OPERATOR node.

If the node is not an instance of CYPHER_AST_BINARY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
The argument, of type CYPHER_AST_EXPRESSION.

◆ cypher_ast_binary_operator_get_argument2()

const cypher_astnode_t* cypher_ast_binary_operator_get_argument2 ( const cypher_astnode_t node)

Get the second (right) argument of a CYPHER_AST_BINARY_OPERATOR node.

If the node is not an instance of CYPHER_AST_BINARY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
The argument, of type CYPHER_AST_EXPRESSION.

◆ cypher_ast_binary_operator_get_operator()

const cypher_operator_t* cypher_ast_binary_operator_get_operator ( const cypher_astnode_t node)

Get the operator of a CYPHER_AST_BINARY_OPERATOR node.

If the node is not an instance of CYPHER_AST_BINARY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
The operator.

◆ cypher_ast_block_comment()

cypher_astnode_t* cypher_ast_block_comment ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_BLOCK_COMMENT node.

The node will also be an instance of CYPHER_AST_COMMENT.

Parameters
[s]A pointer to a character string containing the comment.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_block_comment_get_value()

const char* cypher_ast_block_comment_get_value ( const cypher_astnode_t node)

Get a null terminated string for a CYPHER_AST_BLOCK_COMMENT node.

If the node is not an instance of CYPHER_AST_BLOCK_COMMENT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_call()

cypher_astnode_t* cypher_ast_call ( const cypher_astnode_t proc_name,
cypher_astnode_t *const *  args,
unsigned int  nargs,
cypher_astnode_t *const *  projections,
unsigned int  nprojections,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CALL node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[proc_name]A CYPHER_AST_PROC_NAME node.
[args]An array of CYPHER_AST_EXPRESSION nodes.
[nargs]The number of args.
[projections]Projections for with, all of type CYPHER_AST_PROJECTION.
[nprojections]The number of projections.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_call_get_argument()

const cypher_astnode_t* cypher_ast_call_get_argument ( const cypher_astnode_t node,
unsigned int  index 
)

Get an argument of a CYPHER_AST_CALL node.

If the node is not an instance of CYPHER_AST_CALL then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the argument.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_call_get_proc_name()

const cypher_astnode_t* cypher_ast_call_get_proc_name ( const cypher_astnode_t node)

Get the proc name of a CYPHER_AST_CALL node.

If the node is not an instance of CYPHER_AST_CALL then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROC_NAME node.

◆ cypher_ast_call_get_projection()

const cypher_astnode_t* cypher_ast_call_get_projection ( const cypher_astnode_t node,
unsigned int  index 
)

Get a projection of a CYPHER_AST_CALL node.

If the node is not an instance of CYPHER_AST_CALL then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the projection.
Returns
A CYPHER_AST_PROJECTION node.

◆ cypher_ast_call_narguments()

unsigned int cypher_ast_call_narguments ( const cypher_astnode_t node)

Get the number of arguments of a CYPHER_AST_CALL node.

If the node is not an instance of CYPHER_AST_CALL then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of arguments.

◆ cypher_ast_call_nprojections()

unsigned int cypher_ast_call_nprojections ( const cypher_astnode_t node)

Get the number of projections of a CYPHER_AST_CALL node.

If the node is not an instance of CYPHER_AST_CALL then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of projections.

◆ cypher_ast_case()

cypher_astnode_t* cypher_ast_case ( const cypher_astnode_t expression,
cypher_astnode_t *const *  alternatives,
unsigned int  nalternatives,
const cypher_astnode_t deflt,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CASE node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[alternatives]An alternating list of predicate expressions and values, all of type CYPHER_AST_EXPRESSION.
[nalternatives]The number of predicate and result pairs.
[deflt]A CYPHER_AST_EXPRESSION node, or NULL.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_case_get_default()

const cypher_astnode_t* cypher_ast_case_get_default ( const cypher_astnode_t node)

Get the default from a CYPHER_AST_CASE node.

If the node is not an instance of CYPHER_AST_CASE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_case_get_expression()

const cypher_astnode_t* cypher_ast_case_get_expression ( const cypher_astnode_t node)

Get the expression from a CYPHER_AST_CASE node.

If the node is not an instance of CYPHER_AST_CASE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_case_get_predicate()

const cypher_astnode_t* cypher_ast_case_get_predicate ( const cypher_astnode_t node,
unsigned int  index 
)

Get a predicate from a CYPHER_AST_CASE node.

If the node is not an instance of CYPHER_AST_CASE then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the alternative.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_case_get_value()

const cypher_astnode_t* cypher_ast_case_get_value ( const cypher_astnode_t node,
unsigned int  index 
)

Get a value from a CYPHER_AST_CASE node.

If the node is not an instance of CYPHER_AST_CASE then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the alternative.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_case_nalternatives()

unsigned int cypher_ast_case_nalternatives ( const cypher_astnode_t node)

Get the number of alternatives from a CYPHER_AST_CASE node.

If the node is not an instance of CYPHER_AST_CASE then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of alternatives.

◆ cypher_ast_collection()

cypher_astnode_t* cypher_ast_collection ( cypher_astnode_t *const *  elements,
unsigned int  nelements,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_COLLECTION node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[elements]The elements for the collection.
[nelements]The number of elements.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_collection_get()

const cypher_astnode_t* cypher_ast_collection_get ( const cypher_astnode_t node,
unsigned int  index 
)

Get an element from a CYPHER_AST_COLLECTION node.

If the node is not an instance of CYPHER_AST_COLLECTION then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the element.
Returns
A pointer to the element of the collection, or NULL if there is no element at the specified index.

◆ cypher_ast_collection_length()

unsigned int cypher_ast_collection_length ( const cypher_astnode_t node)

Get the collection length from a CYPHER_AST_COLLECTION node.

If the node is not an instance of CYPHER_AST_COLLECTION then the result will be undefined.

Parameters
[node]The AST node.
Returns
The length of the collection.

◆ cypher_ast_command()

cypher_astnode_t* cypher_ast_command ( const cypher_astnode_t name,
cypher_astnode_t *const *  args,
unsigned int  nargs,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_COMMAND node.

Parameters
[name]A CYPHER_AST_STRING node.
[args]Arguments for the command, all of type CYPHER_AST_STRING.
[nargs]The number of clauses.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_command_get_argument()

const cypher_astnode_t* cypher_ast_command_get_argument ( const cypher_astnode_t node,
unsigned int  index 
)

Get an argument from a CYPHER_AST_COMMAND node.

If the node is not an instance of CYPHER_AST_COMMAND then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the argument.
Returns
A pointer to the argument of the command, which will be of type CYPHER_AST_STRING, or NULL if there is no argument at the specified index.

◆ cypher_ast_command_get_name()

const cypher_astnode_t* cypher_ast_command_get_name ( const cypher_astnode_t node)

Get the name from a CYPHER_AST_COMMAND node.

If the node is not an instance of CYPHER_AST_COMMAND then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the name of the command, which will be of type CYPHER_AST_STRING.

◆ cypher_ast_command_narguments()

unsigned int cypher_ast_command_narguments ( const cypher_astnode_t node)

Get the number of arguments from a CYPHER_AST_COMMAND node.

If the node is not an instance of CYPHER_AST_COMMAND then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of arguments to the command.

◆ cypher_ast_comparison()

cypher_astnode_t* cypher_ast_comparison ( unsigned int  length,
const cypher_operator_t *const *  ops,
cypher_astnode_t *const *  args,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_COMPARISON node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[length]The length of the comparison chain.
[ops]The operators in the comparison chain, which must be length pointers.
[args]The arguments in the comparison chain, which must be length+1 pointers all of type CYPHER_AST_EXPRESSION.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_comparison_get_argument()

const cypher_astnode_t* cypher_ast_comparison_get_argument ( const cypher_astnode_t node,
unsigned int  pos 
)

Get the argument in the chain of a CYPHER_AST_COMPARISON node.

If the node is not an instance of CYPHER_AST_COMPARISON then the result will be undefined.

Parameters
[node]The AST node.
[pos]The position in the comparison chain.
Returns
A CYPHER_AST_EXPRESSION node at the specified position in the chain, or null if the position is greater than the chain length.

◆ cypher_ast_comparison_get_length()

unsigned int cypher_ast_comparison_get_length ( const cypher_astnode_t node)

Get the comparsion chain length of a CYPHER_AST_COMPARISON node.

If the node is not an instance of CYPHER_AST_COMPARISON then the result will be undefined.

Parameters
[node]The AST node.
Returns
The length of the chain.

◆ cypher_ast_comparison_get_operator()

const cypher_operator_t* cypher_ast_comparison_get_operator ( const cypher_astnode_t node,
unsigned int  pos 
)

Get an operator in the chain of a CYPHER_AST_COMPARISON node.

If the node is not an instance of CYPHER_AST_COMPARISON then the result will be undefined.

Parameters
[node]The AST node.
[pos]The position in the comparison chain.
Returns
The operator at the specified position in the chain, or null if the position is greater than the chain length.

◆ cypher_ast_create()

cypher_astnode_t* cypher_ast_create ( bool  unique,
const cypher_astnode_t pattern,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CREATE node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[unique]true if the create is unique, false otherwise.
[pattern]A CYPHER_AST_PATTERN node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_create_get_pattern()

const cypher_astnode_t* cypher_ast_create_get_pattern ( const cypher_astnode_t node)

Get the pattern of a CYPHER_AST_CREATE node.

If the node is not an instance of CYPHER_AST_CREATE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PATTERN node.

◆ cypher_ast_create_is_unique()

bool cypher_ast_create_is_unique ( const cypher_astnode_t node)

Check if the unique value of a CYPHER_AST_CREATE node is set.

If the node is not an instance of CYPHER_AST_CREATE then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the UNIQUE option is enabled, and false otherwise.

◆ cypher_ast_create_node_prop_constraint()

cypher_astnode_t* cypher_ast_create_node_prop_constraint ( const cypher_astnode_t identifier,
const cypher_astnode_t label,
const cypher_astnode_t expression,
bool  unique,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node.

The node will also be an instance of CYPHER_AST_SCHEMA_COMMAND.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[label]A CYPHER_AST_LABEL node.
[expression]A CYPHER_AST_EXPRESSION node.
[unique]true if the constraint is unique, and false otherwise.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_create_node_prop_constraint_get_expression()

const cypher_astnode_t* cypher_ast_create_node_prop_constraint_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_create_node_prop_constraint_get_identifier()

const cypher_astnode_t* cypher_ast_create_node_prop_constraint_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_create_node_prop_constraint_get_label()

const cypher_astnode_t* cypher_ast_create_node_prop_constraint_get_label ( const cypher_astnode_t node)

Get the label of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_LABEL node.

◆ cypher_ast_create_node_prop_constraint_is_unique()

bool cypher_ast_create_node_prop_constraint_is_unique ( const cypher_astnode_t node)

Check if the constraint of a CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT node is unique.

If the node is not an instance of CYPHER_AST_CREATE_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the constraint is unique, and false otherwise.

◆ cypher_ast_create_node_prop_index()

cypher_astnode_t* cypher_ast_create_node_prop_index ( const cypher_astnode_t label,
const cypher_astnode_t prop_name,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CREATE_NODE_PROP_INDEX node.

The node will also be an instance of CYPHER_AST_SCHEMA_COMMAND.

Parameters
[label]A label node, of type CYPHER_AST_LABEL.
[prop_name]A property name node, of type CYPHER_AST_PROP_NAME.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_create_node_prop_index_get_label()

const cypher_astnode_t* cypher_ast_create_node_prop_index_get_label ( const cypher_astnode_t node)

Get the label of a CYPHER_AST_CREATE_NODE_PROP_INDEX node.

If the node is not an instance of CYPHER_AST_CREATE_NODE_PROP_INDEX then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_LABEL node.

◆ cypher_ast_create_node_prop_index_get_prop_name()

const cypher_astnode_t* cypher_ast_create_node_prop_index_get_prop_name ( const cypher_astnode_t node)

Get the property name of a CYPHER_AST_CREATE_NODE_PROP_INDEX node.

If the node is not an instance of CYPHER_AST_CREATE_NODE_PROP_INDEX then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_create_rel_prop_constraint()

cypher_astnode_t* cypher_ast_create_rel_prop_constraint ( const cypher_astnode_t identifier,
const cypher_astnode_t label,
const cypher_astnode_t expression,
bool  unique,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node.

The node will also be an instance of CYPHER_AST_SCHEMA_COMMAND.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[label]A CYPHER_AST_LABEL node.
[expression]A CYPHER_AST_EXPRESSION node.
[unique]true if the constraint is unique, and false otherwise.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_create_rel_prop_constraint_get_expression()

const cypher_astnode_t* cypher_ast_create_rel_prop_constraint_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_CREATE_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_create_rel_prop_constraint_get_identifier()

const cypher_astnode_t* cypher_ast_create_rel_prop_constraint_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_CREATE_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_create_rel_prop_constraint_get_reltype()

const cypher_astnode_t* cypher_ast_create_rel_prop_constraint_get_reltype ( const cypher_astnode_t node)

Get the relationship type of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_CREATE_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_RELTYPE node.

◆ cypher_ast_create_rel_prop_constraint_is_unique()

bool cypher_ast_create_rel_prop_constraint_is_unique ( const cypher_astnode_t node)

Check if the constraint of a CYPHER_AST_CREATE_REL_PROP_CONSTRAINT node is unique.

If the node is not an instance of CYPHER_AST_CREATE_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the constraint is unique, and false otherwise.

◆ cypher_ast_cypher_option()

cypher_astnode_t* cypher_ast_cypher_option ( const cypher_astnode_t version,
cypher_astnode_t *const *  params,
unsigned int  nparams,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CYPHER_OPTION node.

The node will also be an instance of CYPHER_AST_STATEMENT_OPTION.

Parameters
[version]A version node of type CYPHER_AST_STRING, or null.
[params]Parameters for the option, all of type CYPHER_AST_CYPHER_OPTION_PARAM.
[nparams]The number of parameters (may be zero).
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_cypher_option_get_param()

const cypher_astnode_t* cypher_ast_cypher_option_get_param ( const cypher_astnode_t node,
unsigned int  index 
)

Get an option of a CYPHER_AST_CYPHER_OPTION node.

If the node is not an instance of CYPHER_AST_CYPHER_OPTION then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the parameter.
Returns
A CYPHER_AST_CYPHER_OPTION_PARAM node, or null if no parameter is at the specified index.

◆ cypher_ast_cypher_option_get_version()

const cypher_astnode_t* cypher_ast_cypher_option_get_version ( const cypher_astnode_t node)

Get the version of a CYPHER_AST_CYPHER_OPTION node.

If the node is not an instance of CYPHER_AST_CYPHER_OPTION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING node, or null.

◆ cypher_ast_cypher_option_nparams()

unsigned int cypher_ast_cypher_option_nparams ( const cypher_astnode_t node)

Get the number of parameters in a CYPHER_AST_CYPHER_OPTION node.

If the node is not an instance of CYPHER_AST_CYPHER_OPTION then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of parameters.

◆ cypher_ast_cypher_option_param()

cypher_astnode_t* cypher_ast_cypher_option_param ( const cypher_astnode_t name,
const cypher_astnode_t value,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_CYPHER_OPTION_PARAM node.

Parameters
[name]A parameter name node, of type CYPHER_AST_STRING.
[value]A parameter value node, of type CYPHER_AST_STRING.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_cypher_option_param_get_name()

const cypher_astnode_t* cypher_ast_cypher_option_param_get_name ( const cypher_astnode_t node)

Get an name of a CYPHER_AST_CYPHER_OPTION_PARAM node.

If the node is not an instance of CYPHER_AST_CYPHER_OPTION_PARAM then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING node.

◆ cypher_ast_cypher_option_param_get_value()

const cypher_astnode_t* cypher_ast_cypher_option_param_get_value ( const cypher_astnode_t node)

Get an value of a CYPHER_AST_CYPHER_OPTION_PARAM node.

If the node is not an instance of CYPHER_AST_CYPHER_OPTION_PARAM then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING node.

◆ cypher_ast_delete()

cypher_astnode_t* cypher_ast_delete ( bool  detach,
cypher_astnode_t *const *  expressions,
unsigned int  nexpressions,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_DELETE node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[detach]true if the DETACH option is present, false otherwise.
[expressions]Expressions for DELETE, all of type CYPHER_AST_EXPRESSION.
[nexpressions]The number of expressions.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_delete_get_expression()

const cypher_astnode_t* cypher_ast_delete_get_expression ( const cypher_astnode_t node,
unsigned int  index 
)

Get an expression from a CYPHER_AST_DELETE node.

If the node is not an instance of CYPHER_AST_DELETE then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the expression.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_delete_has_detach()

bool cypher_ast_delete_has_detach ( const cypher_astnode_t node)

Check if DETACH is present for a CYPHER_AST_DELETE node.

If the node is not an instance of CYPHER_AST_DELETE then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if DETACH is present, false otherwise.

◆ cypher_ast_delete_nexpressions()

unsigned int cypher_ast_delete_nexpressions ( const cypher_astnode_t node)

Get the number of expression in a CYPHER_AST_DELETE node.

If the node is not an instance of CYPHER_AST_DELETE then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of expression.

◆ cypher_ast_drop_node_prop_constraint()

cypher_astnode_t* cypher_ast_drop_node_prop_constraint ( const cypher_astnode_t identifier,
const cypher_astnode_t label,
const cypher_astnode_t expression,
bool  unique,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node.

The node will also be an instance of CYPHER_AST_SCHEMA_COMMAND.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[label]A CYPHER_AST_LABEL node.
[expression]A CYPHER_AST_EXPRESSION node.
[unique]true if the constraint is unique, and false otherwise.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_drop_node_prop_constraint_get_expression()

const cypher_astnode_t* cypher_ast_drop_node_prop_constraint_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_DROP_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_drop_node_prop_constraint_get_identifier()

const cypher_astnode_t* cypher_ast_drop_node_prop_constraint_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_DROP_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_drop_node_prop_constraint_get_label()

const cypher_astnode_t* cypher_ast_drop_node_prop_constraint_get_label ( const cypher_astnode_t node)

Get the label of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_DROP_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_LABEL node.

◆ cypher_ast_drop_node_prop_constraint_is_unique()

bool cypher_ast_drop_node_prop_constraint_is_unique ( const cypher_astnode_t node)

Check if the constraint of a CYPHER_AST_DROP_NODE_PROP_CONSTRAINT node is unique.

If the node is not an instance of CYPHER_AST_DROP_NODE_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the constraint is unique, and false otherwise.

◆ cypher_ast_drop_node_prop_index()

cypher_astnode_t* cypher_ast_drop_node_prop_index ( const cypher_astnode_t label,
const cypher_astnode_t prop_name,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_DROP_NODE_PROP_INDEX node.

The node will also be an instance of CYPHER_AST_SCHEMA_COMMAND.

Parameters
[label]A label node, of type CYPHER_AST_LABEL.
[prop_name]A property name node, of type CYPHER_AST_PROP_NAME.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_drop_node_prop_index_get_label()

const cypher_astnode_t* cypher_ast_drop_node_prop_index_get_label ( const cypher_astnode_t node)

Get the label of a CYPHER_AST_DROP_NODE_PROP_INDEX node.

If the node is not an instance of CYPHER_AST_DROP_NODE_PROP_INDEX then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_LABEL node.

◆ cypher_ast_drop_node_prop_index_get_prop_name()

const cypher_astnode_t* cypher_ast_drop_node_prop_index_get_prop_name ( const cypher_astnode_t node)

Get the property name of a CYPHER_AST_DROP_NODE_PROP_INDEX node.

If the node is not an instance of CYPHER_AST_DROP_NODE_PROP_INDEX then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_drop_rel_prop_constraint()

cypher_astnode_t* cypher_ast_drop_rel_prop_constraint ( const cypher_astnode_t identifier,
const cypher_astnode_t label,
const cypher_astnode_t expression,
bool  unique,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node.

The node will also be an instance of CYPHER_AST_SCHEMA_COMMAND.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[label]A CYPHER_AST_LABEL node.
[expression]A CYPHER_AST_EXPRESSION node.
[unique]true if the constraint is unique, and false otherwise.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_drop_rel_prop_constraint_get_expression()

const cypher_astnode_t* cypher_ast_drop_rel_prop_constraint_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_DROP_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_drop_rel_prop_constraint_get_identifier()

const cypher_astnode_t* cypher_ast_drop_rel_prop_constraint_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_DROP_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_drop_rel_prop_constraint_get_reltype()

const cypher_astnode_t* cypher_ast_drop_rel_prop_constraint_get_reltype ( const cypher_astnode_t node)

Get the relationship type of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node.

If the node is not an instance of CYPHER_AST_DROP_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_RELTYPE node.

◆ cypher_ast_drop_rel_prop_constraint_is_unique()

bool cypher_ast_drop_rel_prop_constraint_is_unique ( const cypher_astnode_t node)

Check if the constraint of a CYPHER_AST_DROP_REL_PROP_CONSTRAINT node is unique.

If the node is not an instance of CYPHER_AST_DROP_REL_PROP_CONSTRAINT then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the constraint is unique, and false otherwise.

◆ cypher_ast_error()

cypher_astnode_t* cypher_ast_error ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ERROR node.

Parameters
[s]A pointer to a character string containing the erroneous input.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_error_get_value()

const char* cypher_ast_error_get_value ( const cypher_astnode_t node)

Get a null terminated string for a CYPHER_AST_ERROR node.

If the node is not an instance of CYPHER_AST_BLOCK_COMMENT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_explain_option()

cypher_astnode_t* cypher_ast_explain_option ( cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_EXPLAIN_OPTION node.

The node will also be an instance of CYPHER_AST_STATEMENT_OPTION.

Parameters
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_extract()

cypher_astnode_t* cypher_ast_extract ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t eval,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_EXTRACT node.

The node will also be an instance of CYPHER_AST_LIST_COMPREHENSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[eval]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_false()

cypher_astnode_t* cypher_ast_false ( struct cypher_input_range  range)

Construct a CYPHER_AST_FALSE node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_filter()

cypher_astnode_t* cypher_ast_filter ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_FILTER node.

The node will also be an instance of CYPHER_AST_LIST_COMPREHENSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_float()

cypher_astnode_t* cypher_ast_float ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_FLOAT node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[s]A pointer to a character string.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_float_get_valuestr()

const char* cypher_ast_float_get_valuestr ( const cypher_astnode_t node)

Get the null terminated string value from a CYPHER_AST_FLOAT node.

If the node is not an instance of CYPHER_AST_FLOAT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_foreach()

cypher_astnode_t* cypher_ast_foreach ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
cypher_astnode_t *const *  clauses,
unsigned int  nclauses,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_FOREACH node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[clauses]Clauses for foreach, all of type CYPHER_AST_CLAUSE.
[nclauses]The number of clauses.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_foreach_get_clause()

const cypher_astnode_t* cypher_ast_foreach_get_clause ( const cypher_astnode_t node,
unsigned int  index 
)

Get a clause from a CYPHER_AST_FOREACH node.

If the node is not an instance of CYPHER_AST_FOREACH then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the alternative.
Returns
A CYPHER_AST_CLAUSE node, or null.

◆ cypher_ast_foreach_get_expression()

const cypher_astnode_t* cypher_ast_foreach_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_FOREACH node.

If the node is not an instance of CYPHER_AST_FOREACH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_foreach_get_identifier()

const cypher_astnode_t* cypher_ast_foreach_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_FOREACH node.

If the node is not an instance of CYPHER_AST_FOREACH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_foreach_nclauses()

unsigned int cypher_ast_foreach_nclauses ( const cypher_astnode_t node)

Get the number of clauses from a CYPHER_AST_FOREACH node.

If the node is not an instance of CYPHER_AST_FOREACH then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of clauses.

◆ cypher_ast_fprint()

int cypher_ast_fprint ( const cypher_astnode_t ast,
FILE *  stream,
unsigned int  width,
const struct cypher_parser_colorization *  colorization,
uint_fast32_t  flags 
)

Print a represetation of an AST to a stream.

Useful for debugging purposes.

Parameters
[ast]The AST node.
[stream]The stream to print to.
[width]The width to render, which is advisory and may be exceeded. A value of 0 implies no restriction on width.
[colorization]A colorization scheme to apply, or null.
[flags]A bitmask of flags to control rendering.
Returns
0 on success, or -1 if an error occurs (errno will be set).

◆ cypher_ast_free()

void cypher_ast_free ( cypher_astnode_t ast)

Release an entire AST tree.

Parameters
[ast]The root of the AST tree.

◆ cypher_ast_function_name()

cypher_astnode_t* cypher_ast_function_name ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_FUNCTION_NAME node.

Parameters
[s]A pointer to a character string containing the function name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_function_name_get_value()

const char* cypher_ast_function_name_get_value ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_FUNCTION_NAME node.

If the node is not an instance of CYPHER_AST_FUNCTION_NAME then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_identifier()

cypher_astnode_t* cypher_ast_identifier ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_IDENTIFIER node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[s]A pointer to a character string containing the identifier name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_identifier_get_name()

const char* cypher_ast_identifier_get_name ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_IDENTIFIER node.

If the node is not an instance of CYPHER_AST_IDENTIFIER then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_index_name()

cypher_astnode_t* cypher_ast_index_name ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_INDEX_NAME node.

Parameters
[s]A pointer to a character string containing the index name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_index_name_get_value()

const char* cypher_ast_index_name_get_value ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_INDEX_NAME node.

If the node is not an instance of CYPHER_AST_INDEX_NAME then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_integer()

cypher_astnode_t* cypher_ast_integer ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_INTEGER node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[s]A pointer to a character string.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_integer_get_valuestr()

const char* cypher_ast_integer_get_valuestr ( const cypher_astnode_t node)

Get the null terminated string value from a CYPHER_AST_INTEGER node.

If the node is not an instance of CYPHER_AST_INTEGER then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_label()

cypher_astnode_t* cypher_ast_label ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_LABEL node.

Parameters
[s]A pointer to a character string containing the label name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_label_get_name()

const char* cypher_ast_label_get_name ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_LABEL node.

If the node is not an instance of CYPHER_AST_LABEL then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_labels_operator()

cypher_astnode_t* cypher_ast_labels_operator ( const cypher_astnode_t expression,
cypher_astnode_t *const *  labels,
unsigned int  nlabels,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_LABELS_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[labels]Labels for the operator, all of type CYPHER_AST_LABEL.
[nlabels]The number of labels.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_labels_operator_get_expression()

const cypher_astnode_t* cypher_ast_labels_operator_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_PROPERTY_OPERATOR node.

If the node is not an instance of CYPHER_AST_PROPERTY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_labels_operator_get_label()

const cypher_astnode_t* cypher_ast_labels_operator_get_label ( const cypher_astnode_t node,
unsigned int  index 
)

Get a label from a CYPHER_AST_LABELS_OPERATOR node.

If the node is not an instance of CYPHER_AST_LABELS_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the label.
Returns
A CYPHER_AST_LABEL node, or null.

◆ cypher_ast_labels_operator_nlabels()

unsigned int cypher_ast_labels_operator_nlabels ( const cypher_astnode_t node)

Get the number of labels from a CYPHER_AST_LABELS_OPERATOR node.

If the node is not an instance of CYPHER_AST_LABELS_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of labels.

◆ cypher_ast_line_comment()

cypher_astnode_t* cypher_ast_line_comment ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_LINE_COMMENT node.

The node will also be an instance of CYPHER_AST_COMMENT.

Parameters
[s]A pointer to a character string containing the comment.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_line_comment_get_value()

const char* cypher_ast_line_comment_get_value ( const cypher_astnode_t node)

Get a null terminated string for a CYPHER_AST_LINE_COMMENT node.

If the node is not an instance of CYPHER_AST_LINE_COMMENT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_list_comprehension()

cypher_astnode_t* cypher_ast_list_comprehension ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t predicate,
const cypher_astnode_t eval,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_LIST_COMPREHENSION node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[eval]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_list_comprehension_get_eval()

const cypher_astnode_t* cypher_ast_list_comprehension_get_eval ( const cypher_astnode_t node)

Get the evaluation from a CYPHER_AST_LIST_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_LIST_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_list_comprehension_get_expression()

const cypher_astnode_t* cypher_ast_list_comprehension_get_expression ( const cypher_astnode_t node)

Get the expression from a CYPHER_AST_LIST_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_LIST_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_list_comprehension_get_identifier()

const cypher_astnode_t* cypher_ast_list_comprehension_get_identifier ( const cypher_astnode_t node)

Get the identifier from a CYPHER_AST_LIST_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_LIST_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_list_comprehension_get_predicate()

const cypher_astnode_t* cypher_ast_list_comprehension_get_predicate ( const cypher_astnode_t node)

Get the predicate from a CYPHER_AST_LIST_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_LIST_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_load_csv()

cypher_astnode_t* cypher_ast_load_csv ( bool  with_headers,
const cypher_astnode_t url,
const cypher_astnode_t identifier,
const cypher_astnode_t field_terminator,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_LOAD_CSV node.

The node will also be an instance of CYPHER_AST_QUERY_CLAUSE.

Parameters
[with_headers]true if the WITH HEADERS option is enabled, and false otherwise.
[url]A CYPHER_AST_EXPRESSION node.
[identifier]A CYPHER_AST_IDENTIFIER node.
[field_terminator]A CYPHER_AST_STRING node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_load_csv_get_field_terminator()

const cypher_astnode_t* cypher_ast_load_csv_get_field_terminator ( const cypher_astnode_t node)

Get the field terminator of a CYPHER_AST_LOAD_CSV node.

If the node is not an instance of CYPHER_AST_LOAD_CSV then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING node, or null.

◆ cypher_ast_load_csv_get_identifier()

const cypher_astnode_t* cypher_ast_load_csv_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_LOAD_CSV node.

If the node is not an instance of CYPHER_AST_LOAD_CSV then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_load_csv_get_url()

const cypher_astnode_t* cypher_ast_load_csv_get_url ( const cypher_astnode_t node)

Get the url of a CYPHER_AST_LOAD_CSV node.

If the node is not an instance of CYPHER_AST_LOAD_CSV then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_load_csv_has_with_headers()

bool cypher_ast_load_csv_has_with_headers ( const cypher_astnode_t node)

Check the with_headers value of a CYPHER_AST_LOAD_CSV node.

If the node is not an instance of CYPHER_AST_LOAD_CSV then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the WITH HEADERS option is enabled, and false otherwise.

◆ cypher_ast_map()

cypher_astnode_t* cypher_ast_map ( cypher_astnode_t *const *  keys,
cypher_astnode_t *const *  values,
unsigned int  nentries,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MAP node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[keys]The keys for the map, all of type CYPHER_AST_PROP_NAME.
[values]The values for the map, all of type CYPEHR_AST_EXPRESSION.
[nentries]The number of keys and values.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_map_get_key()

const cypher_astnode_t* cypher_ast_map_get_key ( const cypher_astnode_t node,
unsigned int  index 
)

Get a key from a CYPHER_AST_MAP node.

If the node is not an instance of CYPHER_AST_MAP then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the entry.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_map_get_value()

const cypher_astnode_t* cypher_ast_map_get_value ( const cypher_astnode_t node,
unsigned int  index 
)

Get a value from a CYPHER_AST_MAP node.

If the node is not an instance of CYPHER_AST_MAP then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the entry.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_map_nentries()

unsigned int cypher_ast_map_nentries ( const cypher_astnode_t node)

Get the number of entries in a CYPHER_AST_MAP node.

If the node is not an instance of CYPHER_AST_MAP then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of entries.

◆ cypher_ast_map_projection()

cypher_astnode_t* cypher_ast_map_projection ( const cypher_astnode_t expression,
cypher_astnode_t *const *  selectors,
unsigned int  nselectors,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MAP_PROJECTION node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[selectors]Selectors for the projection, all of type CYPHER_AST_MAP_PROJECTION_SELECTOR.
[nselectors]The number of selectors (may be zero).
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_map_projection_all_properties()

cypher_astnode_t* cypher_ast_map_projection_all_properties ( cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MAP_PROJECTION_ALL_PROPERTIES node.

The node will also be an instance of CYPHER_AST_MAP_PROJECTION_SELECTOR.

Parameters
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_map_projection_get_expression()

const cypher_astnode_t* cypher_ast_map_projection_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_MAP_PROJECTION node.

If the node is not an instance of CYPHER_AST_MAP_PROJECTION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_map_projection_get_selector()

const cypher_astnode_t* cypher_ast_map_projection_get_selector ( const cypher_astnode_t node,
unsigned int  index 
)

Get a selector from a CYPHER_AST_MAP_PROJECTION node.

If the node is not an instance of CYPHER_AST_MAP_PROJECTION then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the selector.
Returns
A CYPHER_AST_MAP_PROJECTION_SELECTOR node, or null.

◆ cypher_ast_map_projection_identifier()

cypher_astnode_t* cypher_ast_map_projection_identifier ( const cypher_astnode_t identifier,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MAP_PROJECTION_IDENTIFIER node.

The node will also be an instance of CYPHER_AST_MAP_PROJECTION_SELECTOR.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_map_projection_identifier_get_identifier()

const cypher_astnode_t* cypher_ast_map_projection_identifier_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_MAP_PROJECTION_IDENTIFIER node.

If the node is not an instance of CYPHER_AST_MAP_PROJECTION_IDENTIFIER then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_map_projection_literal()

cypher_astnode_t* cypher_ast_map_projection_literal ( const cypher_astnode_t prop_name,
const cypher_astnode_t expression,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MAP_PROJECTION_LITERAL node.

The node will also be an instance of CYPHER_AST_MAP_PROJECTION_SELECTOR.

Parameters
[prop_name]A CYPHER_AST_PROP_NAME node.
[expression]A CYPHER_AST_EXPRESSION node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_map_projection_literal_get_expression()

const cypher_astnode_t* cypher_ast_map_projection_literal_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_MAP_PROJECTION_LITERAL node.

If the node is not an instance of CYPHER_AST_MAP_PROJECTION_LITERAL then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_map_projection_literal_get_prop_name()

const cypher_astnode_t* cypher_ast_map_projection_literal_get_prop_name ( const cypher_astnode_t node)

Get the property name of a CYPHER_AST_MAP_PROJECTION_LITERAL node.

If the node is not an instance of CYPHER_AST_MAP_PROJECTION_LITERAL then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_map_projection_nselectors()

unsigned int cypher_ast_map_projection_nselectors ( const cypher_astnode_t node)

Get the number of selectors in a CYPHER_AST_MAP_PROJECTION node.

If the node is not an instance of CYPHER_AST_MAP_PROJECTION then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of selectors.

◆ cypher_ast_map_projection_property()

cypher_astnode_t* cypher_ast_map_projection_property ( const cypher_astnode_t prop_name,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MAP_PROJECTION_PROPERTY node.

The node will also be an instance of CYPHER_AST_MAP_PROJECTION_SELECTOR.

Parameters
[prop_name]A CYPHER_AST_PROP_NAME node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_map_projection_property_get_prop_name()

const cypher_astnode_t* cypher_ast_map_projection_property_get_prop_name ( const cypher_astnode_t node)

Get the property name of a CYPHER_AST_MAP_PROJECTION_PROPERTY node.

If the node is not an instance of CYPHER_AST_MAP_PROJECTION_PROPERTY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_match()

cypher_astnode_t* cypher_ast_match ( bool  optional,
const cypher_astnode_t pattern,
cypher_astnode_t *const *  hints,
unsigned int  nhints,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MATCH node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[optional]true if the node represents an OPTIONAL MATCH, and false otherwise.
[pattern]A CYPHER_AST_PATTERN node.
[hints]Hints for lookup, all of type CYPHER_AST_MATCH_HINT.
[nhints]The number of match hints.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_match_get_hint()

const cypher_astnode_t* cypher_ast_match_get_hint ( const cypher_astnode_t node,
unsigned int  index 
)

Get a hint from a CYPHER_AST_MATCH node.

If the node is not an instance of CYPHER_AST_MATCH then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the hint.
Returns
A CYPHER_AST_MATCH_HINT node, or null.

◆ cypher_ast_match_get_pattern()

const cypher_astnode_t* cypher_ast_match_get_pattern ( const cypher_astnode_t node)

Get the pattern of a CYPHER_AST_MATCH node.

If the node is not an instance of CYPHER_AST_MATCH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PATTERN node.

◆ cypher_ast_match_get_predicate()

const cypher_astnode_t* cypher_ast_match_get_predicate ( const cypher_astnode_t node)

Get the predicate of a CYPHER_AST_PREDICATE node.

If the node is not an instance of CYPHER_AST_PREDICATE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PREDICATE node, or null.

◆ cypher_ast_match_is_optional()

bool cypher_ast_match_is_optional ( const cypher_astnode_t node)

Check if the optional value of a CYPHER_AST_MATCH node is set.

If the node is not an instance of CYPHER_AST_MATCH then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the OPTIONAL MATCH option is enabled, and false otherwise.

◆ cypher_ast_match_nhints()

unsigned int cypher_ast_match_nhints ( const cypher_astnode_t node)

Get the number of hints in a CYPHER_AST_MATCH node.

If the node is not an instance of CYPHER_AST_MATCH then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of hints.

◆ cypher_ast_merge()

cypher_astnode_t* cypher_ast_merge ( const cypher_astnode_t path,
cypher_astnode_t *const *  actions,
unsigned int  nactions,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MERGE node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[path]A CYPHER_AST_PATTERN_PATH node.
[actions]Actions for merge, all of type CYPHER_AST_MERGE_ACTION.
[nactions]The number of match actions.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_merge_get_action()

const cypher_astnode_t* cypher_ast_merge_get_action ( const cypher_astnode_t node,
unsigned int  index 
)

Get an action from a CYPHER_AST_MERGE node.

If the node is not an instance of CYPHER_AST_MERGE then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the action.
Returns
A CYPHER_AST_MERGE_HINT node, or null.

◆ cypher_ast_merge_get_pattern_path()

const cypher_astnode_t* cypher_ast_merge_get_pattern_path ( const cypher_astnode_t node)

Get the pattern path of a CYPHER_AST_MERGE node.

If the node is not an instance of CYPHER_AST_MERGE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PATTERN_PATH node.

◆ cypher_ast_merge_nactions()

unsigned int cypher_ast_merge_nactions ( const cypher_astnode_t node)

Get the number of actions in a CYPHER_AST_MERGE node.

If the node is not an instance of CYPHER_AST_MERGE then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of actions.

◆ cypher_ast_merge_properties()

cypher_astnode_t* cypher_ast_merge_properties ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MERGE_PROPERTIES node.

The node will also be an instance of CYPHER_AST_SET_ITEM.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_merge_properties_get_expression()

const cypher_astnode_t* cypher_ast_merge_properties_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_MERGE_PROPERTIES node.

If the node is not an instance of CYPHER_AST_MERGE_PROPERTIES then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_merge_properties_get_identifier()

const cypher_astnode_t* cypher_ast_merge_properties_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_MERGE_PROPERTIES node.

If the node is not an instance of CYPHER_AST_MERGE_PROPERTIES then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_named_path()

cypher_astnode_t* cypher_ast_named_path ( const cypher_astnode_t identifier,
const cypher_astnode_t path,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_NAMED_PATH node.

The node will also be an instance of CYPHER_AST_PATTERN_PATH.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[path]A CYPHER_AST_PATTERN_PATH node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_named_path_get_identifier()

const cypher_astnode_t* cypher_ast_named_path_get_identifier ( const cypher_astnode_t node)

Get the identifier from a CYPHER_AST_NAMED_PATH node.

If the node is not an instance of CYPHER_AST_NAMED_PATH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_named_path_get_path()

const cypher_astnode_t* cypher_ast_named_path_get_path ( const cypher_astnode_t node)

Get the unnamed pattern path from a CYPHER_AST_NAMED_PATH node.

If the node is not an instance of CYPHER_AST_NAMED_PATH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PATTERN_PATH node.

◆ cypher_ast_node_id_lookup()

cypher_astnode_t* cypher_ast_node_id_lookup ( const cypher_astnode_t identifier,
cypher_astnode_t *const *  ids,
unsigned int  nids,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_NODE_ID_LOOKUP node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[ids]Node IDs for lookup, all of type CYPHER_AST_INTEGER.
[nids]The number of node IDs.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_node_id_lookup_get_id()

const cypher_astnode_t* cypher_ast_node_id_lookup_get_id ( const cypher_astnode_t node,
unsigned int  index 
)

Get an id of a CYPHER_AST_NODE_ID_LOOKUP node.

If the node is not an instance of CYPHER_AST_NODE_ID_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the id.
Returns
A CYPHER_AST_INTEGER node, or null.

◆ cypher_ast_node_id_lookup_get_identifier()

const cypher_astnode_t* cypher_ast_node_id_lookup_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_NODE_ID_LOOKUP node.

If the node is not an instance of CYPHER_AST_NODE_ID_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_node_id_lookup_nids()

unsigned int cypher_ast_node_id_lookup_nids ( const cypher_astnode_t node)

Get the number of ids in a CYPHER_AST_NODE_ID_LOOKUP node.

If the node is not an instance of CYPHER_AST_NODE_ID_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of ids.

◆ cypher_ast_node_index_lookup()

cypher_astnode_t* cypher_ast_node_index_lookup ( const cypher_astnode_t identifier,
const cypher_astnode_t index_name,
const cypher_astnode_t prop_name,
const cypher_astnode_t lookup,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_NODE_INDEX_LOOKUP node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[index_name]A CYPHER_AST_INDEX_NAME node.
[prop_name]A CYPHER_AST_PROP_NAME node.
[lookup]A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_node_index_lookup_get_identifier()

const cypher_astnode_t* cypher_ast_node_index_lookup_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_NODE_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_NODE_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_node_index_lookup_get_index_name()

const cypher_astnode_t* cypher_ast_node_index_lookup_get_index_name ( const cypher_astnode_t node)

Get the index name of a CYPHER_AST_NODE_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_NODE_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INDEX_NAME node.

◆ cypher_ast_node_index_lookup_get_lookup()

const cypher_astnode_t* cypher_ast_node_index_lookup_get_lookup ( const cypher_astnode_t node)

Get the lookup of a CYPHER_AST_NODE_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_NODE_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.

◆ cypher_ast_node_index_lookup_get_prop_name()

const cypher_astnode_t* cypher_ast_node_index_lookup_get_prop_name ( const cypher_astnode_t node)

Get the prop name of a CYPHER_AST_NODE_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_NODE_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_node_index_query()

cypher_astnode_t* cypher_ast_node_index_query ( const cypher_astnode_t identifier,
const cypher_astnode_t index_name,
const cypher_astnode_t query,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_NODE_INDEX_QUERY node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[index_name]A CYPHER_AST_INDEX_NAME node.
[query]A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_node_index_query_get_identifier()

const cypher_astnode_t* cypher_ast_node_index_query_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_NODE_INDEX_QUERY node.

If the node is not an instance of CYPHER_AST_NODE_INDEX_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_node_index_query_get_index_name()

const cypher_astnode_t* cypher_ast_node_index_query_get_index_name ( const cypher_astnode_t node)

Get the index name of a CYPHER_AST_NODE_INDEX_QUERY node.

If the node is not an instance of CYPHER_AST_NODE_INDEX_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INDEX_NAME node.

◆ cypher_ast_node_index_query_get_query()

const cypher_astnode_t* cypher_ast_node_index_query_get_query ( const cypher_astnode_t node)

Get the query of a CYPHER_AST_NODE_INDEX_QUERY node.

If the node is not an instance of CYPHER_AST_NODE_INDEX_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.

◆ cypher_ast_node_pattern()

cypher_astnode_t* cypher_ast_node_pattern ( const cypher_astnode_t identifier,
cypher_astnode_t *const *  labels,
unsigned int  nlabels,
const cypher_astnode_t properties,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_NODE_PATTERN node.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node, or null.
[labels]The labels in the pattern, which must all be of type CYPHER_AST_LABEL.
[nlabels]The number of labels in the pattern.
[properties]A CYPHER_AST_MAP node, a CYPHER_AST_PARAMETER node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_node_pattern_get_identifier()

const cypher_astnode_t* cypher_ast_node_pattern_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_NODE_PATTERN node.

If the node is not an instance of CYPHER_AST_NODE_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node, or null.

◆ cypher_ast_node_pattern_get_label()

const cypher_astnode_t* cypher_ast_node_pattern_get_label ( const cypher_astnode_t node,
unsigned int  index 
)

Get a label from a CYPHER_AST_NODE_PATTERN node.

If the node is not an instance of CYPHER_AST_NODE_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the label.
Returns
A CYPHER_AST_LABEL node, or null.

◆ cypher_ast_node_pattern_get_properties()

const cypher_astnode_t* cypher_ast_node_pattern_get_properties ( const cypher_astnode_t node)

Get the properties of a CYPHER_AST_NODE_PATTERN node.

If the node is not an instance of CYPHER_AST_NODE_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_MAP node, a CYPHER_AST_PARAMETER node, or null.

◆ cypher_ast_node_pattern_nlabels()

unsigned int cypher_ast_node_pattern_nlabels ( const cypher_astnode_t node)

Get the number of labels in a CYPHER_AST_NODE_PATTERN node.

If the node is not an instance of CYPHER_AST_NODE_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of labels.

◆ cypher_ast_none()

cypher_astnode_t* cypher_ast_none ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_NONE node.

The node will also be an instance of CYPHER_AST_LIST_COMPREHENSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_null()

cypher_astnode_t* cypher_ast_null ( struct cypher_input_range  range)

Construct a CYPHER_AST_NULL node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_on_create()

cypher_astnode_t* cypher_ast_on_create ( cypher_astnode_t *const *  items,
unsigned int  nitems,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ON_CREATE node.

The node will also be an instance of CYPHER_AST_MERGE_ACTION.

Parameters
[items]Items for ON CREATE, all of type CYPHER_AST_SET_ITEM.
[nitems]The number of ON CREATE items.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_on_create_get_item()

const cypher_astnode_t* cypher_ast_on_create_get_item ( const cypher_astnode_t node,
unsigned int  index 
)

Get an item from a CYPHER_AST_ON_CREATE node.

If the node is not an instance of CYPHER_AST_ON_CREATE then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the action.
Returns
A CYPHER_AST_SET_ITEM node, or null.

◆ cypher_ast_on_create_nitems()

unsigned int cypher_ast_on_create_nitems ( const cypher_astnode_t node)

Get the number of items in a CYPHER_AST_ON_CREATE node.

If the node is not an instance of CYPHER_AST_ON_CREATE then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of items.

◆ cypher_ast_on_match()

cypher_astnode_t* cypher_ast_on_match ( cypher_astnode_t *const *  items,
unsigned int  nitems,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ON_MATCH node.

The node will also be an instance of CYPHER_AST_MERGE_ACTION.

Parameters
[items]Items for ON MATCH, all of type CYPHER_AST_SET_ITEM.
[nitems]The number of ON MATCH items.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_on_match_get_item()

const cypher_astnode_t* cypher_ast_on_match_get_item ( const cypher_astnode_t node,
unsigned int  index 
)

Get an item from a CYPHER_AST_ON_MATCH node.

If the node is not an instance of CYPHER_AST_ON_MATCH then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the action.
Returns
A CYPHER_AST_SET_ITEM node, or null.

◆ cypher_ast_on_match_nitems()

unsigned int cypher_ast_on_match_nitems ( const cypher_astnode_t node)

Get the number of items in a CYPHER_AST_ON_MATCH node.

If the node is not an instance of CYPHER_AST_ON_MATCH then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of items.

◆ cypher_ast_order_by()

cypher_astnode_t* cypher_ast_order_by ( cypher_astnode_t *const *  items,
unsigned int  nitems,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_ORDER_BY node.

Parameters
[items]Items for ORDER BY, all of type CYPHER_AST_SORT_ITEM.
[nitems]The number of items.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_order_by_get_item()

const cypher_astnode_t* cypher_ast_order_by_get_item ( const cypher_astnode_t node,
unsigned int  index 
)

Get an item from a CYPHER_AST_ORDER_BY node.

If the node is not an instance of CYPHER_AST_ORDER_BY then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the action.
Returns
A CYPHER_AST_SET_ITEM node, or null.

◆ cypher_ast_order_by_nitems()

unsigned int cypher_ast_order_by_nitems ( const cypher_astnode_t node)

Get the number of items in a CYPHER_AST_ORDER_BY node.

If the node is not an instance of CYPHER_AST_ORDER_BY then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of items.

◆ cypher_ast_pair_map()

cypher_astnode_t* cypher_ast_pair_map ( cypher_astnode_t *const *  pairs,
unsigned int  nentries,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_MAP node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[pairs]An alternating list of keys for the map, of type CYPHER_AST_PROP_NAME, and values for the map, of type CYPHER_AST_EXPRESSION.
[nentries]The number of pairs (i.e. pairs must contain nentries*2 pointers).
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_parameter()

cypher_astnode_t* cypher_ast_parameter ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PARAMETER node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[s]A pointer to a character string containing the identifier name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_parameter_get_name()

const char* cypher_ast_parameter_get_name ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_PARAMETER node.

If the node is not an instance of CYPHER_AST_PARAMETER then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_pattern()

cypher_astnode_t* cypher_ast_pattern ( cypher_astnode_t *const *  paths,
unsigned int  npaths,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PATTERN node.

Parameters
[paths]The paths in the pattern, which must be all of type CYPHER_AST_PATTERN_PATH.
[npaths]The number of paths.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_pattern_comprehension()

cypher_astnode_t* cypher_ast_pattern_comprehension ( const cypher_astnode_t identifier,
const cypher_astnode_t pattern,
const cypher_astnode_t predicate,
const cypher_astnode_t eval,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PATTERN_COMPREHENSION node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node, or null.
[pattern]A CYPHER_AST_PATTERN node.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[eval]A CYPHER_AST_EXPRESSION node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_pattern_comprehension_get_eval()

const cypher_astnode_t* cypher_ast_pattern_comprehension_get_eval ( const cypher_astnode_t node)

Get the evaluation from a CYPHER_AST_PATTERN_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_PATTERN_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_pattern_comprehension_get_identifier()

const cypher_astnode_t* cypher_ast_pattern_comprehension_get_identifier ( const cypher_astnode_t node)

Get the identifier from a CYPHER_AST_PATTERN_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_PATTERN_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node, or null.

◆ cypher_ast_pattern_comprehension_get_pattern()

const cypher_astnode_t* cypher_ast_pattern_comprehension_get_pattern ( const cypher_astnode_t node)

Get the expression from a CYPHER_AST_PATTERN_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_PATTERN_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PATTERN_PATH node.

◆ cypher_ast_pattern_comprehension_get_predicate()

const cypher_astnode_t* cypher_ast_pattern_comprehension_get_predicate ( const cypher_astnode_t node)

Get the predicate from a CYPHER_AST_PATTERN_COMPREHENSION node.

If the node is not an instance of CYPHER_AST_PATTERN_COMPREHENSION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_pattern_get_path()

const cypher_astnode_t* cypher_ast_pattern_get_path ( const cypher_astnode_t node,
unsigned int  index 
)

Get a path from a CYPHER_AST_PATTERN node.

If the node is not an instance of CYPHER_AST_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the path.
Returns
A CYPHER_AST_PATTERN_PATH node, or null.

◆ cypher_ast_pattern_npaths()

unsigned int cypher_ast_pattern_npaths ( const cypher_astnode_t node)

Get the number of paths in a CYPHER_AST_PATTERN node.

If the node is not an instance of CYPHER_AST_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of paths.

◆ cypher_ast_pattern_path()

cypher_astnode_t* cypher_ast_pattern_path ( cypher_astnode_t *const *  elements,
unsigned int  nelements,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PATTERN_PATH node.

Parameters
[elements]The elements in the pattern, which must be of alternating types CYPHER_AST_NODE_PATTERN and CYPHER_AST_REL_PATTERN.
[nelements]The number of elements in the path, which must be odd.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_pattern_path_get_element()

const cypher_astnode_t* cypher_ast_pattern_path_get_element ( const cypher_astnode_t node,
unsigned int  index 
)

Get an element from a CYPHER_AST_PATTERN_PATH node.

If the node is not an instance of CYPHER_AST_PATTERN_PATH then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the element.
Returns
Either a CYPHER_AST_NODE_PATTERN node or a CYPHER_AST_REL_PATTERN node, depending on whether the index is even or odd respectively, or null if the index is larger than the number of elements..

◆ cypher_ast_pattern_path_nelements()

unsigned int cypher_ast_pattern_path_nelements ( const cypher_astnode_t node)

Get the number of elements in a CYPHER_AST_PATTERN_PATH node.

If the node is not an instance of CYPHER_AST_PATTERN_PATH then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of elements, which will be odd.

◆ cypher_ast_proc_name()

cypher_astnode_t* cypher_ast_proc_name ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PROC_NAME node.

Parameters
[s]A pointer to a character string containing the proc name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_proc_name_get_value()

const char* cypher_ast_proc_name_get_value ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_PROC_NAME node.

If the node is not an instance of CYPHER_AST_PROC_NAME then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_profile_option()

cypher_astnode_t* cypher_ast_profile_option ( cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PROFILE_OPTION node.

The node will also be an instance of CYPHER_AST_STATEMENT_OPTION.

Parameters
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_projection()

cypher_astnode_t* cypher_ast_projection ( const cypher_astnode_t expression,
const cypher_astnode_t alias,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PROJECTION node.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[alias]A CYPHER_AST_IDENTIFIER node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_projection_get_alias()

const cypher_astnode_t* cypher_ast_projection_get_alias ( const cypher_astnode_t node)

Get the alias from a CYPHER_AST_PROJECTION node.

If the node is not an instance of CYPHER_AST_PROJECTION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node, or null.

◆ cypher_ast_projection_get_expression()

const cypher_astnode_t* cypher_ast_projection_get_expression ( const cypher_astnode_t node)

Get the expression from a CYPHER_AST_PROJECTION node.

If the node is not an instance of CYPHER_AST_PROJECTION then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_prop_name()

cypher_astnode_t* cypher_ast_prop_name ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PROP_NAME node.

Parameters
[s]A pointer to a character string containing the property name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_prop_name_get_value()

const char* cypher_ast_prop_name_get_value ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_PROP_NAME node.

If the node is not an instance of CYPHER_AST_PROP_NAME then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_property_operator()

cypher_astnode_t* cypher_ast_property_operator ( const cypher_astnode_t expression,
const cypher_astnode_t prop_name,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_PROPERTY_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[prop_name]A CYPHER_AST_PROP_NAME node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_property_operator_get_expression()

const cypher_astnode_t* cypher_ast_property_operator_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_PROPERTY_OPERATOR node.

If the node is not an instance of CYPHER_AST_PROPERTY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_property_operator_get_prop_name()

const cypher_astnode_t* cypher_ast_property_operator_get_prop_name ( const cypher_astnode_t node)

Get the property name of a CYPHER_AST_PROPERTY_OPERATOR node.

If the node is not an instance of CYPHER_AST_PROPERTY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_query()

cypher_astnode_t* cypher_ast_query ( cypher_astnode_t *const *  options,
unsigned int  noptions,
cypher_astnode_t *const *  clauses,
unsigned int  nclauses,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_QUERY node.

Parameters
[options]Options for the query, all of type CYPHER_AST_QUERY_OPTION.
[noptions]The number of options (may be zero).
[clauses]Clauses for the query, all of type CYPHER_AST_QUERY_CLAUSE.
[nclauses]The number of clauses.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_query_get_clause()

const cypher_astnode_t* cypher_ast_query_get_clause ( const cypher_astnode_t node,
unsigned int  index 
)

Get a clause of a CYPHER_AST_QUERY node.

If the node is not an instance of CYPHER_AST_QUERY then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the clause.
Returns
A CYPHER_AST_QUERY_OPTION node, or null.

◆ cypher_ast_query_get_option()

const cypher_astnode_t* cypher_ast_query_get_option ( const cypher_astnode_t node,
unsigned int  index 
)

Get an option of a CYPHER_AST_QUERY node.

If the node is not an instance of CYPHER_AST_QUERY then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the option.
Returns
A CYPHER_AST_QUERY_OPTION node, or null.

◆ cypher_ast_query_nclauses()

unsigned int cypher_ast_query_nclauses ( const cypher_astnode_t node)

Get the number of clauses in a CYPHER_AST_QUERY node.

If the node is not an instance of CYPHER_AST_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of clauses.

◆ cypher_ast_query_noptions()

unsigned int cypher_ast_query_noptions ( const cypher_astnode_t node)

Get the number of options in a CYPHER_AST_QUERY node.

If the node is not an instance of CYPHER_AST_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of options.

◆ cypher_ast_range()

cypher_astnode_t* cypher_ast_range ( const cypher_astnode_t start,
const cypher_astnode_t end,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_RANGE node.

Parameters
[start]A CYPHER_AST_INTEGER, or null.
[end]A CYPHER_AST_INTEGER, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_range_get_end()

const cypher_astnode_t* cypher_ast_range_get_end ( const cypher_astnode_t node)

Get the end of a CYPHER_AST_RANGE node.

If the node is not an instance of CYPHER_AST_RANGE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_RANGE node, or null.

◆ cypher_ast_range_get_start()

const cypher_astnode_t* cypher_ast_range_get_start ( const cypher_astnode_t node)

Get the start of a CYPHER_AST_RANGE node.

If the node is not an instance of CYPHER_AST_RANGE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_RANGE node, or null.

◆ cypher_ast_reduce()

cypher_astnode_t* cypher_ast_reduce ( const cypher_astnode_t accumulator,
const cypher_astnode_t init,
const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t eval,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REDUCE node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[accumulator]A CYPHER_AST_IDENTIFIER node.
[init]A CYPHER_AST_EXPRESSION node.
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[eval]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_reduce_get_accumulator()

const cypher_astnode_t* cypher_ast_reduce_get_accumulator ( const cypher_astnode_t node)

Get the accumulator from a CYPHER_AST_REDUCE node.

If the node is not an instance of CYPHER_AST_REDUCE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_reduce_get_eval()

const cypher_astnode_t* cypher_ast_reduce_get_eval ( const cypher_astnode_t node)

Get the evaluation from a CYPHER_AST_REDUCE node.

If the node is not an instance of CYPHER_AST_REDUCE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_reduce_get_expression()

const cypher_astnode_t* cypher_ast_reduce_get_expression ( const cypher_astnode_t node)

Get the expression from a CYPHER_AST_REDUCE node.

If the node is not an instance of CYPHER_AST_REDUCE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_reduce_get_identifier()

const cypher_astnode_t* cypher_ast_reduce_get_identifier ( const cypher_astnode_t node)

Get the identifier from a CYPHER_AST_REDUCE node.

If the node is not an instance of CYPHER_AST_REDUCE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_reduce_get_init()

const cypher_astnode_t* cypher_ast_reduce_get_init ( const cypher_astnode_t node)

Get the accumulator init expression from a CYPHER_AST_REDUCE node.

If the node is not an instance of CYPHER_AST_REDUCE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_rel_id_lookup()

cypher_astnode_t* cypher_ast_rel_id_lookup ( const cypher_astnode_t identifier,
cypher_astnode_t *const *  ids,
unsigned int  nids,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REL_ID_LOOKUP node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[ids]Node IDs for lookup, all of type CYPHER_AST_INTEGER.
[nids]The number of node IDs.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_rel_id_lookup_get_id()

const cypher_astnode_t* cypher_ast_rel_id_lookup_get_id ( const cypher_astnode_t node,
unsigned int  index 
)

Get an id of a CYPHER_AST_REL_ID_LOOKUP node.

If the node is not an instance of CYPHER_AST_REL_ID_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the id.
Returns
A CYPHER_AST_INTEGER node, or null.

◆ cypher_ast_rel_id_lookup_get_identifier()

const cypher_astnode_t* cypher_ast_rel_id_lookup_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_REL_ID_LOOKUP node.

If the node is not an instance of CYPHER_AST_REL_ID_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_rel_id_lookup_nids()

unsigned int cypher_ast_rel_id_lookup_nids ( const cypher_astnode_t node)

Get the number of ids in a CYPHER_AST_REL_ID_LOOKUP node.

If the node is not an instance of CYPHER_AST_REL_ID_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of ids.

◆ cypher_ast_rel_index_lookup()

cypher_astnode_t* cypher_ast_rel_index_lookup ( const cypher_astnode_t identifier,
const cypher_astnode_t index_name,
const cypher_astnode_t prop_name,
const cypher_astnode_t lookup,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REL_INDEX_LOOKUP node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[index_name]A CYPHER_AST_INDEX_NAME node.
[prop_name]A CYPHER_AST_PROP_NAME node.
[lookup]A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_rel_index_lookup_get_identifier()

const cypher_astnode_t* cypher_ast_rel_index_lookup_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_REL_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_REL_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_rel_index_lookup_get_index_name()

const cypher_astnode_t* cypher_ast_rel_index_lookup_get_index_name ( const cypher_astnode_t node)

Get the index name of a CYPHER_AST_REL_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_REL_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INDEX_NAME node.

◆ cypher_ast_rel_index_lookup_get_lookup()

const cypher_astnode_t* cypher_ast_rel_index_lookup_get_lookup ( const cypher_astnode_t node)

Get the lookup of a CYPHER_AST_REL_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_REL_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.

◆ cypher_ast_rel_index_lookup_get_prop_name()

const cypher_astnode_t* cypher_ast_rel_index_lookup_get_prop_name ( const cypher_astnode_t node)

Get the prop name of a CYPHER_AST_REL_INDEX_LOOKUP node.

If the node is not an instance of CYPHER_AST_REL_INDEX_LOOKUP then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_rel_index_query()

cypher_astnode_t* cypher_ast_rel_index_query ( const cypher_astnode_t identifier,
const cypher_astnode_t index_name,
const cypher_astnode_t query,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REL_INDEX_QUERY node.

The node will also be an instance of CYPHER_AST_START_POINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[index_name]A CYPHER_AST_INDEX_NAME node.
[query]A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_rel_index_query_get_identifier()

const cypher_astnode_t* cypher_ast_rel_index_query_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_REL_INDEX_QUERY node.

If the node is not an instance of CYPHER_AST_REL_INDEX_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_rel_index_query_get_index_name()

const cypher_astnode_t* cypher_ast_rel_index_query_get_index_name ( const cypher_astnode_t node)

Get the index name of a CYPHER_AST_REL_INDEX_QUERY node.

If the node is not an instance of CYPHER_AST_REL_INDEX_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INDEX_NAME node.

◆ cypher_ast_rel_index_query_get_query()

const cypher_astnode_t* cypher_ast_rel_index_query_get_query ( const cypher_astnode_t node)

Get the query of a CYPHER_AST_REL_INDEX_QUERY node.

If the node is not an instance of CYPHER_AST_REL_INDEX_QUERY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_STRING or CYPHER_AST_PARAMETER node.

◆ cypher_ast_rel_pattern()

cypher_astnode_t* cypher_ast_rel_pattern ( enum cypher_rel_direction  direction,
const cypher_astnode_t identifier,
cypher_astnode_t *const *  reltypes,
unsigned int  nreltypes,
const cypher_astnode_t properties,
const cypher_astnode_t varlength,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REL_PATTERN node.

Parameters
[direction]The direction of the relationship.
[identifier]A CYPHER_AST_IDENTIFIER node, or null.
[reltypes]The relationship types in the pattern, all of type CYPHER_AST_RELTYPE.
[nreltypes]The number of relationship types in the pattern.
[properties]A CYPHER_AST_MAP node, a CYPHER_AST_PARAMETER node, or null.
[varlength]A CYPHER_AST_RANGE node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_rel_pattern_get_direction()

enum cypher_rel_direction cypher_ast_rel_pattern_get_direction ( const cypher_astnode_t node)

Get the direction of a CYPHER_AST_REL_PATTERN node.

If the node is not an instance of CYPHER_AST_REL_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
The direction of the relationship.

◆ cypher_ast_rel_pattern_get_identifier()

const cypher_astnode_t* cypher_ast_rel_pattern_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_REL_PATTERN node.

If the node is not an instance of CYPHER_AST_REL_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node, or null.

◆ cypher_ast_rel_pattern_get_properties()

const cypher_astnode_t* cypher_ast_rel_pattern_get_properties ( const cypher_astnode_t node)

Get the properties of a CYPHER_AST_REL_PATTERN node.

If the node is not an instance of CYPHER_AST_REL_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_MAP node, a CYPHER_AST_PARAMETER node, or null.

◆ cypher_ast_rel_pattern_get_reltype()

const cypher_astnode_t* cypher_ast_rel_pattern_get_reltype ( const cypher_astnode_t node,
unsigned int  index 
)

Get a reltypes from a CYPHER_AST_REL_PATTERN node.

If the node is not an instance of CYPHER_AST_REL_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the reltypes.
Returns
A CYPHER_AST_LABEL node, or null.

◆ cypher_ast_rel_pattern_get_varlength()

const cypher_astnode_t* cypher_ast_rel_pattern_get_varlength ( const cypher_astnode_t node)

Get the varlength range of a CYPHER_AST_REL_PATTERN node.

If the node is not an instance of CYPHER_AST_REL_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_RANGE node, or null.

◆ cypher_ast_rel_pattern_nreltypes()

unsigned int cypher_ast_rel_pattern_nreltypes ( const cypher_astnode_t node)

Get the number of reltypes in a CYPHER_AST_REL_PATTERN node.

If the node is not an instance of CYPHER_AST_REL_PATTERN then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of reltypes.

◆ cypher_ast_reltype()

cypher_astnode_t* cypher_ast_reltype ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_RELTYPE node.

Parameters
[s]A pointer to a character string containing the label name.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_reltype_get_name()

const char* cypher_ast_reltype_get_name ( const cypher_astnode_t node)

Get a null terminated name string for a CYPHER_AST_RELTYPE node.

If the node is not an instance of CYPHER_AST_RELTYPE then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_remove()

cypher_astnode_t* cypher_ast_remove ( cypher_astnode_t *const *  items,
unsigned int  nitems,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REMOVE node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[items]Items for REMOVE, all of type CYPHER_AST_REMOVE_ITEM.
[nitems]The number of items.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_remove_get_item()

const cypher_astnode_t* cypher_ast_remove_get_item ( const cypher_astnode_t node,
unsigned int  index 
)

Get an item from a CYPHER_AST_REMOVE node.

If the node is not an instance of CYPHER_AST_REMOVE then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the item.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_remove_labels()

cypher_astnode_t* cypher_ast_remove_labels ( const cypher_astnode_t identifier,
cypher_astnode_t *const *  labels,
unsigned int  nlabels,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REMOVE_LABELS node.

The node will also be an instance of CYPHER_AST_REMOVE_ITEM.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[labels]Labels to remove, all of type CYPHER_AST_LABEL.
[nlabels]The number of labels.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_remove_labels_get_identifier()

const cypher_astnode_t* cypher_ast_remove_labels_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_REMOVE_LABELS node.

If the node is not an instance of CYPHER_AST_REMOVE_LABELS then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_remove_labels_get_label()

const cypher_astnode_t* cypher_ast_remove_labels_get_label ( const cypher_astnode_t node,
unsigned int  index 
)

Get a label from a CYPHER_AST_REMOVE_LABELS node.

If the node is not an instance of CYPHER_AST_REMOVE_LABELS then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the label.
Returns
A CYPHER_AST_LABEL node, or null.

◆ cypher_ast_remove_labels_nlabels()

unsigned int cypher_ast_remove_labels_nlabels ( const cypher_astnode_t node)

Get the number of labels in a CYPHER_AST_REMOVE_LABELS node.

If the node is not an instance of CYPHER_AST_REMOVE_LABELS then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of labels.

◆ cypher_ast_remove_nitems()

unsigned int cypher_ast_remove_nitems ( const cypher_astnode_t node)

Get the number of items in a CYPHER_AST_REMOVE node.

If the node is not an instance of CYPHER_AST_REMOVE then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of items.

◆ cypher_ast_remove_property()

cypher_astnode_t* cypher_ast_remove_property ( const cypher_astnode_t property,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_REMOVE_PROPERTY node.

The node will also be an instance of CYPHER_AST_REMOVE_ITEM.

Parameters
[property]A CYPHER_AST_PROPERTY_OPERATOR node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_remove_property_get_property()

const cypher_astnode_t* cypher_ast_remove_property_get_property ( const cypher_astnode_t node)

Get the property operator of a CYPHER_AST_REMOVE_PROPERTY node.

If the node is not an instance of CYPHER_AST_REMOVE_PROPERTY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROPERTY_OPERATOR node.

◆ cypher_ast_return()

cypher_astnode_t* cypher_ast_return ( bool  distinct,
bool  include_existing,
cypher_astnode_t *const *  projections,
unsigned int  nprojections,
const cypher_astnode_t order_by,
const cypher_astnode_t skip,
const cypher_astnode_t limit,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_RETURN node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[distinct]true if the DISTINCT keyword is specified.
[include_existing]true if including existing identifiers (i.e. RETURN *).
[projections]Projections to return, all of type CYPHER_AST_PROJECTION.
[nprojections]The number of projections.
[order_by]A CYPHER_AST_ORDER_BY node, or null.
[skip]A CYPHER_AST_INTEGER node, or null.
[limit]A CYPHER_AST_INTEGER node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_return_get_limit()

const cypher_astnode_t* cypher_ast_return_get_limit ( const cypher_astnode_t node)

Get the limit value of a CYPHER_AST_RETURN node.

If the node is not an instance of CYPHER_AST_RETURN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INTEGER node, or null.

◆ cypher_ast_return_get_order_by()

const cypher_astnode_t* cypher_ast_return_get_order_by ( const cypher_astnode_t node)

Get the "order by" node of a CYPHER_AST_RETURN node.

If the node is not an instance of CYPHER_AST_RETURN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_ORDER_BY node, or null.

◆ cypher_ast_return_get_projection()

const cypher_astnode_t* cypher_ast_return_get_projection ( const cypher_astnode_t node,
unsigned int  index 
)

Get a projection from a CYPHER_AST_RETURN node.

If the node is not an instance of CYPHER_AST_RETURN then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the identifier.
Returns
A CYPHER_AST_PROJECTION node, or null.

◆ cypher_ast_return_get_skip()

const cypher_astnode_t* cypher_ast_return_get_skip ( const cypher_astnode_t node)

Get the skip value of a CYPHER_AST_RETURN node.

If the node is not an instance of CYPHER_AST_RETURN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INTEGER node, or null.

◆ cypher_ast_return_has_include_existing()

bool cypher_ast_return_has_include_existing ( const cypher_astnode_t node)

Check if including existing identifiers (*) in a CYPHER_AST_RETURN node.

If the node is not an instance of CYPHER_AST_RETURN then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if including existing identifiers, false otherwise.

◆ cypher_ast_return_is_distinct()

bool cypher_ast_return_is_distinct ( const cypher_astnode_t node)

Check if DISTINCT is set in a CYPHER_AST_RETURN node.

If the node is not an instance of CYPHER_AST_RETURN then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if DISTINCT is set, false otherwise.

◆ cypher_ast_return_nprojections()

unsigned int cypher_ast_return_nprojections ( const cypher_astnode_t node)

Get the number of projections in a CYPHER_AST_RETURN node.

If the node is not an instance of CYPHER_AST_RETURN then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of projections.

◆ cypher_ast_set()

cypher_astnode_t* cypher_ast_set ( cypher_astnode_t *const *  items,
unsigned int  nitems,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SET node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[items]Items for SET, all of type CYPHER_AST_SET_ITEM.
[nitems]The number of SET items.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_set_all_properties()

cypher_astnode_t* cypher_ast_set_all_properties ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SET_ALL_PROPERTIES node.

The node will also be an instance of CYPHER_AST_SET_ITEM.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_set_all_properties_get_expression()

const cypher_astnode_t* cypher_ast_set_all_properties_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_SET_ALL_PROPERTIES node.

If the node is not an instance of CYPHER_AST_SET_ALL_PROPERTIES then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_set_all_properties_get_identifier()

const cypher_astnode_t* cypher_ast_set_all_properties_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_SET_ALL_PROPERTIES node.

If the node is not an instance of CYPHER_AST_SET_ALL_PROPERTIES then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_set_get_item()

const cypher_astnode_t* cypher_ast_set_get_item ( const cypher_astnode_t node,
unsigned int  index 
)

Get an item from a CYPHER_AST_SET node.

If the node is not an instance of CYPHER_AST_SET then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the action.
Returns
A CYPHER_AST_SET_ITEM node, or null.

◆ cypher_ast_set_labels()

cypher_astnode_t* cypher_ast_set_labels ( const cypher_astnode_t identifier,
cypher_astnode_t *const *  labels,
unsigned int  nlabels,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SET_LABELS node.

The node will also be an instance of CYPHER_AST_SET_ITEM.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[labels]The labels to be set, which must all be of type CYPHER_AST_LABEL.
[nlabels]The number of labels to be set.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_set_labels_get_identifier()

const cypher_astnode_t* cypher_ast_set_labels_get_identifier ( const cypher_astnode_t node)

Get the identifier of a CYPHER_AST_SET_LABELS node.

If the node is not an instance of CYPHER_AST_SET_LABELS then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_set_labels_get_label()

const cypher_astnode_t* cypher_ast_set_labels_get_label ( const cypher_astnode_t node,
unsigned int  index 
)

Get a label from a CYPHER_AST_SET_LABELS node.

If the node is not an instance of CYPHER_AST_SET_LABELS then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the label.
Returns
A CYPHER_AST_LABEL node, or null.

◆ cypher_ast_set_labels_nlabels()

unsigned int cypher_ast_set_labels_nlabels ( const cypher_astnode_t node)

Get the number of labels in a CYPHER_AST_SET_LABELS node.

If the node is not an instance of CYPHER_AST_SET_LABELS then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of labels.

◆ cypher_ast_set_nitems()

unsigned int cypher_ast_set_nitems ( const cypher_astnode_t node)

Get the number of items in a CYPHER_AST_SET node.

If the node is not an instance of CYPHER_AST_SET then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of items.

◆ cypher_ast_set_property()

cypher_astnode_t* cypher_ast_set_property ( const cypher_astnode_t property,
const cypher_astnode_t expression,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SET_PROPERTY node.

The node will also be an instance of CYPHER_AST_SET_ITEM.

Parameters
[property]A CYPHER_AST_PROPERTY_OPERATOR node.
[expression]A CYPHER_AST_EXPRESSION node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_set_property_get_expression()

const cypher_astnode_t* cypher_ast_set_property_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_SET_PROPERTY node.

If the node is not an instance of CYPHER_AST_SET_PROPERTY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_set_property_get_property()

const cypher_astnode_t* cypher_ast_set_property_get_property ( const cypher_astnode_t node)

Get the property operator of a CYPHER_AST_SET_PROPERTY node.

If the node is not an instance of CYPHER_AST_SET_PROPERTY then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROPERTY_OPERATOR node.

◆ cypher_ast_shortest_path()

cypher_astnode_t* cypher_ast_shortest_path ( bool  single,
const cypher_astnode_t path,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SHORTEST_PATH node.

The node will also be an instance of CYPHER_AST_PATTERN_PATH and CYPHER_AST_EXPRESSION.

Parameters
[single]true if shortestPath, and false if allShortestPaths.
[path]A CYPHER_AST_PATTERN_PATH node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_shortest_path_get_path()

const cypher_astnode_t* cypher_ast_shortest_path_get_path ( const cypher_astnode_t node)

Get the unnamed pattern path from a CYPHER_AST_SHORTEST_PATH node.

If the node is not an instance of CYPHER_AST_SHORTEST_PATH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PATTERN_PATH node.

◆ cypher_ast_shortest_path_is_single()

bool cypher_ast_shortest_path_is_single ( const cypher_astnode_t node)

Check if a CYPHER_AST_SHORTEST_PATH node is for a single path.

If the node is not an instance of CYPHER_AST_SHORTEST_PATH then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if shortestPath, and false if allShortestPaths.

◆ cypher_ast_single()

cypher_astnode_t* cypher_ast_single ( const cypher_astnode_t identifier,
const cypher_astnode_t expression,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SINGLE node.

The node will also be an instance of CYPHER_AST_LIST_COMPREHENSION.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[expression]A CYPHER_AST_EXPRESSION node.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_slice_operator()

cypher_astnode_t* cypher_ast_slice_operator ( const cypher_astnode_t expression,
const cypher_astnode_t start,
const cypher_astnode_t end,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SLICE_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[start]A CYPHER_AST_EXPRESSION node, or null.
[end]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_slice_operator_get_end()

const cypher_astnode_t* cypher_ast_slice_operator_get_end ( const cypher_astnode_t node)

Get the end of a CYPHER_AST_SLICE_OPERATOR node.

If the node is not an instance of CYPHER_AST_SLICE_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_slice_operator_get_expression()

const cypher_astnode_t* cypher_ast_slice_operator_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_SLICE_OPERATOR node.

If the node is not an instance of CYPHER_AST_SLICE_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_slice_operator_get_start()

const cypher_astnode_t* cypher_ast_slice_operator_get_start ( const cypher_astnode_t node)

Get the start of a CYPHER_AST_SLICE_OPERATOR node.

If the node is not an instance of CYPHER_AST_SLICE_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_sort_item()

cypher_astnode_t* cypher_ast_sort_item ( const cypher_astnode_t expression,
bool  ascending,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SORT_ITEM node.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[ascending]true if the sort item is ascending.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_sort_item_get_expression()

const cypher_astnode_t* cypher_ast_sort_item_get_expression ( const cypher_astnode_t node)

Get the expression from a CYPHER_AST_SORT_ITEM node.

If the node is not an instance of CYPHER_AST_SORT_ITEM then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_sort_item_is_ascending()

bool cypher_ast_sort_item_is_ascending ( const cypher_astnode_t node)

Check if a CYPHER_AST_SORT_ITEM node is using ascending order.

If the node is not an instance of CYPHER_AST_SORT_ITEM then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if the sort item is ascending, false otherwise.

◆ cypher_ast_start()

cypher_astnode_t* cypher_ast_start ( cypher_astnode_t *const *  points,
unsigned int  npoints,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_START node.

The node will also be an instance of CYPHER_AST_QUERY_CLAUSE.

Parameters
[points]Start points for the statement, all of type CYPHER_AST_START_POINT.
[npoints]The number of start points.
[predicate]A CYPHER_AST_EXPRESSION, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_start_get_point()

const cypher_astnode_t* cypher_ast_start_get_point ( const cypher_astnode_t node,
unsigned int  index 
)

Get a start point of a CYPHER_AST_START node.

If the node is not an instance of CYPHER_AST_START then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the start point.
Returns
A CYPHER_AST_QUERY_OPTION node, or null.

◆ cypher_ast_start_get_predicate()

const cypher_astnode_t* cypher_ast_start_get_predicate ( const cypher_astnode_t node)

Get the predicate of a CYPHER_AST_START node.

If the node is not an instance of CYPHER_AST_START then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_start_npoints()

unsigned int cypher_ast_start_npoints ( const cypher_astnode_t node)

Get the number of start points in a CYPHER_AST_START node.

If the node is not an instance of CYPHER_AST_START then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of start points.

◆ cypher_ast_statement()

cypher_astnode_t* cypher_ast_statement ( cypher_astnode_t *const *  options,
unsigned int  noptions,
const cypher_astnode_t body,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_STATEMENT node.

Parameters
[options]Options for the statement, all of type CYPHER_AST_STATEMENT_OPTION.
[noptions]The number of options (may be zero).
[body]The body of the statement, which must be either an CYPHER_AST_QUERY or CYPHER_AST_SCHEMA_COMMAND.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_statement_get_body()

const cypher_astnode_t* cypher_ast_statement_get_body ( const cypher_astnode_t node)

Get the body of a CYPHER_AST_STATEMENT node.

If the node is not an instance of CYPHER_AST_STATEMENT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_QUERY or CYPHER_AST_SCHEMA_COMMAND node.

◆ cypher_ast_statement_get_option()

const cypher_astnode_t* cypher_ast_statement_get_option ( const cypher_astnode_t node,
unsigned int  index 
)

Get an option of a CYPHER_AST_STATEMENT node.

If the node is not an instance of CYPHER_AST_STATEMENT then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the option.
Returns
A CYPHER_AST_STATEMENT_OPTION node, or null.

◆ cypher_ast_statement_noptions()

unsigned int cypher_ast_statement_noptions ( const cypher_astnode_t node)

Get the number of options in a CYPHER_AST_STATEMENT node.

If the node is not an instance of CYPHER_AST_STATEMENT then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of options.

◆ cypher_ast_string()

cypher_astnode_t* cypher_ast_string ( const char *  s,
size_t  n,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_STRING node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[s]A pointer to a character string.
[n]The length of the character string.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_string_get_value()

const char* cypher_ast_string_get_value ( const cypher_astnode_t node)

Get the null terminated string value from a CYPHER_AST_STRING node.

If the node is not an instance of CYPHER_AST_STRING then the result will be undefined.

Parameters
[node]The AST node.
Returns
A pointer to the null terminated string.

◆ cypher_ast_subscript_operator()

cypher_astnode_t* cypher_ast_subscript_operator ( const cypher_astnode_t expression,
const cypher_astnode_t subscript,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_SUBSCRIPT_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[subscript]A CYPHER_AST_EXPRESSION node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_subscript_operator_get_expression()

const cypher_astnode_t* cypher_ast_subscript_operator_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_SUBSCRIPT_OPERATOR node.

If the node is not an instance of CYPHER_AST_SUBSCRIPT_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_subscript_operator_get_subscript()

const cypher_astnode_t* cypher_ast_subscript_operator_get_subscript ( const cypher_astnode_t node)

Get the subscript of a CYPHER_AST_SUBSCRIPT_OPERATOR node.

If the node is not an instance of CYPHER_AST_SUBSCRIPT_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_true()

cypher_astnode_t* cypher_ast_true ( struct cypher_input_range  range)

Construct a CYPHER_AST_TRUE node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_unary_operator()

cypher_astnode_t* cypher_ast_unary_operator ( const cypher_operator_t op,
const cypher_astnode_t arg,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_UNARY_OPERATOR node.

The node will also be an instance of CYPHER_AST_EXPRESSION.

Parameters
[op]The operator.
[arg]The argument to the unary operator, of type CYPHER_AST_EXPRESSION.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_unary_operator_get_argument()

const cypher_astnode_t* cypher_ast_unary_operator_get_argument ( const cypher_astnode_t node)

Get the argument of a CYPHER_AST_UNARY_OPERATOR node.

If the node is not an instance of CYPHER_AST_UNARY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
The argument, of type CYPHER_AST_EXPRESSION.

◆ cypher_ast_unary_operator_get_operator()

const cypher_operator_t* cypher_ast_unary_operator_get_operator ( const cypher_astnode_t node)

Get the operator of a CYPHER_AST_UNARY_OPERATOR node.

If the node is not an instance of CYPHER_AST_UNARY_OPERATOR then the result will be undefined.

Parameters
[node]The AST node.
Returns
The operator.

◆ cypher_ast_union()

cypher_astnode_t* cypher_ast_union ( bool  all,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_UNION node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[all]true if ALL is specified for the union.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_union_has_all()

bool cypher_ast_union_has_all ( const cypher_astnode_t node)

Check if a CYPHER_AST_UNION node has ALL specified.

If the node is not an instance of CYPHER_AST_UNION then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if ALL is specified, false otherwise.

◆ cypher_ast_unwind()

cypher_astnode_t* cypher_ast_unwind ( const cypher_astnode_t expression,
const cypher_astnode_t alias,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_UNWIND node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[expression]A CYPHER_AST_EXPRESSION node.
[alias]A CYPHER_AST_IDENTIFIER node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_unwind_get_alias()

const cypher_astnode_t* cypher_ast_unwind_get_alias ( const cypher_astnode_t node)

Get the alias of a CYPHER_AST_UNWIND node.

If the node is not an instance of CYPHER_AST_UNWIND then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_unwind_get_expression()

const cypher_astnode_t* cypher_ast_unwind_get_expression ( const cypher_astnode_t node)

Get the expression of a CYPHER_AST_UNWIND node.

If the node is not an instance of CYPHER_AST_UNWIND then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node.

◆ cypher_ast_using_index()

cypher_astnode_t* cypher_ast_using_index ( const cypher_astnode_t identifier,
const cypher_astnode_t label,
const cypher_astnode_t prop_name,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_USING_INDEX node.

The node will also be an instance of CYPHER_AST_MATCH_HINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[label]A CYPHER_AST_LABEL node.
[prop_name]A CYPHER_AST_PROP_NAME node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_using_index_get_identifier()

const cypher_astnode_t* cypher_ast_using_index_get_identifier ( const cypher_astnode_t node)

Get the identifer of a CYPHER_AST_USING_INDEX node.

If the node is not an instance of CYPHER_AST_USING_INDEX then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_using_index_get_label()

const cypher_astnode_t* cypher_ast_using_index_get_label ( const cypher_astnode_t node)

Get the label of a CYPHER_AST_USING_INDEX node.

If the node is not an instance of CYPHER_AST_USING_INDEX then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_using_index_get_prop_name()

const cypher_astnode_t* cypher_ast_using_index_get_prop_name ( const cypher_astnode_t node)

Get the label of a CYPHER_AST_USING_INDEX node.

If the node is not an instance of CYPHER_AST_USING_INDEX then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_PROP_NAME node.

◆ cypher_ast_using_join()

cypher_astnode_t* cypher_ast_using_join ( cypher_astnode_t *const *  identifiers,
unsigned int  nidentifiers,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_USING_JOIN node.

The node will also be an instance of CYPHER_AST_MATCH_HINT.

Parameters
[identifiers]Identifiers for the hint, all of type CYPHER_AST_IDENTIFIER.
[nidentifiers]The number of identifiers
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_using_join_get_identifier()

const cypher_astnode_t* cypher_ast_using_join_get_identifier ( const cypher_astnode_t node,
unsigned int  index 
)

Get a identifier from a CYPHER_AST_USING_JOIN node.

If the node is not an instance of CYPHER_AST_USING_JOIN then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the identifier.
Returns
A CYPHER_AST_IDENTIFIER node, or null.

◆ cypher_ast_using_join_nidentifiers()

unsigned int cypher_ast_using_join_nidentifiers ( const cypher_astnode_t node)

Get the number of identifiers in a CYPHER_AST_USING_JOIN node.

If the node is not an instance of CYPHER_AST_USING_JOIN then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of identifiers.

◆ cypher_ast_using_periodic_commit()

cypher_astnode_t* cypher_ast_using_periodic_commit ( const cypher_astnode_t limit,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_USING_PERIODIC_COMMIT node.

The node will also be an instance of CYPHER_AST_QUERY_OPTION.

Parameters
[limit]A CYPHER_AST_INTEGER, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_using_periodic_commit_get_limit()

const cypher_astnode_t* cypher_ast_using_periodic_commit_get_limit ( const cypher_astnode_t node)

Get the limit of a CYPHER_AST_USING_PERIODIC_COMMIT node.

If the node is not an instance of CYPHER_AST_USING_PERIODIC_COMMIT then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INTEGER node, or null.

◆ cypher_ast_using_scan()

cypher_astnode_t* cypher_ast_using_scan ( const cypher_astnode_t identifier,
const cypher_astnode_t label,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_USING_SCAN node.

The node will also be an instance of CYPHER_AST_MATCH_HINT.

Parameters
[identifier]A CYPHER_AST_IDENTIFIER node.
[label]A CYPHER_AST_LABEL node.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_using_scan_get_identifier()

const cypher_astnode_t* cypher_ast_using_scan_get_identifier ( const cypher_astnode_t node)

Get the identifer of a CYPHER_AST_USING_SCAN node.

If the node is not an instance of CYPHER_AST_USING_SCAN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_using_scan_get_label()

const cypher_astnode_t* cypher_ast_using_scan_get_label ( const cypher_astnode_t node)

Get the label of a CYPHER_AST_USING_SCAN node.

If the node is not an instance of CYPHER_AST_USING_SCAN then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_IDENTIFIER node.

◆ cypher_ast_with()

cypher_astnode_t* cypher_ast_with ( bool  distinct,
bool  include_existing,
cypher_astnode_t *const *  projections,
unsigned int  nprojections,
const cypher_astnode_t order_by,
const cypher_astnode_t skip,
const cypher_astnode_t limit,
const cypher_astnode_t predicate,
cypher_astnode_t **  children,
unsigned int  nchildren,
struct cypher_input_range  range 
)

Construct a CYPHER_AST_WITH node.

The node will also be an instance of CYPHER_AST_CLAUSE.

Parameters
[distinct]true if the DISTINCT keyword is specified.
[include_existing]true if including existing identifiers (i.e. WITH *).
[projections]Projections for with, all of type CYPHER_AST_PROJECTION.
[nprojections]The number of projections.
[order_by]A CYPHER_AST_ORDER_BY node, or null.
[skip]A CYPHER_AST_INTEGER node, or null.
[limit]A CYPHER_AST_INTEGER node, or null.
[predicate]A CYPHER_AST_EXPRESSION node, or null.
[children]The children of the node.
[nchildren]The number of children.
[range]The input range.
Returns
An AST node, or NULL if an error occurs (errno will be set).

◆ cypher_ast_with_get_limit()

const cypher_astnode_t* cypher_ast_with_get_limit ( const cypher_astnode_t node)

Get the limit value of a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INTEGER node, or null.

◆ cypher_ast_with_get_order_by()

const cypher_astnode_t* cypher_ast_with_get_order_by ( const cypher_astnode_t node)

Get the "order by" node of a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_ORDER_BY node, or null.

◆ cypher_ast_with_get_predicate()

const cypher_astnode_t* cypher_ast_with_get_predicate ( const cypher_astnode_t node)

Get the predicate of a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_EXPRESSION node, or null.

◆ cypher_ast_with_get_projection()

const cypher_astnode_t* cypher_ast_with_get_projection ( const cypher_astnode_t node,
unsigned int  index 
)

Get a projection from a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
[index]The index of the identifier.
Returns
A CYPHER_AST_PROJECTION node, or null.

◆ cypher_ast_with_get_skip()

const cypher_astnode_t* cypher_ast_with_get_skip ( const cypher_astnode_t node)

Get the skip value of a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
Returns
A CYPHER_AST_INTEGER node, or null.

◆ cypher_ast_with_has_include_existing()

bool cypher_ast_with_has_include_existing ( const cypher_astnode_t node)

Check if including existing identifiers (*) in a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if including existing identifiers, false otherwise.

◆ cypher_ast_with_is_distinct()

bool cypher_ast_with_is_distinct ( const cypher_astnode_t node)

Check if DISTINCT is present for a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
Returns
true if DISTINCT is set, false otherwise.

◆ cypher_ast_with_nprojections()

unsigned int cypher_ast_with_nprojections ( const cypher_astnode_t node)

Get the number of projections in a CYPHER_AST_WITH node.

If the node is not an instance of CYPHER_AST_WITH then the result will be undefined.

Parameters
[node]The AST node.
Returns
The number of projections.

◆ cypher_astnode_get_child()

const cypher_astnode_t* cypher_astnode_get_child ( const cypher_astnode_t node,
unsigned int  index 
)

Get a child from an AST node.

Parameters
[node]The AST node.
[index]The index of the child.
Returns
A pointer to the child of the AST node, or NULL if there is no argument at the specified index.

◆ cypher_astnode_instanceof()

bool cypher_astnode_instanceof ( const cypher_astnode_t node,
cypher_astnode_type_t  type 
)

Check the type of an AST node.

Parameters
[node]The AST node.
[type]The AST node type.
Returns
true if the node is of the specified type and false otherwise.

◆ cypher_astnode_nchildren()

unsigned int cypher_astnode_nchildren ( const cypher_astnode_t node)

Get the number of children from an AST node.

Parameters
[node]The AST node.
Returns
The number of children.

◆ cypher_astnode_range()

struct cypher_input_range cypher_astnode_range ( const cypher_astnode_t node)

Get the range of an AST node in the input.

Parameters
[node]The AST node.
Returns
The range.

◆ cypher_astnode_type()

cypher_astnode_type_t cypher_astnode_type ( const cypher_astnode_t node)

Get the type of an AST node.

Parameters
[node]The AST node.
Returns
The type of the node.

◆ cypher_astnode_typestr()

const char* cypher_astnode_typestr ( cypher_astnode_type_t  type)

Get a string description of the AST node type.

Parameters
[type]The AST node type.
Returns
A pointer to a null terminated string containing the type name.

◆ cypher_fparse()

cypher_parse_result_t* cypher_fparse ( FILE *  stream,
struct cypher_input_position last,
cypher_parser_config_t config,
uint_fast32_t  flags 
)

Parse a statement or command from a stream.

All statements and/or client commands are parsed from the input string, and a result returned. The result must be passed to cypher_parse_result_free() to release dynamically allocated memory. If the flag CYPHER_PARSE_ONLY_STATEMENTS is set, client commands will not be parsed.

Parameters
[stream]The stream to parse.
[last]Either NULL, or a pointer to a struct cypher_input_position that will be set position of the last character consumed from the input.
[config]Either NULL, or a pointer to configuration for the parser.
[flags]A bitmask of flags to control parsing.
Returns
A pointer to a cypher_parse_result_t, or NULL if an error occurs (errno will be set).

◆ cypher_fparse_each()

int cypher_fparse_each ( FILE *  stream,
cypher_parser_segment_callback_t  callback,
void *  userdata,
struct cypher_input_position last,
cypher_parser_config_t config,
uint_fast32_t  flags 
)

Parse segments from a stream.

The provided callback is invoked for every segment of parsed input, where each segments is separated by either a newline or semicolon (;), respectively depending on whether a client command is being parsed or not. If the flag CYPHER_PARSE_ONLY_STATEMENTS is set, then only semicolons will be used for delimiting segments, and client commands will not be parsed.

The segment will be released after the callback is complete, unless retained using cypher_parse_segment_retain().

Parameters
[stream]The stream to parse.
[callback]The callback to be invoked for each parsed segment.
[userdata]A pointer that will be provided to the callback.
[last]Either NULL, or a pointer to a struct cypher_input_position that will be set position of the last character consumed from the input.
[config]Either NULL, or a pointer to configuration for the parser.
[flags]A bitmask of flags to control parsing.
Returns
A pointer to a cypher_parse_result_t, or NULL if an error occurs (errno will be set).

◆ cypher_parse()

cypher_parse_result_t * cypher_parse ( const char *  s,
struct cypher_input_position last,
cypher_parser_config_t config,
uint_fast32_t  flags 
)

Parse a command or statement from a string.

All statements and/or client commands are parsed from the input string, and a result returned. The result must be passed to cypher_parse_result_free() to release dynamically allocated memory. If the flag CYPHER_PARSE_ONLY_STATEMENTS is set, client commands will not be parsed.

Parameters
[s]A null terminated string to parse.
[last]Either NULL, or a pointer to a struct cypher_input_position that will be set position of the last character consumed from the input.
[config]Either NULL, or a pointer to configuration for the parser.
[flags]A bitmask of flags to control parsing.
Returns
A pointer to a cypher_parse_result_t, or NULL if an error occurs (errno will be set).

◆ cypher_parse_each()