X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6ccb42bd405aa3588930073b79d7c469fa49579f..f968cbbb699423fa252994ff42de77f8671ac7eb:/src/xbt/automaton/automaton.c diff --git a/src/xbt/automaton/automaton.c b/src/xbt/automaton/automaton.c index ee8be8e002..a60182779e 100644 --- a/src/xbt/automaton/automaton.c +++ b/src/xbt/automaton/automaton.c @@ -1,12 +1,16 @@ /* automaton - representation of büchi automaton */ -/* Copyright (c) 2011-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2011-2018. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #include "xbt/automaton.h" #include /* printf */ +#include +#include + +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_automaton, xbt, "Automaton"); struct xbt_automaton_propositional_symbol{ char* pred; @@ -82,6 +86,13 @@ xbt_automaton_exp_label_t xbt_automaton_exp_label_new(int type, ...){ p = va_arg(ap, char*); label->u.predicat = xbt_strdup(p); break; + case 4: + break; + default: + XBT_DEBUG("Invalid type: %d", type); + xbt_free(label); + label = NULL; + break; } va_end(ap); return label; @@ -95,7 +106,7 @@ xbt_dynar_t xbt_automaton_get_transitions(xbt_automaton_t a){ return a->transitions; } -xbt_automaton_transition_t xbt_automaton_get_transition(xbt_automaton_t XBT_ATTRIB_UNUSED a, xbt_automaton_state_t src, +xbt_automaton_transition_t xbt_automaton_get_transition(XBT_ATTRIB_UNUSED xbt_automaton_t a, xbt_automaton_state_t src, xbt_automaton_state_t dst) { xbt_automaton_transition_t transition; @@ -202,7 +213,9 @@ static int call_simple_function(void* function) return ((int (*)(void)) function)(); } -xbt_automaton_propositional_symbol_t xbt_automaton_propositional_symbol_new(xbt_automaton_t a, const char* id, int(*fct)(void)){ +xbt_automaton_propositional_symbol_t xbt_automaton_propositional_symbol_new(xbt_automaton_t a, const char* id, + int (*fct)(void)) +{ xbt_automaton_propositional_symbol_t prop_symb = xbt_new0(struct xbt_automaton_propositional_symbol, 1); prop_symb->pred = xbt_strdup(id); prop_symb->callback = &call_simple_function; @@ -212,7 +225,9 @@ xbt_automaton_propositional_symbol_t xbt_automaton_propositional_symbol_new(xbt_ return prop_symb; } -XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_symbol_new_pointer(xbt_automaton_t a, const char* id, int* value) +XBT_PUBLIC xbt_automaton_propositional_symbol_t xbt_automaton_propositional_symbol_new_pointer(xbt_automaton_t a, + const char* id, + int* value) { xbt_automaton_propositional_symbol_t prop_symb = xbt_new0(struct xbt_automaton_propositional_symbol, 1); prop_symb->pred = xbt_strdup(id); @@ -223,10 +238,9 @@ XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_sym return prop_symb; } -XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_symbol_new_callback( - xbt_automaton_t a, const char* id, - xbt_automaton_propositional_symbol_callback_type callback, - void* data, xbt_automaton_propositional_symbol_free_function_type free_function) +XBT_PUBLIC xbt_automaton_propositional_symbol_t xbt_automaton_propositional_symbol_new_callback( + xbt_automaton_t a, const char* id, xbt_automaton_propositional_symbol_callback_type callback, void* data, + xbt_automaton_propositional_symbol_free_function_type free_function) { xbt_automaton_propositional_symbol_t prop_symb = xbt_new0(struct xbt_automaton_propositional_symbol, 1); prop_symb->pred = xbt_strdup(id); @@ -237,7 +251,7 @@ XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_sym return prop_symb; } -XBT_PUBLIC(int) xbt_automaton_propositional_symbol_evaluate(xbt_automaton_propositional_symbol_t symbol) +XBT_PUBLIC int xbt_automaton_propositional_symbol_evaluate(xbt_automaton_propositional_symbol_t symbol) { if (symbol->callback) return (symbol->callback)(symbol->data); @@ -245,17 +259,18 @@ XBT_PUBLIC(int) xbt_automaton_propositional_symbol_evaluate(xbt_automaton_propos return *(int*) symbol->data; } -XBT_PUBLIC(xbt_automaton_propositional_symbol_callback_type) xbt_automaton_propositional_symbol_get_callback(xbt_automaton_propositional_symbol_t symbol) +XBT_PUBLIC xbt_automaton_propositional_symbol_callback_type +xbt_automaton_propositional_symbol_get_callback(xbt_automaton_propositional_symbol_t symbol) { return symbol->callback; } -XBT_PUBLIC(void*) xbt_automaton_propositional_symbol_get_data(xbt_automaton_propositional_symbol_t symbol) +XBT_PUBLIC void* xbt_automaton_propositional_symbol_get_data(xbt_automaton_propositional_symbol_t symbol) { return symbol->data; } -XBT_PUBLIC(const char*) xbt_automaton_propositional_symbol_get_name(xbt_automaton_propositional_symbol_t symbol) +XBT_PUBLIC const char* xbt_automaton_propositional_symbol_get_name(xbt_automaton_propositional_symbol_t symbol) { return symbol->pred; }