Function hyperscan_sys::chimera::ch_compile
source · [−]pub unsafe extern "C" fn ch_compile(
expression: *const c_char,
flags: c_uint,
mode: c_uint,
platform: *const hs_platform_info_t,
db: *mut *mut ch_database_t,
compile_error: *mut *mut ch_compile_error_t
) -> ch_error_t
Expand description
The basic regular expression compiler.
This is the function call with which an expression is compiled into a Chimera database which can be passed to the runtime function ( @ref ch_scan())
@param expression
The NULL-terminated expression to parse. Note that this string must
represent ONLY the pattern to be matched, with no delimiters or flags;
any global flags should be specified with the @a flags argument. For
example, the expression /abc?def/i
should be compiled by providing
abc?def
as the @a expression, and @ref CH_FLAG_CASELESS as the @a
flags.
@param flags
Flags which modify the behaviour of the expression. Multiple flags may
be used by ORing them together. Valid values are:
- CH_FLAG_CASELESS - Matching will be performed case-insensitively.
- CH_FLAG_DOTALL - Matching a .
will not exclude newlines.
- CH_FLAG_MULTILINE - ^
and $
anchors match any newlines in data.
- CH_FLAG_SINGLEMATCH - Only one match will be generated for the
expression per stream.
- CH_FLAG_UTF8 - Treat this pattern as a sequence of UTF-8 characters.
- CH_FLAG_UCP - Use Unicode properties for character classes.
@param mode Compiler mode flag that affect the database as a whole for capturing groups. One of CH_MODE_NOGROUPS or CH_MODE_GROUPS must be supplied. See @ref CH_MODE_FLAG for more details.
@param platform If not NULL, the platform structure is used to determine the target platform for the database. If NULL, a database suitable for running on the current host platform is produced.
@param db On success, a pointer to the generated database will be returned in this parameter, or NULL on failure. The caller is responsible for deallocating the buffer using the @ref ch_free_database() function.
@param compile_error If the compile fails, a pointer to a @ref ch_compile_error_t will be returned, providing details of the error condition. The caller is responsible for deallocating the buffer using the @ref ch_free_compile_error() function.
@return @ref CH_SUCCESS is returned on successful compilation; @ref CH_COMPILER_ERROR on failure, with details provided in the error parameter.