asn1c/libasn1fix/asn1fix_misc.h

48 lines
1.3 KiB
C

/*
* Miscellaneous functions necessary for several other modules.
*/
#ifndef _ASN1FIX_MISC_H_
#define _ASN1FIX_MISC_H_
/*
* Return a pointer to the locally held string with human-readable
* definition of the value.
*/
char const *asn1f_printable_value(asn1p_value_t *);
/*
* Return a pointer to the locally held string with human-readable
* definition of the reference.
*/
char const *asn1f_printable_reference(asn1p_ref_t *);
/*
* Recursively invoke a given function over the given expr and all its
* children.
*/
int asn1f_recurse_expr(arg_t *arg, int (*f)(arg_t *arg));
/*
* Check that every child of a given expr has unique name or does not have any.
* If opt_compare == NULL, the default comparison of the argument's
* names (identifiers) will be performed.
*/
int asn1f_check_unique_expr(arg_t *arg,
int (*opt_compare)(asn1p_expr_t *a, asn1p_expr_t *b));
/*
* Check that every preceeding child of the given expr is not
* having the name of the given one.
* If opt_compare == NULL, the default comparison of the argument's
* names (identifiers) will be performed.
*/
int asn1f_check_unique_expr_child(arg_t *arg, asn1p_expr_t *child,
int (*opt_compare)(asn1p_expr_t *a, asn1p_expr_t *b));
/*
* Return number of children.
*/
int asn1f_count_children(asn1p_expr_t *parent);
#endif /* _ASN1FIX_MISC_H_ */