-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2019. 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 "simgrid_config.h"
-#ifndef HAVE_UNISTD_H
+#include "simgrid/config.h"
+#if !HAVE_UNISTD_H
#define YY_NO_UNISTD_H /* hello Windows */
#endif
void yyerror(const char *s);
+static void new_state(char* id, int src);
+static void new_transition(char* id, xbt_automaton_exp_label_t label);
+
%}
%union{
%%
-automaton : NEVER LEFT_BRACE stateseq RIGHT_BRACE
+automaton : NEVER LEFT_BRACE stateseq RIGHT_BRACE
;
-stateseq :
- | ID COLON { new_state($1, 1);} IF option FI SEMI_COLON stateseq
+stateseq :
+ | ID COLON { new_state($1, 1);} IF option FI SEMI_COLON stateseq
;
option :
;
exp : LEFT_PAR exp RIGHT_PAR { $$ = $2; }
- | exp OR exp { $$ = new_label(0, $1, $3); }
- | exp AND exp { $$ = new_label(1, $1, $3); }
- | NOT exp { $$ = new_label(2, $2); }
- | CASE_TRUE { $$ = new_label(4); }
- | ID { $$ = new_label(3, $1); }
+ | exp OR exp { $$ = xbt_automaton_exp_label_new_or($1, $3); }
+ | exp AND exp { $$ = xbt_automaton_exp_label_new_and($1, $3); }
+ | NOT exp { $$ = xbt_automaton_exp_label_new_not($2); }
+ | CASE_TRUE { $$ = xbt_automaton_exp_label_new_one(); }
+ | ID { $$ = xbt_automaton_exp_label_new_predicat($1); }
;
-
+
%%