#define YYBISON 1
# define T_graph 257
# define T_node 258
# define T_edge 259
# define T_view 260
# define T_pattern 261
# define T_search 262
# define T_input 263
# define T_open 264
# define T_close 265
# define T_insert 266
# define T_delete 267
# define T_modify 268
# define T_lock 269
# define T_unlock 270
# define T_segue 271
# define T_define 272
# define T_id 273
# define T_edgeop 274
# define T_subgraph 275
#line 1 "gsgram.ypp"
#pragma prototyped
#include "graphsearch/gscmds.h"
#line 12 "gsgram.ypp"
#ifndef YYSTYPE
typedef union {
int i;
char *str;
} gs_yystype;
# define YYSTYPE gs_yystype
# define YYSTYPE_IS_TRIVIAL 1
#endif
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#define YYFINAL 85
#define YYFLAG -32768
#define YYNTBASE 28
#define YYTRANSLATE(x) ((unsigned)(x) <= 275 ? gs_yytranslate[x] : 55)
static const char gs_yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
22, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 27, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 26,
2, 25, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 23, 2, 24, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21
};
#if YYDEBUG
static const short gs_yyprhs[] =
{
0, 0, 2, 6, 7, 9, 11, 13, 15, 17,
19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
39, 41, 42, 46, 49, 53, 58, 62, 66, 70,
73, 76, 79, 85, 91, 96, 104, 110, 115, 116,
121, 122, 124, 125, 127, 131, 135, 137, 139, 140
};
static const short gs_yyrhs[] =
{
29, 0, 29, 30, 22, 0, 0, 42, 0, 45,
0, 43, 0, 46, 0, 44, 0, 47, 0, 32,
0, 34, 0, 35, 0, 36, 0, 37, 0, 38,
0, 39, 0, 40, 0, 41, 0, 31, 0, 1,
0, 0, 10, 6, 33, 0, 54, 48, 0, 11,
6, 54, 0, 14, 6, 54, 48, 0, 15, 6,
54, 0, 16, 6, 54, 0, 17, 6, 54, 0,
18, 7, 0, 18, 8, 0, 18, 9, 0, 12,
54, 4, 19, 48, 0, 14, 54, 4, 19, 48,
0, 13, 54, 4, 19, 0, 12, 54, 5, 19,
19, 19, 48, 0, 14, 54, 5, 19, 48, 0,
13, 54, 5, 19, 0, 0, 23, 49, 50, 24,
0, 0, 51, 0, 0, 52, 0, 51, 53, 52,
0, 19, 25, 19, 0, 26, 0, 27, 0, 0,
19, 0
};
#endif
#if YYDEBUG
static const short gs_yyrline[] =
{
0, 19, 23, 24, 27, 28, 29, 29, 30, 30,
31, 31, 31, 32, 32, 33, 34, 34, 34, 35,
36, 39, 42, 45, 48, 51, 54, 57, 60, 63,
66, 69, 72, 75, 78, 81, 84, 87, 90, 90,
91, 94, 95, 98, 99, 102, 105, 105, 105, 107
};
#endif
#if (YYDEBUG) || defined YYERROR_VERBOSE
static const char *const gs_yytname[] =
{
"$", "error", "$undefined.", "T_graph", "T_node", "T_edge", "T_view",
"T_pattern", "T_search", "T_input", "T_open", "T_close", "T_insert",
"T_delete", "T_modify", "T_lock", "T_unlock", "T_segue", "T_define",
"T_id", "T_edgeop", "T_subgraph", "'\\n'", "'['", "']'", "'='", "';'",
"','", "session", "commands", "command", "nop", "open_view",
"open_view2", "close_view", "mod_view", "lock_view", "unlock_view",
"segue", "define_pattern", "define_search", "define_input", "ins_node",
"mod_node", "del_node", "ins_edge", "mod_edge", "del_edge", "attrlist",
"@1", "optattrdefs", "attrdefs", "attritem", "optsep", "viewid", 0
};
#endif
static const short gs_yyr1[] =
{
0, 28, 29, 29, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 49, 48,
48, 50, 50, 51, 51, 52, 53, 53, 53, 54
};
static const short gs_yyr2[] =
{
0, 1, 3, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 3, 2, 3, 4, 3, 3, 3, 2,
2, 2, 5, 5, 4, 7, 5, 4, 0, 4,
0, 1, 0, 1, 3, 3, 1, 1, 0, 1
};
static const short gs_yydefact[] =
{
3, 0, 20, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 19, 10, 11, 12, 13, 14, 15,
16, 17, 18, 4, 6, 8, 5, 7, 9, 0,
0, 49, 0, 0, 0, 0, 0, 0, 0, 29,
30, 31, 2, 22, 40, 24, 0, 0, 0, 0,
40, 0, 0, 26, 27, 28, 38, 23, 40, 0,
34, 37, 25, 40, 40, 42, 32, 0, 33, 36,
0, 0, 41, 43, 40, 0, 39, 46, 47, 0,
35, 45, 44, 0, 0, 0
};
static const short gs_yydefgoto[] =
{
83, 1, 12, 13, 14, 43, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
57, 65, 71, 72, 73, 79, 32
};
static const short gs_yypact[] =
{
-32768, 33,-32768, -3, 3, -8, -8, -2, 8, 19,
21, -1, 0,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -8,
-8,-32768, 14, 16, -8, 31, -8, -8, -8,-32768,
-32768,-32768,-32768,-32768, 6,-32768, 18, 20, 22, 23,
6, 34, 35,-32768,-32768,-32768,-32768,-32768, 6, 37,
-32768,-32768,-32768, 6, 6, 38,-32768, 39,-32768,-32768,
13, 28, -14,-32768, 6, 40,-32768,-32768,-32768, 38,
-32768,-32768,-32768, 60, 61,-32768
};
static const short gs_yypgoto[] =
{
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-48,-32768,-32768,-32768, -39,-32768, -6
};
#define YYLAST 61
static const short gs_yytable[] =
{
33, 35, 62, 29, 34, -48, 39, 40, 41, 30,
66, 31, 77, 78, 36, 68, 69, 31, 46, 47,
48, 49, 42, 44, 45, 37, 80, 38, 50, 56,
53, 54, 55, -1, 2, 51, 52, 58, 75, 59,
82, 60, 61, 3, 4, 5, 6, 7, 8, 9,
10, 11, 76, 63, 64, -21, 67, 70, 74, 81,
84, 85
};
static const short gs_yycheck[] =
{
6, 7, 50, 6, 6, 19, 7, 8, 9, 6,
58, 19, 26, 27, 6, 63, 64, 19, 4, 5,
4, 5, 22, 29, 30, 6, 74, 6, 34, 23,
36, 37, 38, 0, 1, 4, 5, 19, 25, 19,
79, 19, 19, 10, 11, 12, 13, 14, 15, 16,
17, 18, 24, 19, 19, 22, 19, 19, 19, 19,
0, 0
};
#line 3 "/usr/share/bison/bison.simple"
#if ! defined (gs_yyoverflow) || defined (YYERROR_VERBOSE)
# if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
# else
# ifndef YYSTACK_USE_ALLOCA
# if defined (alloca) || defined (_ALLOCA_H)
# define YYSTACK_ALLOC alloca
# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
# define YYSTACK_FREE(Ptr) do { ; } while (0)
# else
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h>
# define YYSIZE_T size_t
# endif
# define YYSTACK_ALLOC malloc
# define YYSTACK_FREE free
# endif
#endif
#if (! defined (gs_yyoverflow) \
&& (! defined (__cplusplus) \
|| (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
union gs_yyalloc
{
short gs_yyss;
YYSTYPE gs_yyvs;
# if YYLSP_NEEDED
YYLTYPE gs_yyls;
# endif
};
# define YYSTACK_GAP_MAX (sizeof (union gs_yyalloc) - 1)
# if YYLSP_NEEDED
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+ 2 * YYSTACK_GAP_MAX)
# else
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAX)
# endif
# ifndef YYCOPY
# if 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
register YYSIZE_T gs_yyi; \
for (gs_yyi = 0; gs_yyi < (Count); gs_yyi++) \
(To)[gs_yyi] = (From)[gs_yyi]; \
} \
while (0)
# endif
# endif
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T gs_yynewbytes; \
YYCOPY (&gs_yyptr->Stack, Stack, gs_yysize); \
Stack = &gs_yyptr->Stack; \
gs_yynewbytes = gs_yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
gs_yyptr += gs_yynewbytes / sizeof (*gs_yyptr); \
} \
while (0)
#endif
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
#endif
#if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T)
# if defined (__STDC__) || defined (__cplusplus)
# include <stddef.h>
# define YYSIZE_T size_t
# endif
#endif
#if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
#endif
#define gs_yyerrok (gs_yyerrstatus = 0)
#define gs_yyclearin (gs_yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT goto gs_yyacceptlab
#define YYABORT goto gs_yyabortlab
#define YYERROR goto gs_yyerrlab1
#define YYFAIL goto gs_yyerrlab
#define YYRECOVERING() (!!gs_yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (gs_yychar == YYEMPTY && gs_yylen == 1) \
{ \
gs_yychar = (Token); \
gs_yylval = (Value); \
gs_yychar1 = YYTRANSLATE (gs_yychar); \
YYPOPSTACK; \
goto gs_yybackup; \
} \
else \
{ \
gs_yyerror ("syntax error: cannot back up"); \
YYERROR; \
} \
while (0)
#define YYTERROR 1
#define YYERRCODE 256
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
#endif
#if YYPURE
# if YYLSP_NEEDED
# ifdef YYLEX_PARAM
# define YYLEX gs_yylex (&gs_yylval, &gs_yylloc, YYLEX_PARAM)
# else
# define YYLEX gs_yylex (&gs_yylval, &gs_yylloc)
# endif
# else
# ifdef YYLEX_PARAM
# define YYLEX gs_yylex (&gs_yylval, YYLEX_PARAM)
# else
# define YYLEX gs_yylex (&gs_yylval)
# endif
# endif
#else
# define YYLEX gs_yylex ()
#endif
#if YYDEBUG
# ifndef YYFPRINTF
# include <stdio.h>
# define YYFPRINTF fprintf
# endif
# define YYDPRINTF(Args) \
do { \
if (gs_yydebug) \
YYFPRINTF Args; \
} while (0)
int gs_yydebug;
#else
# define YYDPRINTF(Args)
#endif
#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif
#if YYMAXDEPTH == 0
# undef YYMAXDEPTH
#endif
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
#ifdef YYERROR_VERBOSE
# ifndef gs_yystrlen
# if defined (__GLIBC__) && defined (_STRING_H)
# define gs_yystrlen strlen
# else
static YYSIZE_T
# if defined (__STDC__) || defined (__cplusplus)
gs_yystrlen (const char *gs_yystr)
# else
gs_yystrlen (gs_yystr)
const char *gs_yystr;
# endif
{
register const char *gs_yys = gs_yystr;
while (*gs_yys++ != '\0')
continue;
return gs_yys - gs_yystr - 1;
}
# endif
# endif
# ifndef gs_yystpcpy
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
# define gs_yystpcpy stpcpy
# else
static char *
# if defined (__STDC__) || defined (__cplusplus)
gs_yystpcpy (char *gs_yydest, const char *gs_yysrc)
# else
gs_yystpcpy (gs_yydest, gs_yysrc)
char *gs_yydest;
const char *gs_yysrc;
# endif
{
register char *gs_yyd = gs_yydest;
register const char *gs_yys = gs_yysrc;
while ((*gs_yyd++ = *gs_yys++) != '\0')
continue;
return gs_yyd - 1;
}
# endif
# endif
#endif
#line 315 "/usr/share/bison/bison.simple"
#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
# define YYPARSE_PARAM_DECL
# else
# define YYPARSE_PARAM_ARG YYPARSE_PARAM
# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
# endif
#else
# define YYPARSE_PARAM_ARG
# define YYPARSE_PARAM_DECL
#endif
#ifdef __GNUC__
# ifdef YYPARSE_PARAM
int gs_yyparse (void *);
# else
int gs_yyparse (void);
# endif
#endif
#define YY_DECL_NON_LSP_VARIABLES \
\
int gs_yychar; \
\
\
YYSTYPE gs_yylval; \
\
\
int gs_yynerrs;
#if YYLSP_NEEDED
# define YY_DECL_VARIABLES \
YY_DECL_NON_LSP_VARIABLES \
\
\
YYLTYPE gs_yylloc;
#else
# define YY_DECL_VARIABLES \
YY_DECL_NON_LSP_VARIABLES
#endif
#if !YYPURE
YY_DECL_VARIABLES
#endif
int
gs_yyparse (YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{
#if YYPURE
YY_DECL_VARIABLES
#endif
register int gs_yystate;
register int gs_yyn;
int gs_yyresult;
int gs_yyerrstatus;
int gs_yychar1 = 0;
short gs_yyssa[YYINITDEPTH];
short *gs_yyss = gs_yyssa;
register short *gs_yyssp;
YYSTYPE gs_yyvsa[YYINITDEPTH];
YYSTYPE *gs_yyvs = gs_yyvsa;
register YYSTYPE *gs_yyvsp;
#if YYLSP_NEEDED
YYLTYPE gs_yylsa[YYINITDEPTH];
YYLTYPE *gs_yyls = gs_yylsa;
YYLTYPE *gs_yylsp;
#endif
#if YYLSP_NEEDED
# define YYPOPSTACK (gs_yyvsp--, gs_yyssp--, gs_yylsp--)
#else
# define YYPOPSTACK (gs_yyvsp--, gs_yyssp--)
#endif
YYSIZE_T gs_yystacksize = YYINITDEPTH;
YYSTYPE gs_yyval;
#if YYLSP_NEEDED
YYLTYPE gs_yyloc;
#endif
int gs_yylen;
YYDPRINTF ((stderr, "Starting parse\n"));
gs_yystate = 0;
gs_yyerrstatus = 0;
gs_yynerrs = 0;
gs_yychar = YYEMPTY;
gs_yyssp = gs_yyss;
gs_yyvsp = gs_yyvs;
#if YYLSP_NEEDED
gs_yylsp = gs_yyls;
#endif
goto gs_yysetstate;
gs_yynewstate:
gs_yyssp++;
gs_yysetstate:
*gs_yyssp = gs_yystate;
if (gs_yyssp >= gs_yyss + gs_yystacksize - 1)
{
YYSIZE_T gs_yysize = gs_yyssp - gs_yyss + 1;
#ifdef gs_yyoverflow
{
YYSTYPE *gs_yyvs1 = gs_yyvs;
short *gs_yyss1 = gs_yyss;
# if YYLSP_NEEDED
YYLTYPE *gs_yyls1 = gs_yyls;
gs_yyoverflow ("parser stack overflow",
&gs_yyss1, gs_yysize * sizeof (*gs_yyssp),
&gs_yyvs1, gs_yysize * sizeof (*gs_yyvsp),
&gs_yyls1, gs_yysize * sizeof (*gs_yylsp),
&gs_yystacksize);
gs_yyls = gs_yyls1;
# else
gs_yyoverflow ("parser stack overflow",
&gs_yyss1, gs_yysize * sizeof (*gs_yyssp),
&gs_yyvs1, gs_yysize * sizeof (*gs_yyvsp),
&gs_yystacksize);
# endif
gs_yyss = gs_yyss1;
gs_yyvs = gs_yyvs1;
}
#else
# ifndef YYSTACK_RELOCATE
goto gs_yyoverflowlab;
# else
if (gs_yystacksize >= YYMAXDEPTH)
goto gs_yyoverflowlab;
gs_yystacksize *= 2;
if (gs_yystacksize > YYMAXDEPTH)
gs_yystacksize = YYMAXDEPTH;
{
short *gs_yyss1 = gs_yyss;
union gs_yyalloc *gs_yyptr =
(union gs_yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (gs_yystacksize));
if (! gs_yyptr)
goto gs_yyoverflowlab;
YYSTACK_RELOCATE (gs_yyss);
YYSTACK_RELOCATE (gs_yyvs);
# if YYLSP_NEEDED
YYSTACK_RELOCATE (gs_yyls);
# endif
# undef YYSTACK_RELOCATE
if (gs_yyss1 != gs_yyssa)
YYSTACK_FREE (gs_yyss1);
}
# endif
#endif
gs_yyssp = gs_yyss + gs_yysize - 1;
gs_yyvsp = gs_yyvs + gs_yysize - 1;
#if YYLSP_NEEDED
gs_yylsp = gs_yyls + gs_yysize - 1;
#endif
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) gs_yystacksize));
if (gs_yyssp >= gs_yyss + gs_yystacksize - 1)
YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", gs_yystate));
goto gs_yybackup;
gs_yybackup:
gs_yyn = gs_yypact[gs_yystate];
if (gs_yyn == YYFLAG)
goto gs_yydefault;
if (gs_yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
gs_yychar = YYLEX;
}
if (gs_yychar <= 0)
{
gs_yychar1 = 0;
gs_yychar = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
gs_yychar1 = YYTRANSLATE (gs_yychar);
#if YYDEBUG
if (gs_yydebug)
{
YYFPRINTF (stderr, "Next token is %d (%s",
gs_yychar, gs_yytname[gs_yychar1]);
# ifdef YYPRINT
YYPRINT (stderr, gs_yychar, gs_yylval);
# endif
YYFPRINTF (stderr, ")\n");
}
#endif
}
gs_yyn += gs_yychar1;
if (gs_yyn < 0 || gs_yyn > YYLAST || gs_yycheck[gs_yyn] != gs_yychar1)
goto gs_yydefault;
gs_yyn = gs_yytable[gs_yyn];
if (gs_yyn < 0)
{
if (gs_yyn == YYFLAG)
goto gs_yyerrlab;
gs_yyn = -gs_yyn;
goto gs_yyreduce;
}
else if (gs_yyn == 0)
goto gs_yyerrlab;
if (gs_yyn == YYFINAL)
YYACCEPT;
YYDPRINTF ((stderr, "Shifting token %d (%s), ",
gs_yychar, gs_yytname[gs_yychar1]));
if (gs_yychar != YYEOF)
gs_yychar = YYEMPTY;
*++gs_yyvsp = gs_yylval;
#if YYLSP_NEEDED
*++gs_yylsp = gs_yylloc;
#endif
if (gs_yyerrstatus)
gs_yyerrstatus--;
gs_yystate = gs_yyn;
goto gs_yynewstate;
gs_yydefault:
gs_yyn = gs_yydefact[gs_yystate];
if (gs_yyn == 0)
goto gs_yyerrlab;
goto gs_yyreduce;
gs_yyreduce:
gs_yylen = gs_yyr2[gs_yyn];
gs_yyval = gs_yyvsp[1-gs_yylen];
#if YYLSP_NEEDED
gs_yyloc = gs_yylsp[1-gs_yylen];
YYLLOC_DEFAULT (gs_yyloc, (gs_yylsp - gs_yylen), gs_yylen);
#endif
#if YYDEBUG
if (gs_yydebug)
{
int gs_yyi;
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
gs_yyn, gs_yyrline[gs_yyn]);
for (gs_yyi = gs_yyprhs[gs_yyn]; gs_yyrhs[gs_yyi] > 0; gs_yyi++)
YYFPRINTF (stderr, "%s ", gs_yytname[gs_yyrhs[gs_yyi]]);
YYFPRINTF (stderr, " -> %s\n", gs_yytname[gs_yyr1[gs_yyn]]);
}
#endif
switch (gs_yyn) {
case 20:
#line 36 "gsgram.ypp"
{gs_abort(IF_ERR_SYNTAX);}
break;
case 22:
#line 42 "gsgram.ypp"
{}
break;
case 23:
#line 45 "gsgram.ypp"
{gs_open_view(gs_yyvsp[-1].str);}
break;
case 24:
#line 48 "gsgram.ypp"
{gs_close_view(gs_yyvsp[0].str);}
break;
case 25:
#line 51 "gsgram.ypp"
{gs_mod_view(gs_yyvsp[-1].str);}
break;
case 26:
#line 54 "gsgram.ypp"
{gs_lock(gs_yyvsp[0].str);}
break;
case 27:
#line 57 "gsgram.ypp"
{gs_unlock(gs_yyvsp[0].str);}
break;
case 28:
#line 60 "gsgram.ypp"
{gs_segue(gs_yyvsp[0].str);}
break;
case 29:
#line 63 "gsgram.ypp"
{ gs_define_pattern(); }
break;
case 30:
#line 66 "gsgram.ypp"
{ gs_define_search(); }
break;
case 31:
#line 69 "gsgram.ypp"
{ gs_define_input(); }
break;
case 32:
#line 72 "gsgram.ypp"
{gs_ins_node(gs_yyvsp[-3].str,gs_yyvsp[-1].str);}
break;
case 33:
#line 75 "gsgram.ypp"
{gs_mod_node(gs_yyvsp[-3].str,gs_yyvsp[-1].str);}
break;
case 34:
#line 78 "gsgram.ypp"
{gs_del_node(gs_yyvsp[-2].str,gs_yyvsp[0].str);}
break;
case 35:
#line 81 "gsgram.ypp"
{gs_ins_edge(gs_yyvsp[-5].str,gs_yyvsp[-3].str,gs_yyvsp[-2].str,gs_yyvsp[-1].str);}
break;
case 36:
#line 84 "gsgram.ypp"
{gs_mod_edge(gs_yyvsp[-3].str,gs_yyvsp[-1].str);}
break;
case 37:
#line 87 "gsgram.ypp"
{gs_del_edge(gs_yyvsp[-2].str,gs_yyvsp[0].str);}
break;
case 38:
#line 90 "gsgram.ypp"
{gs_reset_attrs();}
break;
case 40:
#line 91 "gsgram.ypp"
{gs_reset_attrs();}
break;
case 45:
#line 102 "gsgram.ypp"
{gs_append_attr(gs_yyvsp[-2].str,gs_yyvsp[0].str);}
break;
case 49:
#line 107 "gsgram.ypp"
{gs_yyval.str = gs_yyvsp[0].str; }
break;
}
#line 705 "/usr/share/bison/bison.simple"
gs_yyvsp -= gs_yylen;
gs_yyssp -= gs_yylen;
#if YYLSP_NEEDED
gs_yylsp -= gs_yylen;
#endif
#if YYDEBUG
if (gs_yydebug)
{
short *gs_yyssp1 = gs_yyss - 1;
YYFPRINTF (stderr, "state stack now");
while (gs_yyssp1 != gs_yyssp)
YYFPRINTF (stderr, " %d", *++gs_yyssp1);
YYFPRINTF (stderr, "\n");
}
#endif
*++gs_yyvsp = gs_yyval;
#if YYLSP_NEEDED
*++gs_yylsp = gs_yyloc;
#endif
gs_yyn = gs_yyr1[gs_yyn];
gs_yystate = gs_yypgoto[gs_yyn - YYNTBASE] + *gs_yyssp;
if (gs_yystate >= 0 && gs_yystate <= YYLAST && gs_yycheck[gs_yystate] == *gs_yyssp)
gs_yystate = gs_yytable[gs_yystate];
else
gs_yystate = gs_yydefgoto[gs_yyn - YYNTBASE];
goto gs_yynewstate;
gs_yyerrlab:
if (!gs_yyerrstatus)
{
++gs_yynerrs;
#ifdef YYERROR_VERBOSE
gs_yyn = gs_yypact[gs_yystate];
if (gs_yyn > YYFLAG && gs_yyn < YYLAST)
{
YYSIZE_T gs_yysize = 0;
char *gs_yymsg;
int gs_yyx, gs_yycount;
gs_yycount = 0;
for (gs_yyx = gs_yyn < 0 ? -gs_yyn : 0;
gs_yyx < (int) (sizeof (gs_yytname) / sizeof (char *)); gs_yyx++)
if (gs_yycheck[gs_yyx + gs_yyn] == gs_yyx)
gs_yysize += gs_yystrlen (gs_yytname[gs_yyx]) + 15, gs_yycount++;
gs_yysize += gs_yystrlen ("parse error, unexpected ") + 1;
gs_yysize += gs_yystrlen (gs_yytname[YYTRANSLATE (gs_yychar)]);
gs_yymsg = (char *) YYSTACK_ALLOC (gs_yysize);
if (gs_yymsg != 0)
{
char *gs_yyp = gs_yystpcpy (gs_yymsg, "parse error, unexpected ");
gs_yyp = gs_yystpcpy (gs_yyp, gs_yytname[YYTRANSLATE (gs_yychar)]);
if (gs_yycount < 5)
{
gs_yycount = 0;
for (gs_yyx = gs_yyn < 0 ? -gs_yyn : 0;
gs_yyx < (int) (sizeof (gs_yytname) / sizeof (char *));
gs_yyx++)
if (gs_yycheck[gs_yyx + gs_yyn] == gs_yyx)
{
const char *gs_yyq = ! gs_yycount ? ", expecting " : " or ";
gs_yyp = gs_yystpcpy (gs_yyp, gs_yyq);
gs_yyp = gs_yystpcpy (gs_yyp, gs_yytname[gs_yyx]);
gs_yycount++;
}
}
gs_yyerror (gs_yymsg);
YYSTACK_FREE (gs_yymsg);
}
else
gs_yyerror ("parse error; also virtual memory exhausted");
}
else
#endif
gs_yyerror ("parse error");
}
goto gs_yyerrlab1;
gs_yyerrlab1:
if (gs_yyerrstatus == 3)
{
if (gs_yychar == YYEOF)
YYABORT;
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
gs_yychar, gs_yytname[gs_yychar1]));
gs_yychar = YYEMPTY;
}
gs_yyerrstatus = 3;
goto gs_yyerrhandle;
gs_yyerrdefault:
#if 0
gs_yyn = gs_yydefact[gs_yystate];
if (gs_yyn)
goto gs_yydefault;
#endif
gs_yyerrpop:
if (gs_yyssp == gs_yyss)
YYABORT;
gs_yyvsp--;
gs_yystate = *--gs_yyssp;
#if YYLSP_NEEDED
gs_yylsp--;
#endif
#if YYDEBUG
if (gs_yydebug)
{
short *gs_yyssp1 = gs_yyss - 1;
YYFPRINTF (stderr, "Error: state stack now");
while (gs_yyssp1 != gs_yyssp)
YYFPRINTF (stderr, " %d", *++gs_yyssp1);
YYFPRINTF (stderr, "\n");
}
#endif
gs_yyerrhandle:
gs_yyn = gs_yypact[gs_yystate];
if (gs_yyn == YYFLAG)
goto gs_yyerrdefault;
gs_yyn += YYTERROR;
if (gs_yyn < 0 || gs_yyn > YYLAST || gs_yycheck[gs_yyn] != YYTERROR)
goto gs_yyerrdefault;
gs_yyn = gs_yytable[gs_yyn];
if (gs_yyn < 0)
{
if (gs_yyn == YYFLAG)
goto gs_yyerrpop;
gs_yyn = -gs_yyn;
goto gs_yyreduce;
}
else if (gs_yyn == 0)
goto gs_yyerrpop;
if (gs_yyn == YYFINAL)
YYACCEPT;
YYDPRINTF ((stderr, "Shifting error token, "));
*++gs_yyvsp = gs_yylval;
#if YYLSP_NEEDED
*++gs_yylsp = gs_yylloc;
#endif
gs_yystate = gs_yyn;
goto gs_yynewstate;
gs_yyacceptlab:
gs_yyresult = 0;
goto gs_yyreturn;
gs_yyabortlab:
gs_yyresult = 1;
goto gs_yyreturn;
gs_yyoverflowlab:
gs_yyerror ("parser stack overflow");
gs_yyresult = 2;
gs_yyreturn:
#ifndef gs_yyoverflow
if (gs_yyss != gs_yyssa)
YYSTACK_FREE (gs_yyss);
#endif
return gs_yyresult;
}
#line 109 "gsgram.ypp"