41 typedef void * (*STTypeNewFunc)(
void *);
42 typedef void * (*STTypeDupFunc)(gconstpointer);
43 typedef void (*STTypeFreeFunc)(
void *);
44 typedef char* (*STTypeToStrFunc)(gconstpointer,
bool pretty);
51 STTypeNewFunc func_new;
52 STTypeFreeFunc func_free;
53 STTypeDupFunc func_dup;
54 STTypeToStrFunc func_tostr;
59 #define STFLAG_UNPARSED (1 << 0)
73 STNODE_OP_UNINITIALIZED,
89 STNODE_OP_BITWISE_AND,
90 STNODE_OP_UNARY_MINUS,
105 void sttype_register_field(
void);
106 void sttype_register_function(
void);
107 void sttype_register_pointer(
void);
108 void sttype_register_set(
void);
109 void sttype_register_slice(
void);
110 void sttype_register_string(
void);
111 void sttype_register_opers(
void);
117 sttype_cleanup(
void);
123 stnode_new(sttype_id_t type_id,
void *data,
char *token,
df_loc_t loc);
126 stnode_new_empty(sttype_id_t type_id);
135 stnode_init(
stnode_t *node, sttype_id_t type_id,
void *data,
char *token,
df_loc_t loc);
138 stnode_replace(
stnode_t *node, sttype_id_t type_id,
void *data);
168 stnode_get_flags(
stnode_t *node, uint16_t flags);
171 stnode_set_flags(
stnode_t *node, uint16_t flags);
177 stnode_tostr(
stnode_t *node,
bool pretty);
179 #define stnode_todisplay(node) stnode_tostr(node, true)
181 #define stnode_todebug(node) stnode_tostr(node, false)
184 log_node_full(
enum ws_log_level level,
185 const char *file,
int line,
const char *func,
189 log_test_full(
enum ws_log_level level,
190 const char *file,
int line,
const char *func,
194 #define log_node(node) \
195 log_node_full(LOG_LEVEL_NOISY, __FILE__, __LINE__, __func__, node, #node)
196 #define log_test(node) \
197 log_test_full(LOG_LEVEL_NOISY, __FILE__, __LINE__, __func__, node, #node)
198 #define LOG_NODE(node) \
200 if (stnode_type_id(node) == STTYPE_TEST) \
206 #define log_node(node) (void)0
207 #define log_test(node) (void)0
208 #define LOG_NODE(node) (void)0
212 dump_syntax_tree_str(
stnode_t *root);
215 log_syntax_tree(
enum ws_log_level,
stnode_t *root,
const char *msg,
char **cache_ptr);
218 #define ws_assert_magic(obj, mnum) \
221 if ((obj)->magic != (mnum)) { \
222 ws_log_full(LOG_DOMAIN_DFILTER, LOG_LEVEL_ERROR, \
223 __FILE__, __LINE__, __func__, \
224 "Magic num is 0x%08"PRIx32", " \
225 "but should be 0x%08"PRIx32, \
226 (obj)->magic, (mnum)); \
230 #define ws_assert_magic(obj, mnum) (void)0
Definition: dfilter-loc.h:16
Definition: syntax-tree.h:62
Definition: syntax-tree.h:48