polylib: errors.c File Reference

# errors.c File Reference

`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include "arithmetique.h"`

Go to the source code of this file.

## Classes
struct | linear_exception_holder
## Defines
#define | FALSE 0
#define | TRUE 1
#define | MAX_STACKED_CONTEXTS 64
#define | exception_debug_message(type)
#define | exception_debug_trace(type) if (linear_exception_debug_mode) { exception_debug_message(type); }
#define | same_string_p(s1, s2) (strcmp((s1),(s2))==0)
## Typedefs
typedef int | boolean
## Functions
const char * | get_exception_name (unsigned int exception)
void | set_exception_callbacks (exception_callback_t push, exception_callback_t pop)
void | dump_exception_stack_to_file (FILE *f)
void | dump_exception_stack ()
jmp_buf * | push_exception_on_stack (int what, const char *function, const char *file, int line)
void | pop_exception_from_stack (int what, const char *function, const char *file, int line)
void | throw_exception (int what, const char *function, const char *file, int line)
void | linear_initialize_exception_stack (unsigned int verbose_exceptions, exception_callback_t push, exception_callback_t pop)
## Variables
unsigned int | overflow_error = 1
unsigned int | simplex_arithmetic_error = 2
unsigned int | user_exception_error = 4
unsigned int | parser_exception_error = 8
unsigned int | timeout_error = 16
unsigned int | any_exception_error = ~0
unsigned int | the_last_just_thrown_exception = 0
static int | linear_exception_debug_mode = FALSE
static unsigned int | linear_exception_verbose = 1 | 2 | 16
static linear_exception_holder | exception_stack [MAX_STACKED_CONTEXTS]
static int | exception_index = 0
static exception_callback_t | push_callback = NULL
static exception_callback_t | pop_callback = NULL
int | linear_number_of_exception_thrown = 0

## Define Documentation

#define exception_debug_message | ( | type |  | ) |

Value:

    fprintf(stderr, "%s[%s:%d %s (%d)/%d]\n",                         \
                type, file, line, function, what, exception_index)

Definition at line 238 of file errors.c.

Referenced by pop_exception_from_stack(), push_exception_on_stack(), and throw_exception().

#define exception_debug_trace | ( | type |  | ) | if (linear_exception_debug_mode) { exception_debug_message(type); }

Definition at line 242 of file errors.c.

Referenced by pop_exception_from_stack(), push_exception_on_stack(), and throw_exception().

#define FALSE 0

Definition at line 130 of file errors.c.

#define MAX_STACKED_CONTEXTS 64

Definition at line 187 of file errors.c.

Referenced by push_exception_on_stack().

#define same_string_p | ( | s1,
|  | s2 |  | ) | (strcmp((s1),(s2))==0)

Definition at line 278 of file errors.c.

Referenced by pop_exception_from_stack().

#define TRUE 1

Definition at line 133 of file errors.c.

## Typedef Documentation

typedef int boolean

Definition at line 127 of file errors.c.

## Function Documentation

void dump_exception_stack | ( | void |  | ) |

Definition at line 233 of file errors.c.

References dump_exception_stack_to_file().

Referenced by pop_exception_from_stack(), push_exception_on_stack(), and throw_exception().

void dump_exception_stack_to_file | ( | FILE * | f | ) |

Definition at line 216 of file errors.c.

References exception_index.

Referenced by dump_exception_stack().

const char* get_exception_name | ( | unsigned int | exception | ) |

Definition at line 136 of file errors.c.

References any_exception_error, overflow_error, parser_exception_error, simplex_arithmetic_error, timeout_error, and user_exception_error.

void linear_initialize_exception_stack | ( | unsigned int | verbose_exceptions,
|  | exception_callback_t | push,
|  | exception_callback_t | pop |
| ) |  |  |

Definition at line 384 of file errors.c.

References linear_exception_verbose, and set_exception_callbacks().

