include/xbt/mmalloc.h
include/xbt/replay_trace_reader.h
include/xbt/parmap.h
- include/xbt/automatonparse_promela.h
include/xbt/automaton.h
+ include/xbt/automatonparse_promela.h
include/mc/modelchecker.h
include/msg/msg.h
include/msg/datatypes.h
return a->current_state;
}
-xbt_propositional_symbol_t xbt_new_propositional_symbol(xbt_automaton_t a, char* id, void* fct){
+xbt_propositional_symbol_t xbt_new_propositional_symbol(xbt_automaton_t a, const char* id, void* fct){
xbt_propositional_symbol_t prop_symb = NULL;
prop_symb = xbt_new0(struct xbt_propositional_symbol, 1);
prop_symb->pred = strdup(id);
#include <string.h>
#include <xbt/dynar.h>
#include <xbt/sysdep.h>
+#include <xbt/graph.h>
SG_BEGIN_DECL()
typedef struct xbt_propositional_symbol* xbt_propositional_symbol_t;
-XBT_PUBLIC(xbt_automaton_t) xbt_automaton_new_automaton();
+XBT_PUBLIC(xbt_automaton_t) xbt_automaton_new_automaton(void);
XBT_PUBLIC(xbt_state_t) xbt_automaton_new_state(xbt_automaton_t a, int type, char* id);
XBT_PUBLIC(void) xbt_automaton_display_exp(xbt_exp_label_t l);
-XBT_PUBLIC(xbt_propositional_symbol_t) xbt_new_propositional_symbol(xbt_automaton_t a, char* id, void* fct);
+XBT_PUBLIC(xbt_propositional_symbol_t) xbt_new_propositional_symbol(xbt_automaton_t a, const char* id, void* fct);
+
+XBT_PUBLIC(xbt_state_t) xbt_automaton_get_current_state(xbt_automaton_t a);
SG_END_DECL()
SG_BEGIN_DECL()
-XBT_PUBLIC(void) init();
+XBT_PUBLIC(void) init(void);
XBT_PUBLIC(void) new_state(char* id, int src);
XBT_PUBLIC(xbt_exp_label_t) new_label(int type, ...);
-XBT_PUBLIC(xbt_automaton_t) get_automaton();
+XBT_PUBLIC(xbt_automaton_t) get_automaton(void);
-XBT_PUBLIC(void) display_automaton();
+XBT_PUBLIC(void) display_automaton(void);
SG_END_DECL()
int yywrap(void);
int yylex(void);
+int predD(void);
+int predR(void);
+int predE(void);
-int predD();
-int predR();
-int predE();
+int server(int argc, char *argv[]);
+int client(int argc, char *argv[]);
#endif
#include "automatonparse_promela.h"
#include "lex.yy.c"
+void yyerror(const char *s);
+
%}
%union{
%%
-int yyerror(char *s) {
- fprintf(stderr, "%s\n", s);
- return 0;
+
+
+void yyerror(const char *s){
+ fprintf (stderr, "%s\n", s);
}
+
#include "automatonparse_promela.h"
#include "lex.yy.c"
+void yyerror(const char *s);
+
/* Line 189 of yacc.c */
-#line 82 "y.tab.c"
+#line 84 "y.tab.c"
/* Enabling traces. */
#ifndef YYDEBUG
{
/* Line 214 of yacc.c */
-#line 9 "parserPromela.yacc"
+#line 11 "parserPromela.yacc"
double real;
int integer;
/* Line 214 of yacc.c */
-#line 171 "y.tab.c"
+#line 173 "y.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
/* Line 264 of yacc.c */
-#line 183 "y.tab.c"
+#line 185 "y.tab.c"
#ifdef short
# undef short
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
- 0, 46, 46, 49, 50, 50, 53, 54, 57, 58,
- 59, 60, 61, 62
+ 0, 48, 48, 51, 52, 52, 55, 56, 59, 60,
+ 61, 62, 63, 64
};
#endif
case 4:
/* Line 1455 of yacc.c */
-#line 50 "parserPromela.yacc"
+#line 52 "parserPromela.yacc"
{ new_state((yyvsp[(1) - (2)].string), 1);}
break;
case 7:
/* Line 1455 of yacc.c */
-#line 54 "parserPromela.yacc"
+#line 56 "parserPromela.yacc"
{ new_transition((yyvsp[(5) - (6)].string), (yyvsp[(2) - (6)].label));}
break;
case 8:
/* Line 1455 of yacc.c */
-#line 57 "parserPromela.yacc"
+#line 59 "parserPromela.yacc"
{ (yyval.label) = (yyvsp[(2) - (3)].label); }
break;
case 9:
/* Line 1455 of yacc.c */
-#line 58 "parserPromela.yacc"
+#line 60 "parserPromela.yacc"
{ (yyval.label) = new_label(0, (yyvsp[(1) - (3)].label), (yyvsp[(3) - (3)].label)); }
break;
case 10:
/* Line 1455 of yacc.c */
-#line 59 "parserPromela.yacc"
+#line 61 "parserPromela.yacc"
{ (yyval.label) = new_label(1, (yyvsp[(1) - (3)].label), (yyvsp[(3) - (3)].label)); }
break;
case 11:
/* Line 1455 of yacc.c */
-#line 60 "parserPromela.yacc"
+#line 62 "parserPromela.yacc"
{ (yyval.label) = new_label(2, (yyvsp[(2) - (2)].label)); }
break;
case 12:
/* Line 1455 of yacc.c */
-#line 61 "parserPromela.yacc"
+#line 63 "parserPromela.yacc"
{ (yyval.label) = new_label(4); }
break;
case 13:
/* Line 1455 of yacc.c */
-#line 62 "parserPromela.yacc"
+#line 64 "parserPromela.yacc"
{ (yyval.label) = new_label(3, (yyvsp[(1) - (1)].string)); }
break;
/* Line 1455 of yacc.c */
-#line 1444 "y.tab.c"
+#line 1446 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1675 of yacc.c */
-#line 65 "parserPromela.yacc"
+#line 67 "parserPromela.yacc"
-int yyerror(char *s) {
- fprintf(stderr, "%s\n", s);
- return 0;
+
+
+void yyerror(const char *s){
+ fprintf (stderr, "%s\n", s);
}
+
{
/* Line 1676 of yacc.c */
-#line 9 "parserPromela.yacc"
+#line 11 "parserPromela.yacc"
double real;
int integer;
#include <string.h>
#include "xbt/dynar.h"
#include "xbt/sysdep.h"
+#include "xbt/graph.h"
SG_BEGIN_DECL()
typedef struct xbt_propositional_symbol* xbt_propositional_symbol_t;
-XBT_PUBLIC(xbt_automaton_t) xbt_automaton_new_automaton();
+XBT_PUBLIC(xbt_automaton_t) xbt_automaton_new_automaton(void);
XBT_PUBLIC(xbt_state_t) xbt_automaton_new_state(xbt_automaton_t a, int type, char* id);
XBT_PUBLIC(void) xbt_automaton_display_exp(xbt_exp_label_t l);
-XBT_PUBLIC(xbt_propositional_symbol_t) xbt_new_propositional_symbol(xbt_automaton_t a, char* id, void* fct);
+XBT_PUBLIC(xbt_propositional_symbol_t) xbt_new_propositional_symbol(xbt_automaton_t a, const char* id, void* fct);
+
+XBT_PUBLIC(xbt_state_t) xbt_automaton_get_current_state(xbt_automaton_t a);
SG_END_DECL()
SG_BEGIN_DECL()
-XBT_PUBLIC(void) init();
+XBT_PUBLIC(void) init(void);
XBT_PUBLIC(void) new_state(char* id, int src);
XBT_PUBLIC(xbt_exp_label_t) new_label(int type, ...);
-XBT_PUBLIC(xbt_automaton_t) get_automaton();
+XBT_PUBLIC(xbt_automaton_t) get_automaton(void);
+
+XBT_PUBLIC(void) display_automaton(void);
SG_END_DECL()
/********************************* Global *************************************/
XBT_PUBLIC(void) MC_init(void);
+XBT_PUBLIC(void) MC_init_with_automaton(xbt_automaton_t a);
XBT_PUBLIC(void) MC_exit(void);
XBT_PUBLIC(void) MC_assert(int);
XBT_PUBLIC(void) MC_modelcheck(void);
return 2;
break;
}
+ default :
+ return -1;
}
}
smx_process_t process = NULL;
int value;
- mc_state_t state = NULL;
mc_state_t next_graph_state = NULL;
smx_req_t req = NULL;
char *req_str;
//FIXME : vérifier condition permettant d'avoir tous les successeurs possibles dans le graph
- while(req = MC_state_get_request(current_pair->graph_state, &value)){
+ while((req = MC_state_get_request(current_pair->graph_state, &value)) != NULL){
/* Debug information */
if(XBT_LOG_ISENABLED(mc_dfs, xbt_log_priority_debug)){
#include "xbt/automaton.h"
+#include "xbt/dynar.h"
xbt_automaton_t xbt_automaton_new_automaton(){
xbt_automaton_t automaton = NULL;
return a->current_state;
}
-xbt_propositional_symbol_t xbt_new_propositional_symbol(xbt_automaton_t a, char* id, void* fct){
+xbt_propositional_symbol_t xbt_new_propositional_symbol(xbt_automaton_t a, const char* id, void* fct){
xbt_propositional_symbol_t prop_symb = NULL;
prop_symb = xbt_new0(struct xbt_propositional_symbol, 1);
prop_symb->pred = strdup(id);