15 #ifndef included_vlib_parse_h 16 #define included_vlib_parse_h 27 u8 as_u8[32 - 1 *
sizeof (
u16)];
36 } __attribute ((packed))
75 #define foreach_parse_match_type \ 87 #define _(a) VLIB_PARSE_##a, 192 #define _PARSE_REGISTRATION_DATA(x) \ 193 VLIB_ELF_SECTION_DATA(x##_registration,parse_registration_t,parse_registrations) 195 #define PARSE_INIT(x, s, e) \ 196 static _PARSE_REGISTRATION_DATA(x) = { \ 201 #define _PARSE_TYPE_REGISTRATION_DATA(x) \ 202 VLIB_ELF_SECTION_DATA(x##_type_registration,vlib_parse_type_t, \ 203 parse_type_registrations) 205 #define PARSE_TYPE_INIT(n, m, c, f) \ 206 static _PARSE_TYPE_REGISTRATION_DATA(n) = { \ 208 .match_function = m, \ 209 .value_cleanup_function = c, \ struct vlib_parse_main vlib_parse_main_t
vlib_parse_match_function_t eof_match
vlib_parse_main_t vlib_parse_main
vlib_parse_graph_t * parse_graph
vlib_lex_main_t * lex_main
void( vlib_parse_value_cleanup_function_t)(vlib_parse_value_t *)
vlib_parse_match_function_t * match_function
vlib_parse_value_t * parse_value
vlib_parse_type_t * parse_types
vlib_parse_item_t * parse_items
vlib_parse_match_t vlib_parse_eval(u8 *input)
#define foreach_parse_match_type
vlib_parse_match_function_t number_match
format_function_t format_vlib_parse_value
vlib_parse_match_t( vlib_parse_match_function_t)(struct vlib_parse_main *, struct vlib_parse_type *, vlib_lex_token_t *, vlib_parse_value_t *)
vlib_parse_match_function_t rule_match
vlib_parse_match_function_t word_match
vlib_parse_value_cleanup_function_t * value_cleanup_function
struct vlib_parse_type vlib_parse_type_t
parse_registration_t ** parse_registrations
format_function_t * format_value
uword * parse_type_by_name_hash
vlib_parse_match_t( vlib_parse_eval_function_t)(vlib_parse_main_t *, vlib_parse_item_t *, vlib_parse_value_t *)
vlib_lex_token_t * tokens