-/* A Bison parser, made by GNU Bison 3.0.2. */
+/* A Bison parser, made by GNU Bison 3.2.2. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
+/* Undocumented macros, especially those whose name start with YY_,
+ are private implementation details. Do not rely on them. */
+
/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "3.0.2"
+#define YYBISON_VERSION "3.2.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
#define yylval xbt_automaton_parser_lval
#define yychar xbt_automaton_parser_char
-/* Copy the first part of user declarations. */
-#line 7 "parserPromela.yacc" /* yacc.c:339 */
+/* First part of user prologue. */
+#line 7 "parserPromela.yacc" /* yacc.c:338 */
+#include "simgrid/config.h"
+#if !HAVE_UNISTD_H
+#define YY_NO_UNISTD_H /* hello Windows */
+#endif
#include "automaton_lexer.yy.c"
#include <xbt/automaton.h>
void yyerror(const char *s);
-#line 83 "parserPromela.tab.cacc" /* yacc.c:339 */
-
+#line 90 "parserPromela.tab.cacc" /* yacc.c:338 */
# ifndef YY_NULLPTR
-# if defined __cplusplus && 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
+# if defined __cplusplus
+# if 201103L <= __cplusplus
+# define YY_NULLPTR nullptr
+# else
+# define YY_NULLPTR 0
+# endif
# else
-# define YY_NULLPTR 0
+# define YY_NULLPTR ((void*)0)
# endif
# endif
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
+
union YYSTYPE
{
-#line 16 "parserPromela.yacc" /* yacc.c:355 */
+#line 20 "parserPromela.yacc" /* yacc.c:353 */
double real;
int integer;
char* string;
xbt_automaton_exp_label_t label;
-#line 153 "parserPromela.tab.cacc" /* yacc.c:355 */
+#line 163 "parserPromela.tab.cacc" /* yacc.c:353 */
};
+
+typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
#endif /* !YY_XBT_AUTOMATON_PARSER_PARSERPROMELA_TAB_HACC_INCLUDED */
-/* Copy the second part of user declarations. */
-#line 168 "parserPromela.tab.cacc" /* yacc.c:358 */
#ifdef short
# undef short
#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
-typedef unsigned short int yytype_uint16;
+typedef unsigned short yytype_uint16;
#endif
#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
-typedef short int yytype_int16;
+typedef short yytype_int16;
#endif
#ifndef YYSIZE_T
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
-# define YYSIZE_T unsigned int
+# define YYSIZE_T unsigned
# endif
#endif
# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
#endif
-#if !defined _Noreturn \
- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-# define _Noreturn __declspec (noreturn)
-# else
-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
# define YYUSE(E) /* empty */
#endif
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
#define YYMAXUTOK 277
#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+ ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, without out-of-bounds checking. */
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
- 0, 53, 53, 56, 57, 57, 60, 61, 64, 65,
- 66, 67, 68, 69
+ 0, 57, 57, 60, 61, 61, 64, 65, 68, 69,
+ 70, 71, 72, 73
};
#endif
} while (0)
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT. |
-`----------------------------------------*/
+/*-----------------------------------.
+| Print this symbol's value on YYO. |
+`-----------------------------------*/
static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
{
- FILE *yyo = yyoutput;
- YYUSE (yyo);
+ FILE *yyoutput = yyo;
+ YYUSE (yyoutput);
if (!yyvaluep)
return;
# ifdef YYPRINT
if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+ YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
# endif
YYUSE (yytype);
}
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
+/*---------------------------.
+| Print this symbol on YYO. |
+`---------------------------*/
static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
{
- YYFPRINTF (yyoutput, "%s %s (",
+ YYFPRINTF (yyo, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
- YYFPRINTF (yyoutput, ")");
+ yy_symbol_value_print (yyo, yytype, yyvaluep);
+ YYFPRINTF (yyo, ")");
}
/*------------------------------------------------------------------.
static void
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
{
- unsigned long int yylno = yyrline[yyrule];
+ unsigned long yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
if (! yyres)
return yystrlen (yystr);
- return yystpcpy (yyres, yystr) - yyres;
+ return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
}
# endif
case N: \
yyformat = S; \
break
+ default: /* Avoid compiler warnings. */
YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
yyssp++;
yysetstate:
- *yyssp = yystate;
+ *yyssp = (yytype_int16) yystate;
if (yyss + yystacksize - 1 <= yyssp)
{
/* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
+ YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
#ifdef yyoverflow
{
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yystacksize);
-
yyss = yyss1;
yyvs = yyvs1;
}
yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
+ (unsigned long) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
switch (yyn)
{
case 4:
-#line 57 "parserPromela.yacc" /* yacc.c:1646 */
+#line 61 "parserPromela.yacc" /* yacc.c:1645 */
{ new_state((yyvsp[-1].string), 1);}
-#line 1256 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 1257 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
case 7:
-#line 61 "parserPromela.yacc" /* yacc.c:1646 */
+#line 65 "parserPromela.yacc" /* yacc.c:1645 */
{ new_transition((yyvsp[-1].string), (yyvsp[-4].label));}
-#line 1262 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 1263 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
case 8:
-#line 64 "parserPromela.yacc" /* yacc.c:1646 */
+#line 68 "parserPromela.yacc" /* yacc.c:1645 */
{ (yyval.label) = (yyvsp[-1].label); }
-#line 1268 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 1269 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
case 9:
-#line 65 "parserPromela.yacc" /* yacc.c:1646 */
- { (yyval.label) = new_label(0, (yyvsp[-2].label), (yyvsp[0].label)); }
-#line 1274 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 69 "parserPromela.yacc" /* yacc.c:1645 */
+ { (yyval.label) = xbt_automaton_exp_label_new_or((yyvsp[-2].label), (yyvsp[0].label)); }
+#line 1275 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
case 10:
-#line 66 "parserPromela.yacc" /* yacc.c:1646 */
- { (yyval.label) = new_label(1, (yyvsp[-2].label), (yyvsp[0].label)); }
-#line 1280 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 70 "parserPromela.yacc" /* yacc.c:1645 */
+ { (yyval.label) = xbt_automaton_exp_label_new_and((yyvsp[-2].label), (yyvsp[0].label)); }
+#line 1281 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
case 11:
-#line 67 "parserPromela.yacc" /* yacc.c:1646 */
- { (yyval.label) = new_label(2, (yyvsp[0].label)); }
-#line 1286 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 71 "parserPromela.yacc" /* yacc.c:1645 */
+ { (yyval.label) = xbt_automaton_exp_label_new_not((yyvsp[0].label)); }
+#line 1287 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
case 12:
-#line 68 "parserPromela.yacc" /* yacc.c:1646 */
- { (yyval.label) = new_label(4); }
-#line 1292 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 72 "parserPromela.yacc" /* yacc.c:1645 */
+ { (yyval.label) = xbt_automaton_exp_label_new_one(); }
+#line 1293 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
case 13:
-#line 69 "parserPromela.yacc" /* yacc.c:1646 */
- { (yyval.label) = new_label(3, (yyvsp[0].string)); }
-#line 1298 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 73 "parserPromela.yacc" /* yacc.c:1645 */
+ { (yyval.label) = xbt_automaton_exp_label_new_predicat((yyvsp[0].string)); }
+#line 1299 "parserPromela.tab.cacc" /* yacc.c:1645 */
break;
-#line 1302 "parserPromela.tab.cacc" /* yacc.c:1646 */
+#line 1303 "parserPromela.tab.cacc" /* yacc.c:1645 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
/* Now 'shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
+ {
+ const int yylhs = yyr1[yyn] - YYNTOKENS;
+ const int yyi = yypgoto[yylhs] + *yyssp;
+ yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
+ ? yytable[yyi]
+ : yydefgoto[yylhs]);
+ }
goto yynewstate;
#endif
return yyresult;
}
-#line 72 "parserPromela.yacc" /* yacc.c:1906 */
+#line 76 "parserPromela.yacc" /* yacc.c:1903 */