typedef enum { TOKEN_STRING, TOKEN_RE, TOKEN_AND, } token_type_t; } token_t; } backref_t;
... all lack namespace-safety. as do: typedef const char *(*string_func_t)(request_rec*, const char*); typedef int (*opt_func_t)(request_rec*, ap_parse_node_t*, string_func_t); which are also undocumented and lacking parameter names. What should such callbacks do/return? AP_DECLARE(ap_parse_node_t*) ap_expr_parse(apr_pool_t *pool, const char *expr, int *was_error); the "was_error" parameter seems to be redundant with the function returning NULL to indicate error? The grammar of the expression being parsed is undocumented. (well, I could guess that it might happen to match the grammar documented in the mod_include docs, but could everybody guess that?) The purpose of the the *_func_t callbacks is pretty unclear without reference to the grammar. The naming of the "TOKEN_ACCESS" constant seems to be a throwback to the use of this API in mod_include? AP_DECLARE(apr_status_t) ap_expr_init(apr_pool_t *pool); this is a purely internal interface so needn't be exposed to modules AFAICT. Regards, Joe