Previous: , Up: conditions regex   [Contents][Index]


8.8.2 Regular expression compilation errors

The regex compilation error exceptional–condition object–type is used by CCTests to represent an error compiling a POSIX regular expressions; it is used when calling the standard function regcomp(). We can instantiate this type and also derive new types from it. To catch this exceptional condition we can do:

cce_location_t        L[1];

if (cce_location(L)) {
  if (cctests_condition_is_regex_compilation_error(cce_condition(L))) {
    CCTESTS_PC(cctests_condition_regex_compilation_error_t, C, cce_condition(L));
    do_something_with(C);
  }
  cce_run_catch_handlers_final(L);
} else {
  do_something(L);
  cce_run_body_handlers(L);
}
Struct Typedef: cctests_descriptor_regex_compilation_error_t

Type of data structure representing the exceptional–condition descriptor. It has the following public fields:

cce_descriptor_t descriptor

The condition descriptor’s base values.

The parent of this type descriptor is the one referenced by cctests_descriptor_regex_error_ptr, Base regular expression errors.

Struct Typedef: cctests_condition_regex_compilation_error_t

Type of data structure representing the exceptional–condition object. It has the following public fields:

cctests_condition_regex_error_t regex_error

The condition object’s base values.

Function: void cce_descriptor_set_parent_to(cctests_condition_regex_compilation_error_t) (cce_descriptor_t * const D)

Set the parent of the descriptor referenced by D to the descriptor of the exceptional–condition object–type cctests_condition_regex_compilation_error_t.

Function: void cctests_condition_init_regex_compilation_error (cctests_condition_regex_compilation_error_t * C, int errcode)

Initialisation function for the condition object. This function is meant to be called from the initialisation function of sub–types of cctests_condition_regex_compilation_error_t.

Function: cce_condition_t const * cctests_condition_new_regex_compilation_error (cce_destination_t L, int errcode)

Return a pointer to exceptional condition object. If an error occurs building the condition object: raise an exception by performing a non–local exit to L.

Function: bool cctests_condition_is_regex_compilation_error (cce_condition_t const * C)

Return true if C if of type cctests_condition_regex_compilation_error_t; otherwise return false.

Sub–typing example

To define a sub–type of cctests_condition_regex_compilation_error_t we can copy the code in the files:

condition-regex-compilation-error-subtype.c
condition-regex-compilation-error-subtype-headear.h
condition-regex-compilation-error-subtype-body.c

under the tests directory of the source distribution; the code defines a new condition–object type my_condition_regex_compilation_error_subtype_t.


Previous: , Up: conditions regex   [Contents][Index]

This document describes version 0.4.1-devel.1 of CCTests.