Beispiel #1
0
/**
 * @TODO: make the output stream configurable? Either
 * Print out an error and exit
 */
void saffire_warning(char *str, ...) {
    t_dll_element *e = DLL_TAIL(lineno_stack);
    unsigned long lineno = (unsigned long)e->data;

    va_list args;
    va_start(args, str);
    fprintf(STREAM_WARNING, "Warning in line %lu: ", (unsigned long)lineno);
    vfprintf(STREAM_WARNING, str, args);
    fprintf(STREAM_WARNING, "\n");
    va_end(args);
}
Beispiel #2
0
/**
 * Print out an error and exit
 */
void saffire_error(char *str, ...) {
    t_dll_element *e = DLL_TAIL(lineno_stack);
    unsigned long lineno = (unsigned long)e->data;

    va_list args;
    va_start(args, str);
    fprintf(STREAM_ERROR, "Error in line %lu: ", (unsigned long)lineno);
    vfprintf(STREAM_ERROR, str, args);
    fprintf(STREAM_ERROR, "\n");
    va_end(args);
    exit(1);
}
Beispiel #3
0
t_scope *get_current_scope(void) {
    t_dll_element *e = DLL_TAIL(scope_stack->dll);
    return e->data;
}