void pop_exception_from_stack | ( | int | what,
|  | const char * | function,
|  | const char * | file,
|  | int | line |
| ) |  |  |

Definition at line 285 of file errors.c.

References dump_exception_stack(), exception_debug_message, exception_debug_trace, exception_index, pop_callback, same_string_p, and the_last_just_thrown_exception.

jmp_buf* push_exception_on_stack | ( | int | what,
|  | const char * | function,
|  | const char * | file,
|  | int | line |
| ) |  |  |

Definition at line 249 of file errors.c.

References dump_exception_stack(), exception_debug_message, exception_debug_trace, exception_index, linear_exception_holder::file, linear_exception_holder::function, linear_exception_holder::line, MAX_STACKED_CONTEXTS, push_callback, the_last_just_thrown_exception, linear_exception_holder::what, and linear_exception_holder::where.

void set_exception_callbacks | ( | exception_callback_t | push,
|  | exception_callback_t | pop |
| ) |  |  |

Definition at line 196 of file errors.c.

References pop_callback, and push_callback.

Referenced by linear_initialize_exception_stack().

void throw_exception | ( | int | what,
|  | const char * | function,
|  | const char * | file,
|  | int | line |
| ) |  |  |

Definition at line 329 of file errors.c.

References dump_exception_stack(), exception_debug_message, exception_debug_trace, exception_index, linear_exception_debug_mode, linear_exception_verbose, linear_number_of_exception_thrown, pop_callback, and the_last_just_thrown_exception.

## Variable Documentation

unsigned int any_exception_error = ~0

Definition at line 116 of file errors.c.

Referenced by AddConstraints(), AddRays(), align_context(), BuildSat(), Chernikova(), Constraints2Polyhedron(), DomainConvex(), DomainCost(), DomainImage(), DomainPreimage(), FindSimple(), Gauss4(), get_exception_name(), Polyhedron_Image(), Polyhedron_Preimage(), Rays2Polyhedron(), Rays_Mult(), Rays_Mult_Transpose(), Remove_Redundants(), SimplifyConstraints(), Stras_DomainSimplify(), and SubConstraint().

int exception_index = 0`[static]`

Definition at line 189 of file errors.c.

Referenced by dump_exception_stack_to_file(), pop_exception_from_stack(), push_exception_on_stack(), and throw_exception().

linear_exception_holder exception_stack[MAX_STACKED_CONTEXTS]`[static]`

Definition at line 188 of file errors.c.

int linear_exception_debug_mode = FALSE`[static]`

Definition at line 160 of file errors.c.

Referenced by throw_exception().

unsigned int linear_exception_verbose = 1 | 2 | 16`[static]`

Definition at line 161 of file errors.c.

Referenced by linear_initialize_exception_stack(), and throw_exception().

int linear_number_of_exception_thrown = 0

Definition at line 212 of file errors.c.

Referenced by throw_exception().

unsigned int overflow_error = 1

Definition at line 109 of file errors.c.

Referenced by Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), get_exception_name(), and Polyhedron_Enumerate().

unsigned int parser_exception_error = 8

Definition at line 112 of file errors.c.

Referenced by get_exception_name().

exception_callback_t pop_callback = NULL`[static]`

Definition at line 194 of file errors.c.

Referenced by pop_exception_from_stack(), set_exception_callbacks(), and throw_exception().

exception_callback_t push_callback = NULL`[static]`

Definition at line 193 of file errors.c.

Referenced by push_exception_on_stack(), and set_exception_callbacks().

unsigned int simplex_arithmetic_error = 2

Definition at line 110 of file errors.c.

Referenced by get_exception_name().

unsigned int the_last_just_thrown_exception = 0

Definition at line 156 of file errors.c.

Referenced by pop_exception_from_stack(), push_exception_on_stack(), and throw_exception().

unsigned int timeout_error = 16

Definition at line 113 of file errors.c.

Referenced by get_exception_name().

unsigned int user_exception_error = 4

Definition at line 111 of file errors.c.

Referenced by get_exception_name().