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.
bool | cypher_astnode_instanceof (const cypher_astnode_t *node, cypher_astnode_type_t type)
| Check the type of an AST node.
const char * | cypher_astnode_typestr (cypher_astnode_type_t type)
| Get a string description of the AST node type.
unsigned int | cypher_astnode_nchildren (const cypher_astnode_t *node)
| Get the number of children from an AST node.
const cypher_astnode_t * | cypher_astnode_get_child (const cypher_astnode_t *node, unsigned int index)
| Get a child from an AST node.
struct cypher_input_range | cypher_astnode_range (const cypher_astnode_t *node)
| Get the range of an AST node in the input.
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.
unsigned int | cypher_ast_statement_noptions (const cypher_astnode_t *node)
| Get the number of options in a CYPHER_AST_STATEMENT node.
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.
const cypher_astnode_t * | cypher_ast_statement_get_body (const cypher_astnode_t *node)
| Get the body of a CYPHER_AST_STATEMENT node.
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.
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.
unsigned int | cypher_ast_cypher_option_nparams (const cypher_astnode_t *node)
| Get the number of parameters in a CYPHER_AST_CYPHER_OPTION node.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_query_noptions (const cypher_astnode_t *node)
| Get the number of options in a CYPHER_AST_QUERY node.
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.
unsigned int | cypher_ast_query_nclauses (const cypher_astnode_t *node)
| Get the number of clauses in a CYPHER_AST_QUERY node.
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.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_start_npoints (const cypher_astnode_t *node)
| Get the number of start points in a CYPHER_AST_START node.
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.
const cypher_astnode_t * | cypher_ast_start_get_predicate (const cypher_astnode_t *node)
| Get the predicate of a CYPHER_AST_START node.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
bool | cypher_ast_match_is_optional (const cypher_astnode_t *node)
| Check if the optional value of a CYPHER_AST_MATCH node is set.
const cypher_astnode_t * | cypher_ast_match_get_pattern (const cypher_astnode_t *node)
| Get the pattern of a CYPHER_AST_MATCH node.
unsigned int | cypher_ast_match_nhints (const cypher_astnode_t *node)
| Get the number of hints in a CYPHER_AST_MATCH node.
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.
const cypher_astnode_t * | cypher_ast_match_get_predicate (const cypher_astnode_t *node)
| Get the predicate of a CYPHER_AST_PREDICATE node.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_using_join_nidentifiers (const cypher_astnode_t *node)
| Get the number of identifiers in a CYPHER_AST_USING_JOIN node.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_merge_nactions (const cypher_astnode_t *node)
| Get the number of actions in a CYPHER_AST_MERGE node.
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.
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.
unsigned int | cypher_ast_on_match_nitems (const cypher_astnode_t *node)
| Get the number of items in a CYPHER_AST_ON_MATCH node.
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.
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.
unsigned int | cypher_ast_on_create_nitems (const cypher_astnode_t *node)
| Get the number of items in a CYPHER_AST_ON_CREATE node.
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.
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.
bool | cypher_ast_create_is_unique (const cypher_astnode_t *node)
| Check if the unique value of a CYPHER_AST_CREATE node is set.
const cypher_astnode_t * | cypher_ast_create_get_pattern (const cypher_astnode_t *node)
| Get the pattern of a CYPHER_AST_CREATE node.
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.
unsigned int | cypher_ast_set_nitems (const cypher_astnode_t *node)
| Get the number of items in a CYPHER_AST_SET node.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_set_labels_nlabels (const cypher_astnode_t *node)
| Get the number of labels in a CYPHER_AST_SET_LABELS node.
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.
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.
bool | cypher_ast_delete_has_detach (const cypher_astnode_t *node)
| Check if DETACH is present for a CYPHER_AST_DELETE node.
unsigned int | cypher_ast_delete_nexpressions (const cypher_astnode_t *node)
| Get the number of expression in a CYPHER_AST_DELETE node.
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.
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.
unsigned int | cypher_ast_remove_nitems (const cypher_astnode_t *node)
| Get the number of items in a CYPHER_AST_REMOVE node.
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.
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.
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.
unsigned int | cypher_ast_remove_labels_nlabels (const cypher_astnode_t *node)
| Get the number of labels in a CYPHER_AST_REMOVE_LABELS node.
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.
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.
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.
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.
const cypher_astnode_t * | cypher_ast_foreach_get_identifier (const cypher_astnode_t *node)
| Get the identifier of a CYPHER_AST_FOREACH node.
const cypher_astnode_t * | cypher_ast_foreach_get_expression (const cypher_astnode_t *node)
| Get the expression of a CYPHER_AST_FOREACH node.
unsigned int | cypher_ast_foreach_nclauses (const cypher_astnode_t *node)
| Get the number of clauses from a CYPHER_AST_FOREACH node.
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.
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.
bool | cypher_ast_with_is_distinct (const cypher_astnode_t *node)
| Check if DISTINCT is present for a CYPHER_AST_WITH node.
bool | cypher_ast_with_has_include_existing (const cypher_astnode_t *node)
| Check if including existing identifiers (*) in a CYPHER_AST_WITH node.
unsigned int | cypher_ast_with_nprojections (const cypher_astnode_t *node)
| Get the number of projections in a CYPHER_AST_WITH node.
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.
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.
const cypher_astnode_t * | cypher_ast_with_get_skip (const cypher_astnode_t *node)
| Get the skip value of a CYPHER_AST_WITH node.
const cypher_astnode_t * | cypher_ast_with_get_limit (const cypher_astnode_t *node)
| Get the limit value of a CYPHER_AST_WITH node.
const cypher_astnode_t * | cypher_ast_with_get_predicate (const cypher_astnode_t *node)
| Get the predicate of a CYPHER_AST_WITH node.
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.
const cypher_astnode_t * | cypher_ast_unwind_get_expression (const cypher_astnode_t *node)
| Get the expression of a CYPHER_AST_UNWIND node.
const cypher_astnode_t * | cypher_ast_unwind_get_alias (const cypher_astnode_t *node)
| Get the alias of a CYPHER_AST_UNWIND node.
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.
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.
unsigned int | cypher_ast_call_narguments (const cypher_astnode_t *node)
| Get the number of arguments of a CYPHER_AST_CALL node.
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.
unsigned int | cypher_ast_call_nprojections (const cypher_astnode_t *node)
| Get the number of projections of a CYPHER_AST_CALL node.
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.
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.
bool | cypher_ast_return_is_distinct (const cypher_astnode_t *node)
| Check if DISTINCT is set in a CYPHER_AST_RETURN node.
bool | cypher_ast_return_has_include_existing (const cypher_astnode_t *node)
| Check if including existing identifiers (*) in a CYPHER_AST_RETURN node.
unsigned int | cypher_ast_return_nprojections (const cypher_astnode_t *node)
| Get the number of projections in a CYPHER_AST_RETURN node.
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.
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.
const cypher_astnode_t * | cypher_ast_return_get_skip (const cypher_astnode_t *node)
| Get the skip value of a CYPHER_AST_RETURN node.
const cypher_astnode_t * | cypher_ast_return_get_limit (const cypher_astnode_t *node)
| Get the limit value of a CYPHER_AST_RETURN node.
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.
const cypher_astnode_t * | cypher_ast_projection_get_expression (const cypher_astnode_t *node)
| Get the expression from a CYPHER_AST_PROJECTION node.
const cypher_astnode_t * | cypher_ast_projection_get_alias (const cypher_astnode_t *node)
| Get the alias from a CYPHER_AST_PROJECTION node.
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.
unsigned int | cypher_ast_order_by_nitems (const cypher_astnode_t *node)
| Get the number of items in a CYPHER_AST_ORDER_BY node.
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.
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.
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.
bool | cypher_ast_sort_item_is_ascending (const cypher_astnode_t *node)
| Check if a CYPHER_AST_SORT_ITEM node is using ascending order.
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.
bool | cypher_ast_union_has_all (const cypher_astnode_t *node)
| Check if a CYPHER_AST_UNION node has ALL specified.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_comparison_get_length (const cypher_astnode_t *node)
| Get the comparsion chain length of a CYPHER_AST_COMPARISON node.
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.
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.
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.
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.
bool | cypher_ast_apply_operator_get_distinct (const cypher_astnode_t *node)
| Check if a CYPHER_AST_APPLY_OPERATOR node is DISTINCT.
unsigned int | cypher_ast_apply_operator_narguments (const cypher_astnode_t *node)
| Get the number of arguments of a CYPHER_AST_APPLY_OPERATOR node.
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.
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.
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.
bool | cypher_ast_apply_all_operator_get_distinct (const cypher_astnode_t *node)
| Check if a CYPHER_AST_APPLY_ALL_OPERATOR node is DISTINCT.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_map_projection_nselectors (const cypher_astnode_t *node)
| Get the number of selectors in a CYPHER_AST_MAP_PROJECTION node.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_labels_operator_nlabels (const cypher_astnode_t *node)
| Get the number of labels from a CYPHER_AST_LABELS_OPERATOR node.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
const cypher_astnode_t * | cypher_ast_reduce_get_accumulator (const cypher_astnode_t *node)
| Get the accumulator from a CYPHER_AST_REDUCE node.
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.
const cypher_astnode_t * | cypher_ast_reduce_get_identifier (const cypher_astnode_t *node)
| Get the identifier from a CYPHER_AST_REDUCE node.
const cypher_astnode_t * | cypher_ast_reduce_get_expression (const cypher_astnode_t *node)
| Get the expression from a CYPHER_AST_REDUCE node.
const cypher_astnode_t * | cypher_ast_reduce_get_eval (const cypher_astnode_t *node)
| Get the evaluation from a CYPHER_AST_REDUCE node.
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.
const cypher_astnode_t * | cypher_ast_case_get_expression (const cypher_astnode_t *node)
| Get the expression from a CYPHER_AST_CASE node.
unsigned int | cypher_ast_case_nalternatives (const cypher_astnode_t *node)
| Get the number of alternatives from a CYPHER_AST_CASE node.
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.
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.
const cypher_astnode_t * | cypher_ast_case_get_default (const cypher_astnode_t *node)
| Get the default from a CYPHER_AST_CASE node.
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.
unsigned int | cypher_ast_collection_length (const cypher_astnode_t *node)
| Get the collection length from a CYPHER_AST_COLLECTION node.
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.
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.
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.
unsigned int | cypher_ast_map_nentries (const cypher_astnode_t *node)
| Get the number of entries in a CYPHER_AST_MAP node.
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.
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.
cypher_astnode_t * | cypher_ast_identifier (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_IDENTIFIER node.
const char * | cypher_ast_identifier_get_name (const cypher_astnode_t *node)
| Get a null terminated name string for a CYPHER_AST_IDENTIFIER node.
cypher_astnode_t * | cypher_ast_parameter (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_PARAMETER node.
const char * | cypher_ast_parameter_get_name (const cypher_astnode_t *node)
| Get a null terminated name string for a CYPHER_AST_PARAMETER node.
cypher_astnode_t * | cypher_ast_string (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_STRING node.
const char * | cypher_ast_string_get_value (const cypher_astnode_t *node)
| Get the null terminated string value from a CYPHER_AST_STRING node.
cypher_astnode_t * | cypher_ast_integer (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_INTEGER node.
const char * | cypher_ast_integer_get_valuestr (const cypher_astnode_t *node)
| Get the null terminated string value from a CYPHER_AST_INTEGER node.
cypher_astnode_t * | cypher_ast_float (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_FLOAT node.
const char * | cypher_ast_float_get_valuestr (const cypher_astnode_t *node)
| Get the null terminated string value from a CYPHER_AST_FLOAT node.
cypher_astnode_t * | cypher_ast_true (struct cypher_input_range range)
| Construct a CYPHER_AST_TRUE node.
cypher_astnode_t * | cypher_ast_false (struct cypher_input_range range)
| Construct a CYPHER_AST_FALSE node.
cypher_astnode_t * | cypher_ast_null (struct cypher_input_range range)
| Construct a CYPHER_AST_NULL node.
cypher_astnode_t * | cypher_ast_label (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_LABEL node.
const char * | cypher_ast_label_get_name (const cypher_astnode_t *node)
| Get a null terminated name string for a CYPHER_AST_LABEL node.
cypher_astnode_t * | cypher_ast_reltype (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_RELTYPE node.
const char * | cypher_ast_reltype_get_name (const cypher_astnode_t *node)
| Get a null terminated name string for a CYPHER_AST_RELTYPE node.
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.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_pattern_npaths (const cypher_astnode_t *node)
| Get the number of paths in a CYPHER_AST_PATTERN node.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_pattern_path_nelements (const cypher_astnode_t *node)
| Get the number of elements in a CYPHER_AST_PATTERN_PATH node.
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.
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.
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.
unsigned int | cypher_ast_node_pattern_nlabels (const cypher_astnode_t *node)
| Get the number of labels in a CYPHER_AST_NODE_PATTERN node.
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.
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.
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.
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.
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.
unsigned int | cypher_ast_rel_pattern_nreltypes (const cypher_astnode_t *node)
| Get the number of reltypes in a CYPHER_AST_REL_PATTERN node.
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.
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.
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.
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.
const cypher_astnode_t * | cypher_ast_range_get_start (const cypher_astnode_t *node)
| Get the start of a CYPHER_AST_RANGE node.
const cypher_astnode_t * | cypher_ast_range_get_end (const cypher_astnode_t *node)
| Get the end of a CYPHER_AST_RANGE node.
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.
const cypher_astnode_t * | cypher_ast_command_get_name (const cypher_astnode_t *node)
| Get the name from a CYPHER_AST_COMMAND node.
unsigned int | cypher_ast_command_narguments (const cypher_astnode_t *node)
| Get the number of arguments from a CYPHER_AST_COMMAND node.
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.
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.
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.
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.
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.
cypher_astnode_t * | cypher_ast_error (const char *s, size_t n, struct cypher_input_range range)
| Construct a CYPHER_AST_ERROR node.
const char * | cypher_ast_error_get_value (const cypher_astnode_t *node)
| Get a null terminated string for a CYPHER_AST_ERROR node.
void | cypher_ast_free (cypher_astnode_t *ast)
| Release an entire AST tree.
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.
cypher_parser_config_t * | cypher_parser_new_config (void)
| Generate a new parser configuration.
void | cypher_parser_config_free (cypher_parser_config_t *config)
| Release a parser configuration.
void | cypher_parser_config_set_initial_position (cypher_parser_config_t *config, struct cypher_input_position position)
| Set the initial input position for parsing.
void | cypher_parser_config_set_initial_ordinal (cypher_parser_config_t *config, unsigned int n)
| Set the initial ordinal for parsing.
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.
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.
cypher_parse_result_t * | cypher_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.
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.
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.
struct cypher_input_range | cypher_parse_segment_get_range (const cypher_parse_segment_t *segment)
| Get the range of a parse segment.
unsigned int | cypher_parse_segment_nerrors (const cypher_parse_segment_t *segment)
| Get the number of errors encountered in a parse segment.
const cypher_parse_error_t * | cypher_parse_segment_get_error (const cypher_parse_segment_t *segment, unsigned int index)
| Get an error from a parse segment.
unsigned int | cypher_parse_segment_nroots (const cypher_parse_segment_t *segment)
| Get the number of root AST nodes parsed in a segment.
const cypher_astnode_t * | cypher_parse_segment_get_root (const cypher_parse_segment_t *segment, unsigned int index)
| Get a root AST node from a parse segment.
unsigned int | cypher_parse_segment_nnodes (const cypher_parse_segment_t *segment)
| Get the total number of AST nodes parsed in a segment.
const cypher_astnode_t * | cypher_parse_segment_get_directive (const cypher_parse_segment_t *segment)
| Get the statement or client command parsed in a segment.
bool | cypher_parse_segment_is_eof (const cypher_parse_segment_t *segment)
| Check if the parse encountered the end of the input.
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.
void | cypher_parse_segment_retain (cypher_parse_segment_t *segment)
| Retain a reference to a parse segment.
void | cypher_parse_segment_release (cypher_parse_segment_t *segment)
| Release a reference to a parse segment.
unsigned int | cypher_parse_result_nroots (const cypher_parse_result_t *result)
| Get the number of root AST nodes parsed.
const cypher_astnode_t * | cypher_parse_result_get_root (const cypher_parse_result_t *result, unsigned int index)
| Get a root AST nodes from a parse result.
unsigned int | cypher_parse_result_nnodes (const cypher_parse_result_t *result)
| Get the total number of AST nodes parsed.
unsigned int | cypher_parse_result_ndirectives (const cypher_parse_result_t *result)
| Get the number of statements or commands parsed.
const cypher_astnode_t * | cypher_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.
unsigned int | cypher_parse_result_nerrors (const cypher_parse_result_t *result)
| Get the number of errors encountered during parsing.
const cypher_parse_error_t * | cypher_parse_result_get_error (const cypher_parse_result_t *result, unsigned int index)
| Get an error description from a parse result.
bool | cypher_parse_result_eof (const cypher_parse_result_t *result)
| Check if the parse encountered the end of the input.
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.
void | cypher_parse_result_free (cypher_parse_result_t *result)
| Free memory associated with a parse result.
struct cypher_input_position | cypher_parse_error_position (const cypher_parse_error_t *error)
| Get the position of an error.
const char * | cypher_parse_error_message (const cypher_parse_error_t *error)
| Get the error message of an error.
const char * | cypher_parse_error_context (const cypher_parse_error_t *error)
| Get the error context of an error.
size_t | cypher_parse_error_context_offset (const cypher_parse_error_t *error)
| Get the offset into the context of an error.
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.
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.
bool | cypher_quick_parse_segment_is_statement (const cypher_quick_parse_segment_t *segment)
| Check if the quick parse segment is for a statement.
bool | cypher_quick_parse_segment_is_command (const cypher_quick_parse_segment_t *segment)
| Check if the quick parse segment is for a command.
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.
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.
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.
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.
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.
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.
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.

## Variables

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

## 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()

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.

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

  [s] | A null terminated string 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
  0 on success, -1 on failure (errno will be set).

## cypher_parse_error_context()

const char * cypher_parse_error_context | ( | const cypher_parse_error_t * | error | ) |

Get the error context of an error.

This returns a pointer to a null-terminated string, which contains a section of the input around where the error occurred, that is limited in length and suitable for presentation to a user.

Parameters

  [error] | The parse error.

Returns
  The context string.

## cypher_parse_error_context_offset()

size_t cypher_parse_error_context_offset | ( | const cypher_parse_error_t * | error | ) |

Get the offset into the context of an error.

Identifies the point of the error within the context string, allowing this to be reported to the user, typically with an arrow pointing to the invalid character.

Parameters

  [error] | The parse error.

Returns
  The offset into the errors context string.

## cypher_parse_error_message()

const char * cypher_parse_error_message | ( | const cypher_parse_error_t * | error | ) |

Get the error message of an error.

Parameters

  [error] | The parse error.

Returns
  The message.

## cypher_parse_error_position()

struct cypher_input_position cypher_parse_error_position | ( | const cypher_parse_error_t * | error | ) |

Get the position of an error.

Parameters

  [error] | The parse error.

Returns
  The input position.

## cypher_parse_result_eof()

bool cypher_parse_result_eof | ( | const cypher_parse_result_t * | result | ) |

Check if the parse encountered the end of the input.

Indicates if the last parsed command or statement was terminated (with a newline or ; respectively), or with EOF.

Parameters

  [result] | The parse result.

Returns
  true if the end of input was encountered, false if the command or statement was terminated with the expected character.

## cypher_parse_result_fprint_ast()

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.

Useful for debugging purposes.

Parameters

  [result] | The parse result.
  [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_parse_result_free()

void cypher_parse_result_free | ( | cypher_parse_result_t * | result | ) |

Free memory associated with a parse result.

The result will no longer be valid after this function is invoked.

Parameters

  [result] | The parse result.

## cypher_parse_result_get_directive()

const cypher_astnode_t * cypher_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.

Parameters

  [result] | The parse result.
  [index] | The directive index.

Returns
  Either a CYPHER_AST_STATEMENT, a CYPHER_AST_COMMAND node, or NULL if there is no directive at the specified index.

## cypher_parse_result_get_error()

const cypher_parse_error_t * cypher_parse_result_get_error | ( | const cypher_parse_result_t * | result,
|  | unsigned int | index )

Get an error description from a parse result.

Parameters

  [result] | The parse result.
  [index] | The error index.

Returns
  A pointer to the error description, or NULL if there is no value at the specified index.

## cypher_parse_result_get_root()

const cypher_astnode_t * cypher_parse_result_get_root | ( | const cypher_parse_result_t * | result,
|  | unsigned int | index )

Get a root AST nodes from a parse result.

Parameters

  [result] | The parse result.
  [index] | The node index.

Returns
  A pointer to the AST node, or NULL if there is no element at the specified index.

## cypher_parse_result_ndirectives()

unsigned int cypher_parse_result_ndirectives | ( | const cypher_parse_result_t * | result | ) |

Get the number of statements or commands parsed.

Parameters

  [result] | The parse result.

Returns
  The number of statements or commands parsed.

## cypher_parse_result_nerrors()

unsigned int cypher_parse_result_nerrors | ( | const cypher_parse_result_t * | result | ) |

Get the number of errors encountered during parsing.

Parameters

  [result] | The parse result.

Returns
  The number of errors.

## cypher_parse_result_nnodes()

unsigned int cypher_parse_result_nnodes | ( | const cypher_parse_result_t * | result | ) |

Get the total number of AST nodes parsed.

Includes all children, at any depth, of all result elements.

Parameters

  [result] | The parse result.

Returns
  The number of elements.

## cypher_parse_result_nroots()

unsigned int cypher_parse_result_nroots | ( | const cypher_parse_result_t * | result | ) |

Get the number of root AST nodes parsed.

Parameters

  [result] | The parse result.

Returns
  The number of root AST nodes.

## cypher_parse_segment_fprint_ast()

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.

Useful for debugging purposes.

Parameters

  [segment] | The parse segment.
  [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_parse_segment_get_directive()

const cypher_astnode_t * cypher_parse_segment_get_directive | ( | const cypher_parse_segment_t * | segment | ) |

Get the statement or client command parsed in a segment.

Parameters

  [segment] | The parse segment.

Returns
  Either a CYPHER_AST_STATEMENT, a CYPHER_AST_COMMAND node, or NULL if neither was encountered in the segment.

## cypher_parse_segment_get_error()

const cypher_parse_error_t * cypher_parse_segment_get_error | ( | const cypher_parse_segment_t * | segment,
|  | unsigned int | index )

Get an error from a parse segment.

Parameters

  [segment] | The parse segment.
  [index] | The error index.

Returns
  A pointer to the error description, or NULL if there is no error at the specified index.

## cypher_parse_segment_get_range()

struct cypher_input_range cypher_parse_segment_get_range | ( | const cypher_parse_segment_t * | segment | ) |

Get the range of a parse segment.

Parameters

  [segment] | The parse segment.

Returns
  The input range.

## cypher_parse_segment_get_root()

const cypher_astnode_t * cypher_parse_segment_get_root | ( | const cypher_parse_segment_t * | segment,
|  | unsigned int | index )

Get a root AST node from a parse segment.

Parameters

  [segment] | The parse segment.
  [index] | The node index.

Returns
  A pointer to the AST node, or NULL if there is no node at the specified index.

## cypher_parse_segment_is_eof()

bool cypher_parse_segment_is_eof | ( | const cypher_parse_segment_t * | segment | ) |

Check if the parse encountered the end of the input.

Indicates if the segment was terminated by to the end of the input.

Parameters

  [segment] | The parse segment.

Returns
  true if the end of input was encountered, false if the segment was terminated with an expected character.

## cypher_parse_segment_nerrors()

unsigned int cypher_parse_segment_nerrors | ( | const cypher_parse_segment_t * | segment | ) |

Get the number of errors encountered in a parse segment.

Parameters

  [segment] | The parse segment.

Returns
  The number of errors.

## cypher_parse_segment_nnodes()

unsigned int cypher_parse_segment_nnodes | ( | const cypher_parse_segment_t * | segment | ) |

Get the total number of AST nodes parsed in a segment.

Includes all root nodes and their children, at any depth.

Parameters

  [segment] | The parse segment.

Returns
  The number of elements.

## cypher_parse_segment_nroots()

unsigned int cypher_parse_segment_nroots | ( | const cypher_parse_segment_t * | segment | ) |

Get the number of root AST nodes parsed in a segment.

Parameters

  [segment] | The parse segment.

Returns
  The number of root AST nodes.

## cypher_parse_segment_release()

void cypher_parse_segment_release | ( | cypher_parse_segment_t * | segment | ) |

Release a reference to a parse segment.

The segment must have been previously retained using cypher_parse_segment_retain().

Parameters

  [segment] | The parse segment.

## cypher_parse_segment_retain()

void cypher_parse_segment_retain | ( | cypher_parse_segment_t * | segment | ) |

Retain a reference to a parse segment.

The segment must later be passed to cypher_parse_segment_release().

Parameters

  [segment] | The parse segment.

## cypher_parser_config_free()

void cypher_parser_config_free | ( | cypher_parser_config_t * | config | ) |

Release a parser configuration.

Parameters

  [config] | A pointer to a parser configuration. This pointer will be invalid after the function returns.

## cypher_parser_config_set_error_colorization()

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.

Parameters

  [config] | The parser configuration.
  [colorization] | The colorization scheme to use.

## cypher_parser_config_set_initial_ordinal()

void cypher_parser_config_set_initial_ordinal | ( | cypher_parser_config_t * | config,
|  | unsigned int | n )

Set the initial ordinal for parsing.

All AST nodes parsed will be numbered starting from the specified initial ordinal, which is 0 by default. This affects the numbering of AST nodes in rendering.

Parameters

  [config] | The parser configuration.
  [n] | The initial oridinal.

## cypher_parser_config_set_initial_position()

void cypher_parser_config_set_initial_position | ( | cypher_parser_config_t * | config,
|  | struct cypher_input_position | position )

Set the initial input position for parsing.

By default, the initial position is line 1, column 1 (offset 0). By setting a different position, all ranges in the AST, and positions in any error messages, will be offset by the specified position - as if the input had contained unparsed whitespace up until that point.

Parameters

  [config] | The parser configuration.
  [position] | The initial input position.

## cypher_parser_new_config()

cypher_parser_config_t * cypher_parser_new_config | ( | void |  | ) |

Generate a new parser configuration.

The returned configuration must be later released using cypher_parser_config_free().

Returns
  A pointer to a new parser configuration, or NULL if an error occurs (errno will be set).

## cypher_quick_fparse()

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.

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.

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.
  [flags] | A bitmask of flags to control parsing.

Returns
  0 on success, or -1 on failure (errno will be set).

## cypher_quick_parse()

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.

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.

Parameters

  [s] | The string to parse.
  [callback] | The callback to be invoked for each parsed segment.
  [userdata] | A pointer that will be provided to the callback.
  [flags] | A bitmask of flags to control parsing.

Returns
  0 on success, or -1 on failure (errno will be set).

## cypher_quick_parse_segment_get_next()

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.

Parameters

  [segment] | The parse segment.

Returns
  The input position.

## cypher_quick_parse_segment_get_range()

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.

Parameters

  [segment] | The quick parse segment.

Returns
  The input range.

## cypher_quick_parse_segment_get_text()

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.

Will include all characters within the parsed statement or command, excepting any leading or trailing comments or whitespace.

Parameters

  [segment] | The quick parse segment.
  [n] | A size_t pointer that will be updated to the length of the character string.

Returns
  A pointer to a character string.

## cypher_quick_parse_segment_is_command()

bool cypher_quick_parse_segment_is_command | ( | const cypher_quick_parse_segment_t * | segment | ) |

Check if the quick parse segment is for a command.

Parameters

  [segment] | The quick parse segment.

Returns
  true if the parsed segment was for a command (vs a statement), false otherwise.

## cypher_quick_parse_segment_is_eof()

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.

Indicates if the segment was terminated by to the end of the input.

Parameters

  [segment] | The quick parse segment.

Returns
  true if the end of input was encountered, false if the segment was terminated with an expected character.

## cypher_quick_parse_segment_is_statement()

bool cypher_quick_parse_segment_is_statement | ( | const cypher_quick_parse_segment_t * | segment | ) |

Check if the quick parse segment is for a statement.

Parameters

  [segment] | The quick parse segment.

Returns
  true if the parsed segment was for a statement (vs a command), false otherwise.

## cypher_quick_uparse()

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.

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.

Parameters

  [s] | The string to parse.
  [n] | The size of the string.
  [callback] | The callback to be invoked for each parsed segment.
  [userdata] | A pointer that will be provided to the callback.
  [flags] | A bitmask of flags to control parsing.

Returns
  0 on success, or -1 on failure (errno will be set).

## cypher_uparse()

cypher_parse_result_t * cypher_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.

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] | The string to parse.
  [n] | The size of the string.
  [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_uparse_each()

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.

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

  [s] | The string to parse.
  [n] | The size of the string.
  [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).