/* Copyright (C) 1995 Bjoern Beutel. */

/* Description. =============================================================*/

/* This module contains function to compile and execute pattern matching 
 * strings (regular expressions). */

/* Constants. ===============================================================*/

enum {PATTERN_VAR_MAX = 5}; /* Maximum number of pattern variables. */

/* Variables. ===============================================================*/

extern string_t pattern_var[ PATTERN_VAR_MAX ]; /* Pattern variables. */

/* Functions. ===============================================================*/

extern string_t compile_pattern( string_t string, int_t pattern_var_no );
/* Convert STRING to a pattern to be used as input to "match_pattern".
 * If PATTERN_VAR_NO != -1, mark the pattern so the string matching this
 * pattern will be stored in PATTERN_VAR[ PATTERN_VAR_NO ].
 * The result pattern must be freed after usage. */

extern bool_t match_pattern( string_t string, string_t pattern );
/* Test whether STRING matches PATTERN (a string of chars compiled with
 * "compile_pattern") and set substring indices in PATTERN_VAR.
 * The substrings remain valid until "compile_pattern" is called again. */

extern void terminate_patterns( void );
/* Terminate this module. */

/* End of file. =============================================================*/
