Rev 57128 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
/*tre-parse.c - Regexp parser definitionsThis software is released under a BSD-style license.See the file LICENSE for details and copyright.*/#ifndef TRE_PARSE_H#define TRE_PARSE_H 1/* Parse context. */typedef struct {/* Memory allocator. The AST is allocated using this. */tre_mem_t mem;/* Stack used for keeping track of regexp syntax. */tre_stack_t *stack;/* The parse result. */tre_ast_node_t *result;/* The regexp to parse and its length. */const tre_char_t *re;/* The first character of the entire regexp. */const tre_char_t *re_start;/* The first character after the end of the regexp. */const tre_char_t *re_end;int len;/* Current submatch ID. */int submatch_id;/* Current position (number of literal). */int position;/* The highest back reference or -1 if none seen so far. */int max_backref;/* This flag is set if the regexp uses approximate matching. */int have_approx;/* Compilation flags. */int cflags;/* If this flag is set the top-level submatch is not captured. */int nofirstsub;/* The currently set approximate matching parameters. */int params[TRE_PARAM_LAST];/* the CUR_MAX in use */int cur_max;} tre_parse_ctx_t;/* Parses a wide character regexp pattern into a syntax tree. This parserhandles both syntaxes (BRE and ERE), including the TRE extensions. */reg_errcode_ttre_parse(tre_parse_ctx_t *ctx);#endif /* TRE_PARSE_H *//* EOF */