libsapling  0.8.0
path.h
Go to the documentation of this file.
1 #ifndef _LIBSAPLING_PATH_H_
2 #define _LIBSAPLING_PATH_H_
3 
10 #include "libsapling/dm/graph.h"
12 
13 void *path__data(const node_t node);
14 void path__access(enum qt qt, node_t *ref, void *info, predicate_t predicate,
15  apply_t apply);
16 void path__insert(node_t *ref, void *info, predicate_t predicate);
17 void path__delete(enum qt qt, node_t *ref, void *info, predicate_t predicate);
18 void path__print(FILE *stream, node_t *ref, fpfdata_t fpfdata);
19 void path__dump_dot(FILE *stream, node_t *ref, fpfdata_t fpfdata);
20 int path__length(const node_t *ref);
21 
26 node_t *path__position(node_t *ref, int pos);
27 
28 #endif
Graph implementation.
void(* apply_t)(node_t *ref, const struct info_stack *info)
Performs a user-defined operation on the node.
Definition: graph.h:117
void(* fpfdata_t)(FILE *stream, const void *data)
File print format data function prototype.
Definition: graph.h:152
int(* predicate_t)(const node_t *ref, const struct info_stack *info)
Decides whether to run the apply function on an item. Behavior is modified by quantifiers.
Definition: graph.h:112
qt
Quantifier definitions.
Definition: logic.h:10
node_t * path__position(node_t *ref, int pos)
Returns the subpath skipping pos nodes.
Typed path interface implementation.