~ubuntu-branches/ubuntu/intrepid/tcm/intrepid

« back to all changes in this revision

Viewing changes to src/sd/bv/adsedgelabelevaluation.tab.c

  • Committer: Bazaar Package Importer
  • Author(s): Otavio Salvador
  • Date: 2003-07-03 20:08:21 UTC
  • Revision ID: james.westby@ubuntu.com-20030703200821-se4xtqx25e5miczi
Tags: upstream-2.20
ImportĀ upstreamĀ versionĀ 2.20

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/*  A Bison parser, made from adsedgelabelevaluation.y
 
3
    by GNU Bison version 1.28  */
 
4
 
 
5
#define YYBISON 1  /* Identify Bison output.  */
 
6
 
 
7
#define yyparse adsedgelabelevaluationparse
 
8
#define yylex adsedgelabelevaluationlex
 
9
#define yyerror adsedgelabelevaluationerror
 
10
#define yylval adsedgelabelevaluationlval
 
11
#define yychar adsedgelabelevaluationchar
 
12
#define yydebug adsedgelabelevaluationdebug
 
13
#define yynerrs adsedgelabelevaluationnerrs
 
14
#define QUOTE   257
 
15
#define OPEN    258
 
16
#define CLOSE   259
 
17
#define OPENB   260
 
18
#define CLOSEB  261
 
19
#define NL      262
 
20
#define INTEGER 263
 
21
#define IDENTIFIER      264
 
22
#define TRUE    265
 
23
#define LEQ     266
 
24
#define GEQ     267
 
25
#define EQ      268
 
26
#define NEQ     269
 
27
#define GT      270
 
28
#define LT      271
 
29
#define MINUS   272
 
30
#define PLUS    273
 
31
#define OR      274
 
32
#define TIMES   275
 
33
#define DIV     276
 
34
#define AND     277
 
35
#define NEG     278
 
36
#define NOT     279
 
37
#define IN      280
 
38
 
 
39
#line 1 "adsedgelabelevaluation.y"
 
40
 
 
41
#include "adsedgelabelevaluationparse.h"
 
42
#include <math.h>
 
43
#include <string.h>
 
44
#include <stdio.h>
 
45
#include <stdlib.h>
 
46
 
 
47
#define YYERROR_VERBOSE 
 
48
 
 
49
  int proptype[200];  /* should be initialised by caller */
 
50
  char *propname[200];/* should be initialised by caller */
 
51
  int boollist[200];/* should be initialised by caller */
 
52
  int count;/* should be initialised by caller */
 
53
  int isin; /* true if IN predicate is part of label */
 
54
 
 
55
  int outcome; /* result */
 
56
 
 
57
 
 
58
int isintexp,isstrexp;
 
59
 
 
60
char temp[100];
 
61
 
 
62
int GetBool(char *s, int t){
 
63
  int i=0;
 
64
  while (i<count){
 
65
    if ((!strcmp(propname[i],s))&& (proptype[i]==t)) return boollist[i];
 
66
    i++;
 
67
  }
 
68
  return -1;
 
69
}
 
70
 
 
71
 
 
72
 
 
73
#line 34 "adsedgelabelevaluation.y"
 
74
typedef union{
 
75
  int i;
 
76
  char *str;
 
77
} YYSTYPE;
 
78
#ifndef YYDEBUG
 
79
#define YYDEBUG 1
 
80
#endif
 
81
 
 
82
#include <stdio.h>
 
83
 
 
84
#ifndef __cplusplus
 
85
#ifndef __STDC__
 
86
#define const
 
87
#endif
 
88
#endif
 
89
 
 
90
 
 
91
 
 
92
#define YYFINAL         44
 
93
#define YYFLAG          -32768
 
94
#define YYNTBASE        28
 
95
 
 
96
#define YYTRANSLATE(x) ((unsigned)(x) <= 280 ? yytranslate[x] : 42)
 
97
 
 
98
static const char yytranslate[] = {     0,
 
99
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
100
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
101
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
102
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
103
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
104
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
105
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
106
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
107
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
108
     2,     2,     2,    27,     2,     2,     2,     2,     2,     2,
 
109
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
110
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
111
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
112
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
113
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
114
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
115
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
116
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
117
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
118
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
119
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
120
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
121
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
122
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
123
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
124
     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
 
125
     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
 
126
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26
 
127
};
 
128
 
 
129
#if YYDEBUG != 0
 
130
static const short yyprhs[] = {     0,
 
131
     0,     2,     6,     7,     9,    10,    14,    16,    18,    22,
 
132
    24,    28,    30,    33,    37,    42,    44,    45,    49,    50,
 
133
    53,    56,    58,    60,    62,    64,    66,    68,    70,    72,
 
134
    73
 
135
};
 
136
 
 
137
static const short yyrhs[] = {    29,
 
138
     0,    30,    31,    41,     0,     0,    10,     0,     0,     6,
 
139
    32,     7,     0,    33,     0,    34,     0,    33,    20,    34,
 
140
     0,    35,     0,    34,    23,    35,     0,    36,     0,    25,
 
141
    35,     0,     4,    32,     5,     0,    26,     4,    10,     5,
 
142
     0,    11,     0,     0,    10,    37,    38,     0,     0,    39,
 
143
     9,     0,    40,     3,     0,    14,     0,    15,     0,    16,
 
144
     0,    17,     0,    13,     0,    12,     0,    14,     0,    15,
 
145
     0,     0,    22,    10,     0
 
146
};
 
147
 
 
148
#endif
 
149
 
 
150
#if YYDEBUG != 0
 
151
static const short yyrline[] = { 0,
 
152
    49,    52,    58,    59,    71,    72,    76,    87,    88,    96,
 
153
    97,   105,   106,   107,   108,   111,   112,   116,   142,   143,
 
154
   145,   149,   150,   151,   152,   153,   154,   159,   160,   166,
 
155
   167
 
156
};
 
157
#endif
 
158
 
 
159
 
 
160
#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
 
161
 
 
162
static const char * const yytname[] = {   "$","error","$undefined.","QUOTE",
 
163
"OPEN","CLOSE","OPENB","CLOSEB","NL","INTEGER","IDENTIFIER","TRUE","LEQ","GEQ",
 
164
"EQ","NEQ","GT","LT","MINUS","PLUS","OR","TIMES","DIV","AND","NEG","NOT","IN",
 
165
"'^'","input","line","event","guard","pexp","orexp","andexp","literal","atomic",
 
166
"@1","isexp","irel","srel","action", NULL
 
167
};
 
168
#endif
 
169
 
 
170
static const short yyr1[] = {     0,
 
171
    28,    29,    30,    30,    31,    31,    32,    33,    33,    34,
 
172
    34,    35,    35,    35,    35,    36,    37,    36,    38,    38,
 
173
    38,    39,    39,    39,    39,    39,    39,    40,    40,    41,
 
174
    41
 
175
};
 
176
 
 
177
static const short yyr2[] = {     0,
 
178
     1,     3,     0,     1,     0,     3,     1,     1,     3,     1,
 
179
     3,     1,     2,     3,     4,     1,     0,     3,     0,     2,
 
180
     2,     1,     1,     1,     1,     1,     1,     1,     1,     0,
 
181
     2
 
182
};
 
183
 
 
184
static const short yydefact[] = {     3,
 
185
     4,     1,     5,     0,    30,     0,    17,    16,     0,     0,
 
186
     0,     7,     8,    10,    12,     0,     2,     0,    19,    13,
 
187
     0,     6,     0,     0,    31,    14,    27,    26,    22,    23,
 
188
    24,    25,    18,     0,     0,     0,     9,    11,    20,    21,
 
189
    15,     0,     0,     0
 
190
};
 
191
 
 
192
static const short yydefgoto[] = {    42,
 
193
     2,     3,     5,    11,    12,    13,    14,    15,    19,    33,
 
194
    34,    35,    17
 
195
};
 
196
 
 
197
static const short yypact[] = {    -7,
 
198
-32768,-32768,    -2,    -4,   -20,    -4,-32768,-32768,    -4,     1,
 
199
     8,   -12,    -6,-32768,-32768,     9,-32768,    13,    -3,-32768,
 
200
    10,-32768,    -4,    -4,-32768,-32768,-32768,-32768,    20,    21,
 
201
-32768,-32768,-32768,    16,    23,    22,    -6,-32768,-32768,-32768,
 
202
-32768,    28,    29,-32768
 
203
};
 
204
 
 
205
static const short yypgoto[] = {-32768,
 
206
-32768,-32768,-32768,    24,-32768,    11,    -8,-32768,-32768,-32768,
 
207
-32768,-32768,-32768
 
208
};
 
209
 
 
210
 
 
211
#define YYLAST          34
 
212
 
 
213
 
 
214
static const short yytable[] = {     6,
 
215
    20,    16,     1,     4,    21,     7,     8,    23,    27,    28,
 
216
    29,    30,    31,    32,    22,    38,    24,    26,    25,    36,
 
217
     9,    10,   -28,   -29,    39,    40,    41,    43,    44,    18,
 
218
     0,     0,     0,    37
 
219
};
 
220
 
 
221
static const short yycheck[] = {     4,
 
222
     9,    22,    10,     6,     4,    10,    11,    20,    12,    13,
 
223
    14,    15,    16,    17,     7,    24,    23,     5,    10,    10,
 
224
    25,    26,     3,     3,     9,     3,     5,     0,     0,     6,
 
225
    -1,    -1,    -1,    23
 
226
};
 
227
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 
228
#line 3 "/usr/lib/bison.simple"
 
229
/* This file comes from bison-1.28.  */
 
230
 
 
231
/* Skeleton output parser for bison,
 
232
   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
 
233
 
 
234
   This program is free software; you can redistribute it and/or modify
 
235
   it under the terms of the GNU General Public License as published by
 
236
   the Free Software Foundation; either version 2, or (at your option)
 
237
   any later version.
 
238
 
 
239
   This program is distributed in the hope that it will be useful,
 
240
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
241
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
242
   GNU General Public License for more details.
 
243
 
 
244
   You should have received a copy of the GNU General Public License
 
245
   along with this program; if not, write to the Free Software
 
246
   Foundation, Inc., 59 Temple Place - Suite 330,
 
247
   Boston, MA 02111-1307, USA.  */
 
248
 
 
249
/* As a special exception, when this file is copied by Bison into a
 
250
   Bison output file, you may use that output file without restriction.
 
251
   This special exception was added by the Free Software Foundation
 
252
   in version 1.24 of Bison.  */
 
253
 
 
254
/* This is the parser code that is written into each bison parser
 
255
  when the %semantic_parser declaration is not specified in the grammar.
 
256
  It was written by Richard Stallman by simplifying the hairy parser
 
257
  used when %semantic_parser is specified.  */
 
258
 
 
259
#ifndef YYSTACK_USE_ALLOCA
 
260
#ifdef alloca
 
261
#define YYSTACK_USE_ALLOCA
 
262
#else /* alloca not defined */
 
263
#ifdef __GNUC__
 
264
#define YYSTACK_USE_ALLOCA
 
265
#define alloca __builtin_alloca
 
266
#else /* not GNU C.  */
 
267
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
 
268
#define YYSTACK_USE_ALLOCA
 
269
#include <alloca.h>
 
270
#else /* not sparc */
 
271
/* We think this test detects Watcom and Microsoft C.  */
 
272
/* This used to test MSDOS, but that is a bad idea
 
273
   since that symbol is in the user namespace.  */
 
274
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
 
275
#if 0 /* No need for malloc.h, which pollutes the namespace;
 
276
         instead, just don't use alloca.  */
 
277
#include <malloc.h>
 
278
#endif
 
279
#else /* not MSDOS, or __TURBOC__ */
 
280
#if defined(_AIX)
 
281
/* I don't know what this was needed for, but it pollutes the namespace.
 
282
   So I turned it off.   rms, 2 May 1997.  */
 
283
/* #include <malloc.h>  */
 
284
 #pragma alloca
 
285
#define YYSTACK_USE_ALLOCA
 
286
#else /* not MSDOS, or __TURBOC__, or _AIX */
 
287
#if 0
 
288
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
 
289
                 and on HPUX 10.  Eventually we can turn this on.  */
 
290
#define YYSTACK_USE_ALLOCA
 
291
#define alloca __builtin_alloca
 
292
#endif /* __hpux */
 
293
#endif
 
294
#endif /* not _AIX */
 
295
#endif /* not MSDOS, or __TURBOC__ */
 
296
#endif /* not sparc */
 
297
#endif /* not GNU C */
 
298
#endif /* alloca not defined */
 
299
#endif /* YYSTACK_USE_ALLOCA not defined */
 
300
 
 
301
#ifdef YYSTACK_USE_ALLOCA
 
302
#define YYSTACK_ALLOC alloca
 
303
#else
 
304
#define YYSTACK_ALLOC malloc
 
305
#endif
 
306
 
 
307
/* Note: there must be only one dollar sign in this file.
 
308
   It is replaced by the list of actions, each action
 
309
   as one case of the switch.  */
 
310
 
 
311
#define yyerrok         (yyerrstatus = 0)
 
312
#define yyclearin       (yychar = YYEMPTY)
 
313
#define YYEMPTY         -2
 
314
#define YYEOF           0
 
315
#define YYACCEPT        goto yyacceptlab
 
316
#define YYABORT         goto yyabortlab
 
317
#define YYERROR         goto yyerrlab1
 
318
/* Like YYERROR except do call yyerror.
 
319
   This remains here temporarily to ease the
 
320
   transition to the new meaning of YYERROR, for GCC.
 
321
   Once GCC version 2 has supplanted version 1, this can go.  */
 
322
#define YYFAIL          goto yyerrlab
 
323
#define YYRECOVERING()  (!!yyerrstatus)
 
324
#define YYBACKUP(token, value) \
 
325
do                                                              \
 
326
  if (yychar == YYEMPTY && yylen == 1)                          \
 
327
    { yychar = (token), yylval = (value);                       \
 
328
      yychar1 = YYTRANSLATE (yychar);                           \
 
329
      YYPOPSTACK;                                               \
 
330
      goto yybackup;                                            \
 
331
    }                                                           \
 
332
  else                                                          \
 
333
    { yyerror ("syntax error: cannot back up"); YYERROR; }      \
 
334
while (0)
 
335
 
 
336
#define YYTERROR        1
 
337
#define YYERRCODE       256
 
338
 
 
339
#ifndef YYPURE
 
340
#define YYLEX           yylex()
 
341
#endif
 
342
 
 
343
#ifdef YYPURE
 
344
#ifdef YYLSP_NEEDED
 
345
#ifdef YYLEX_PARAM
 
346
#define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
 
347
#else
 
348
#define YYLEX           yylex(&yylval, &yylloc)
 
349
#endif
 
350
#else /* not YYLSP_NEEDED */
 
351
#ifdef YYLEX_PARAM
 
352
#define YYLEX           yylex(&yylval, YYLEX_PARAM)
 
353
#else
 
354
#define YYLEX           yylex(&yylval)
 
355
#endif
 
356
#endif /* not YYLSP_NEEDED */
 
357
#endif
 
358
 
 
359
/* If nonreentrant, generate the variables here */
 
360
 
 
361
#ifndef YYPURE
 
362
 
 
363
int     yychar;                 /*  the lookahead symbol                */
 
364
YYSTYPE yylval;                 /*  the semantic value of the           */
 
365
                                /*  lookahead symbol                    */
 
366
 
 
367
#ifdef YYLSP_NEEDED
 
368
YYLTYPE yylloc;                 /*  location data for the lookahead     */
 
369
                                /*  symbol                              */
 
370
#endif
 
371
 
 
372
int yynerrs;                    /*  number of parse errors so far       */
 
373
#endif  /* not YYPURE */
 
374
 
 
375
#if YYDEBUG != 0
 
376
int yydebug;                    /*  nonzero means print parse trace     */
 
377
/* Since this is uninitialized, it does not stop multiple parsers
 
378
   from coexisting.  */
 
379
#endif
 
380
 
 
381
/*  YYINITDEPTH indicates the initial size of the parser's stacks       */
 
382
 
 
383
#ifndef YYINITDEPTH
 
384
#define YYINITDEPTH 200
 
385
#endif
 
386
 
 
387
/*  YYMAXDEPTH is the maximum size the stacks can grow to
 
388
    (effective only if the built-in stack extension method is used).  */
 
389
 
 
390
#if YYMAXDEPTH == 0
 
391
#undef YYMAXDEPTH
 
392
#endif
 
393
 
 
394
#ifndef YYMAXDEPTH
 
395
#define YYMAXDEPTH 10000
 
396
#endif
 
397
 
 
398
/* Define __yy_memcpy.  Note that the size argument
 
399
   should be passed with type unsigned int, because that is what the non-GCC
 
400
   definitions require.  With GCC, __builtin_memcpy takes an arg
 
401
   of type size_t, but it can handle unsigned int.  */
 
402
 
 
403
#if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
 
404
#define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
 
405
#else                           /* not GNU C or C++ */
 
406
#ifndef __cplusplus
 
407
 
 
408
/* This is the most reliable way to avoid incompatibilities
 
409
   in available built-in functions on various systems.  */
 
410
static void
 
411
__yy_memcpy (to, from, count)
 
412
     char *to;
 
413
     char *from;
 
414
     unsigned int count;
 
415
{
 
416
  register char *f = from;
 
417
  register char *t = to;
 
418
  register int i = count;
 
419
 
 
420
  while (i-- > 0)
 
421
    *t++ = *f++;
 
422
}
 
423
 
 
424
#else /* __cplusplus */
 
425
 
 
426
/* This is the most reliable way to avoid incompatibilities
 
427
   in available built-in functions on various systems.  */
 
428
static void
 
429
__yy_memcpy (char *to, char *from, unsigned int count)
 
430
{
 
431
  register char *t = to;
 
432
  register char *f = from;
 
433
  register int i = count;
 
434
 
 
435
  while (i-- > 0)
 
436
    *t++ = *f++;
 
437
}
 
438
 
 
439
#endif
 
440
#endif
 
441
 
 
442
#line 217 "/usr/lib/bison.simple"
 
443
 
 
444
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
 
445
   into yyparse.  The argument should have type void *.
 
446
   It should actually point to an object.
 
447
   Grammar actions can access the variable by casting it
 
448
   to the proper pointer type.  */
 
449
 
 
450
#ifdef YYPARSE_PARAM
 
451
#ifdef __cplusplus
 
452
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
 
453
#define YYPARSE_PARAM_DECL
 
454
#else /* not __cplusplus */
 
455
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
 
456
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
 
457
#endif /* not __cplusplus */
 
458
#else /* not YYPARSE_PARAM */
 
459
#define YYPARSE_PARAM_ARG
 
460
#define YYPARSE_PARAM_DECL
 
461
#endif /* not YYPARSE_PARAM */
 
462
 
 
463
/* Prevent warning if -Wstrict-prototypes.  */
 
464
#ifdef __GNUC__
 
465
#ifdef YYPARSE_PARAM
 
466
int yyparse (void *);
 
467
#else
 
468
int yyparse (void);
 
469
#endif
 
470
#endif
 
471
 
 
472
int
 
473
yyparse(YYPARSE_PARAM_ARG)
 
474
     YYPARSE_PARAM_DECL
 
475
{
 
476
  register int yystate;
 
477
  register int yyn;
 
478
  register short *yyssp;
 
479
  register YYSTYPE *yyvsp;
 
480
  int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
 
481
  int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
 
482
 
 
483
  short yyssa[YYINITDEPTH];     /*  the state stack                     */
 
484
  YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
 
485
 
 
486
  short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
 
487
  YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
 
488
 
 
489
#ifdef YYLSP_NEEDED
 
490
  YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
 
491
  YYLTYPE *yyls = yylsa;
 
492
  YYLTYPE *yylsp;
 
493
 
 
494
#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
 
495
#else
 
496
#define YYPOPSTACK   (yyvsp--, yyssp--)
 
497
#endif
 
498
 
 
499
  int yystacksize = YYINITDEPTH;
 
500
  int yyfree_stacks = 0;
 
501
 
 
502
#ifdef YYPURE
 
503
  int yychar;
 
504
  YYSTYPE yylval;
 
505
  int yynerrs;
 
506
#ifdef YYLSP_NEEDED
 
507
  YYLTYPE yylloc;
 
508
#endif
 
509
#endif
 
510
 
 
511
  YYSTYPE yyval;                /*  the variable used to return         */
 
512
                                /*  semantic values from the action     */
 
513
                                /*  routines                            */
 
514
 
 
515
  int yylen;
 
516
 
 
517
#if YYDEBUG != 0
 
518
  if (yydebug)
 
519
    fprintf(stderr, "Starting parse\n");
 
520
#endif
 
521
 
 
522
  yystate = 0;
 
523
  yyerrstatus = 0;
 
524
  yynerrs = 0;
 
525
  yychar = YYEMPTY;             /* Cause a token to be read.  */
 
526
 
 
527
  /* Initialize stack pointers.
 
528
     Waste one element of value and location stack
 
529
     so that they stay on the same level as the state stack.
 
530
     The wasted elements are never initialized.  */
 
531
 
 
532
  yyssp = yyss - 1;
 
533
  yyvsp = yyvs;
 
534
#ifdef YYLSP_NEEDED
 
535
  yylsp = yyls;
 
536
#endif
 
537
 
 
538
/* Push a new state, which is found in  yystate  .  */
 
539
/* In all cases, when you get here, the value and location stacks
 
540
   have just been pushed. so pushing a state here evens the stacks.  */
 
541
yynewstate:
 
542
 
 
543
  *++yyssp = yystate;
 
544
 
 
545
  if (yyssp >= yyss + yystacksize - 1)
 
546
    {
 
547
      /* Give user a chance to reallocate the stack */
 
548
      /* Use copies of these so that the &'s don't force the real ones into memory. */
 
549
      YYSTYPE *yyvs1 = yyvs;
 
550
      short *yyss1 = yyss;
 
551
#ifdef YYLSP_NEEDED
 
552
      YYLTYPE *yyls1 = yyls;
 
553
#endif
 
554
 
 
555
      /* Get the current used size of the three stacks, in elements.  */
 
556
      int size = yyssp - yyss + 1;
 
557
 
 
558
#ifdef yyoverflow
 
559
      /* Each stack pointer address is followed by the size of
 
560
         the data in use in that stack, in bytes.  */
 
561
#ifdef YYLSP_NEEDED
 
562
      /* This used to be a conditional around just the two extra args,
 
563
         but that might be undefined if yyoverflow is a macro.  */
 
564
      yyoverflow("parser stack overflow",
 
565
                 &yyss1, size * sizeof (*yyssp),
 
566
                 &yyvs1, size * sizeof (*yyvsp),
 
567
                 &yyls1, size * sizeof (*yylsp),
 
568
                 &yystacksize);
 
569
#else
 
570
      yyoverflow("parser stack overflow",
 
571
                 &yyss1, size * sizeof (*yyssp),
 
572
                 &yyvs1, size * sizeof (*yyvsp),
 
573
                 &yystacksize);
 
574
#endif
 
575
 
 
576
      yyss = yyss1; yyvs = yyvs1;
 
577
#ifdef YYLSP_NEEDED
 
578
      yyls = yyls1;
 
579
#endif
 
580
#else /* no yyoverflow */
 
581
      /* Extend the stack our own way.  */
 
582
      if (yystacksize >= YYMAXDEPTH)
 
583
        {
 
584
          yyerror("parser stack overflow");
 
585
          if (yyfree_stacks)
 
586
            {
 
587
              free (yyss);
 
588
              free (yyvs);
 
589
#ifdef YYLSP_NEEDED
 
590
              free (yyls);
 
591
#endif
 
592
            }
 
593
          return 2;
 
594
        }
 
595
      yystacksize *= 2;
 
596
      if (yystacksize > YYMAXDEPTH)
 
597
        yystacksize = YYMAXDEPTH;
 
598
#ifndef YYSTACK_USE_ALLOCA
 
599
      yyfree_stacks = 1;
 
600
#endif
 
601
      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
 
602
      __yy_memcpy ((char *)yyss, (char *)yyss1,
 
603
                   size * (unsigned int) sizeof (*yyssp));
 
604
      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
 
605
      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
 
606
                   size * (unsigned int) sizeof (*yyvsp));
 
607
#ifdef YYLSP_NEEDED
 
608
      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
 
609
      __yy_memcpy ((char *)yyls, (char *)yyls1,
 
610
                   size * (unsigned int) sizeof (*yylsp));
 
611
#endif
 
612
#endif /* no yyoverflow */
 
613
 
 
614
      yyssp = yyss + size - 1;
 
615
      yyvsp = yyvs + size - 1;
 
616
#ifdef YYLSP_NEEDED
 
617
      yylsp = yyls + size - 1;
 
618
#endif
 
619
 
 
620
#if YYDEBUG != 0
 
621
      if (yydebug)
 
622
        fprintf(stderr, "Stack size increased to %d\n", yystacksize);
 
623
#endif
 
624
 
 
625
      if (yyssp >= yyss + yystacksize - 1)
 
626
        YYABORT;
 
627
    }
 
628
 
 
629
#if YYDEBUG != 0
 
630
  if (yydebug)
 
631
    fprintf(stderr, "Entering state %d\n", yystate);
 
632
#endif
 
633
 
 
634
  goto yybackup;
 
635
 yybackup:
 
636
 
 
637
/* Do appropriate processing given the current state.  */
 
638
/* Read a lookahead token if we need one and don't already have one.  */
 
639
/* yyresume: */
 
640
 
 
641
  /* First try to decide what to do without reference to lookahead token.  */
 
642
 
 
643
  yyn = yypact[yystate];
 
644
  if (yyn == YYFLAG)
 
645
    goto yydefault;
 
646
 
 
647
  /* Not known => get a lookahead token if don't already have one.  */
 
648
 
 
649
  /* yychar is either YYEMPTY or YYEOF
 
650
     or a valid token in external form.  */
 
651
 
 
652
  if (yychar == YYEMPTY)
 
653
    {
 
654
#if YYDEBUG != 0
 
655
      if (yydebug)
 
656
        fprintf(stderr, "Reading a token: ");
 
657
#endif
 
658
      yychar = YYLEX;
 
659
    }
 
660
 
 
661
  /* Convert token to internal form (in yychar1) for indexing tables with */
 
662
 
 
663
  if (yychar <= 0)              /* This means end of input. */
 
664
    {
 
665
      yychar1 = 0;
 
666
      yychar = YYEOF;           /* Don't call YYLEX any more */
 
667
 
 
668
#if YYDEBUG != 0
 
669
      if (yydebug)
 
670
        fprintf(stderr, "Now at end of input.\n");
 
671
#endif
 
672
    }
 
673
  else
 
674
    {
 
675
      yychar1 = YYTRANSLATE(yychar);
 
676
 
 
677
#if YYDEBUG != 0
 
678
      if (yydebug)
 
679
        {
 
680
          fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
 
681
          /* Give the individual parser a way to print the precise meaning
 
682
             of a token, for further debugging info.  */
 
683
#ifdef YYPRINT
 
684
          YYPRINT (stderr, yychar, yylval);
 
685
#endif
 
686
          fprintf (stderr, ")\n");
 
687
        }
 
688
#endif
 
689
    }
 
690
 
 
691
  yyn += yychar1;
 
692
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
 
693
    goto yydefault;
 
694
 
 
695
  yyn = yytable[yyn];
 
696
 
 
697
  /* yyn is what to do for this token type in this state.
 
698
     Negative => reduce, -yyn is rule number.
 
699
     Positive => shift, yyn is new state.
 
700
       New state is final state => don't bother to shift,
 
701
       just return success.
 
702
     0, or most negative number => error.  */
 
703
 
 
704
  if (yyn < 0)
 
705
    {
 
706
      if (yyn == YYFLAG)
 
707
        goto yyerrlab;
 
708
      yyn = -yyn;
 
709
      goto yyreduce;
 
710
    }
 
711
  else if (yyn == 0)
 
712
    goto yyerrlab;
 
713
 
 
714
  if (yyn == YYFINAL)
 
715
    YYACCEPT;
 
716
 
 
717
  /* Shift the lookahead token.  */
 
718
 
 
719
#if YYDEBUG != 0
 
720
  if (yydebug)
 
721
    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
 
722
#endif
 
723
 
 
724
  /* Discard the token being shifted unless it is eof.  */
 
725
  if (yychar != YYEOF)
 
726
    yychar = YYEMPTY;
 
727
 
 
728
  *++yyvsp = yylval;
 
729
#ifdef YYLSP_NEEDED
 
730
  *++yylsp = yylloc;
 
731
#endif
 
732
 
 
733
  /* count tokens shifted since error; after three, turn off error status.  */
 
734
  if (yyerrstatus) yyerrstatus--;
 
735
 
 
736
  yystate = yyn;
 
737
  goto yynewstate;
 
738
 
 
739
/* Do the default action for the current state.  */
 
740
yydefault:
 
741
 
 
742
  yyn = yydefact[yystate];
 
743
  if (yyn == 0)
 
744
    goto yyerrlab;
 
745
 
 
746
/* Do a reduction.  yyn is the number of a rule to reduce with.  */
 
747
yyreduce:
 
748
  yylen = yyr2[yyn];
 
749
  if (yylen > 0)
 
750
    yyval = yyvsp[1-yylen]; /* implement default value of the action */
 
751
 
 
752
#if YYDEBUG != 0
 
753
  if (yydebug)
 
754
    {
 
755
      int i;
 
756
 
 
757
      fprintf (stderr, "Reducing via rule %d (line %d), ",
 
758
               yyn, yyrline[yyn]);
 
759
 
 
760
      /* Print the symbols being reduced, and their result.  */
 
761
      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
 
762
        fprintf (stderr, "%s ", yytname[yyrhs[i]]);
 
763
      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
 
764
    }
 
765
#endif
 
766
 
 
767
 
 
768
  switch (yyn) {
 
769
 
 
770
case 2:
 
771
#line 52 "adsedgelabelevaluation.y"
 
772
{if (yyvsp[-2].i>=0 && yyvsp[-1].i>=0) outcome= (yyvsp[-2].i) && (yyvsp[-1].i); else outcome=0;  ;
 
773
    break;}
 
774
case 3:
 
775
#line 58 "adsedgelabelevaluation.y"
 
776
{yyval.i=1;;
 
777
    break;}
 
778
case 4:
 
779
#line 59 "adsedgelabelevaluation.y"
 
780
{     
 
781
                       int b;
 
782
                       b=GetBool(yyvsp[0].str,EVENT);
 
783
                       if (b>=0) yyval.i=b; 
 
784
                       else {
 
785
                         b=GetBool(yyvsp[0].str,SENDEVENT);
 
786
                         if (b>=0) yyval.i=b; else yyval.i=-1;                
 
787
                       }
 
788
                ;
 
789
    break;}
 
790
case 5:
 
791
#line 71 "adsedgelabelevaluation.y"
 
792
{yyval.i=1;;
 
793
    break;}
 
794
case 6:
 
795
#line 72 "adsedgelabelevaluation.y"
 
796
{if (yyvsp[-1].i >=0) yyval.i=yyvsp[-1].i;else yyval.i=1;;
 
797
    break;}
 
798
case 7:
 
799
#line 76 "adsedgelabelevaluation.y"
 
800
{yyval.i=yyvsp[0].i;;
 
801
    break;}
 
802
case 8:
 
803
#line 87 "adsedgelabelevaluation.y"
 
804
{yyval.i=yyvsp[0].i;;
 
805
    break;}
 
806
case 9:
 
807
#line 89 "adsedgelabelevaluation.y"
 
808
{ if ((yyvsp[0].i >= 0) && (yyvsp[-2].i>=0)) yyval.i=(yyvsp[0].i || yyvsp[-2].i);
 
809
                           if ((yyvsp[0].i < 0)  && (yyvsp[-2].i>=0)) yyval.i=(yyvsp[-2].i);
 
810
                           if ((yyvsp[0].i >= 0) && (yyvsp[-2].i < 0)) yyval.i=(yyvsp[0].i);
 
811
                           if ((yyvsp[0].i < 0)   && (yyvsp[-2].i < 0)) yyval.i=-1;
 
812
                         ;
 
813
    break;}
 
814
case 10:
 
815
#line 96 "adsedgelabelevaluation.y"
 
816
{yyval.i=yyvsp[0].i;;
 
817
    break;}
 
818
case 11:
 
819
#line 98 "adsedgelabelevaluation.y"
 
820
{ if ((yyvsp[0].i >= 0) && (yyvsp[-2].i>=0)) yyval.i=(yyvsp[0].i && yyvsp[-2].i);
 
821
                           if ((yyvsp[0].i < 0)  && (yyvsp[-2].i>=0)) yyval.i=(yyvsp[-2].i);
 
822
                           if ((yyvsp[0].i >= 0) && (yyvsp[-2].i < 0)) yyval.i=(yyvsp[0].i);
 
823
                           if ((yyvsp[0].i < 0)   && (yyvsp[-2].i < 0)) yyval.i=-1;
 
824
                         ;
 
825
    break;}
 
826
case 12:
 
827
#line 105 "adsedgelabelevaluation.y"
 
828
{if (yyvsp[0].i>=0) yyval.i=yyvsp[0].i;else yyval.i=-1;;
 
829
    break;}
 
830
case 13:
 
831
#line 106 "adsedgelabelevaluation.y"
 
832
{if (yyvsp[0].i>=0) yyval.i=(!yyvsp[0].i);else yyval.i=-1;if (isin) yyval.i=1;;
 
833
    break;}
 
834
case 14:
 
835
#line 107 "adsedgelabelevaluation.y"
 
836
{yyval.i=yyvsp[-1].i;;
 
837
    break;}
 
838
case 15:
 
839
#line 108 "adsedgelabelevaluation.y"
 
840
{yyval.i=1;isin=1; /* IN clause checked elsewhere */;
 
841
    break;}
 
842
case 16:
 
843
#line 111 "adsedgelabelevaluation.y"
 
844
{yyval.i=1;;
 
845
    break;}
 
846
case 17:
 
847
#line 112 "adsedgelabelevaluation.y"
 
848
{  
 
849
                          strcpy(temp,yyvsp[0].str);
 
850
                        ;
 
851
    break;}
 
852
case 18:
 
853
#line 116 "adsedgelabelevaluation.y"
 
854
 
855
                           if (isintexp) {
 
856
                             int b;
 
857
                             strcpy(temp,yyvsp[-2].str);
 
858
                             b=GetBool(temp,INT);
 
859
                             if (b==-1) b=GetBool(temp,INTERNAL_INT);
 
860
                             if (b>=0) yyval.i=b; else yyval.i=-1;
 
861
                           }
 
862
                           else if (isstrexp){
 
863
                                int b;
 
864
                                strcpy(temp,yyvsp[-2].str);
 
865
                                b=GetBool(temp,STRING);
 
866
                                if (b==-1) b=GetBool(temp,INTERNAL_STRING);
 
867
                                if (b>=0) yyval.i=b; else yyval.i=-1;            
 
868
                           }
 
869
                           else{
 
870
                             int b;
 
871
                             b = GetBool(temp,PROP);
 
872
                             if (b==-1) b=GetBool(temp,INTERNAL_PROP);
 
873
                             if (b>=0) yyval.i=b; else {yyval.i=-1;}
 
874
                           }
 
875
 
 
876
;
 
877
    break;}
 
878
case 19:
 
879
#line 142 "adsedgelabelevaluation.y"
 
880
{isintexp=0;isstrexp=0;;
 
881
    break;}
 
882
case 20:
 
883
#line 143 "adsedgelabelevaluation.y"
 
884
{strcpy(yyval.str,yyvsp[-1].str);
 
885
                               isintexp =1;isstrexp=0;;
 
886
    break;}
 
887
case 21:
 
888
#line 145 "adsedgelabelevaluation.y"
 
889
{ strcpy(yyval.str,yyvsp[-1].str);
 
890
                              isintexp=0;isstrexp=1;;
 
891
    break;}
 
892
case 22:
 
893
#line 149 "adsedgelabelevaluation.y"
 
894
{strcpy(yyval.str,yyvsp[0].str);;
 
895
    break;}
 
896
case 23:
 
897
#line 150 "adsedgelabelevaluation.y"
 
898
{strcpy(yyval.str,yyvsp[0].str);;
 
899
    break;}
 
900
case 24:
 
901
#line 151 "adsedgelabelevaluation.y"
 
902
{strcpy(yyval.str,yyvsp[0].str);;
 
903
    break;}
 
904
case 25:
 
905
#line 152 "adsedgelabelevaluation.y"
 
906
{strcpy(yyval.str,yyvsp[0].str);;
 
907
    break;}
 
908
case 26:
 
909
#line 153 "adsedgelabelevaluation.y"
 
910
{strcpy(yyval.str,yyvsp[0].str);;
 
911
    break;}
 
912
case 27:
 
913
#line 154 "adsedgelabelevaluation.y"
 
914
{strcpy(yyval.str,yyvsp[0].str);;
 
915
    break;}
 
916
case 28:
 
917
#line 159 "adsedgelabelevaluation.y"
 
918
{strcpy(yyval.str,yyvsp[0].str);;
 
919
    break;}
 
920
case 29:
 
921
#line 160 "adsedgelabelevaluation.y"
 
922
{strcpy(yyval.str,yyvsp[0].str);;
 
923
    break;}
 
924
case 30:
 
925
#line 166 "adsedgelabelevaluation.y"
 
926
{yyval.i=1;;
 
927
    break;}
 
928
case 31:
 
929
#line 167 "adsedgelabelevaluation.y"
 
930
{yyval.i=1;;
 
931
    break;}
 
932
}
 
933
   /* the action file gets copied in in place of this dollarsign */
 
934
#line 543 "/usr/lib/bison.simple"
 
935
 
 
936
  yyvsp -= yylen;
 
937
  yyssp -= yylen;
 
938
#ifdef YYLSP_NEEDED
 
939
  yylsp -= yylen;
 
940
#endif
 
941
 
 
942
#if YYDEBUG != 0
 
943
  if (yydebug)
 
944
    {
 
945
      short *ssp1 = yyss - 1;
 
946
      fprintf (stderr, "state stack now");
 
947
      while (ssp1 != yyssp)
 
948
        fprintf (stderr, " %d", *++ssp1);
 
949
      fprintf (stderr, "\n");
 
950
    }
 
951
#endif
 
952
 
 
953
  *++yyvsp = yyval;
 
954
 
 
955
#ifdef YYLSP_NEEDED
 
956
  yylsp++;
 
957
  if (yylen == 0)
 
958
    {
 
959
      yylsp->first_line = yylloc.first_line;
 
960
      yylsp->first_column = yylloc.first_column;
 
961
      yylsp->last_line = (yylsp-1)->last_line;
 
962
      yylsp->last_column = (yylsp-1)->last_column;
 
963
      yylsp->text = 0;
 
964
    }
 
965
  else
 
966
    {
 
967
      yylsp->last_line = (yylsp+yylen-1)->last_line;
 
968
      yylsp->last_column = (yylsp+yylen-1)->last_column;
 
969
    }
 
970
#endif
 
971
 
 
972
  /* Now "shift" the result of the reduction.
 
973
     Determine what state that goes to,
 
974
     based on the state we popped back to
 
975
     and the rule number reduced by.  */
 
976
 
 
977
  yyn = yyr1[yyn];
 
978
 
 
979
  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
 
980
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
 
981
    yystate = yytable[yystate];
 
982
  else
 
983
    yystate = yydefgoto[yyn - YYNTBASE];
 
984
 
 
985
  goto yynewstate;
 
986
 
 
987
yyerrlab:   /* here on detecting error */
 
988
 
 
989
  if (! yyerrstatus)
 
990
    /* If not already recovering from an error, report this error.  */
 
991
    {
 
992
      ++yynerrs;
 
993
 
 
994
#ifdef YYERROR_VERBOSE
 
995
      yyn = yypact[yystate];
 
996
 
 
997
      if (yyn > YYFLAG && yyn < YYLAST)
 
998
        {
 
999
          int size = 0;
 
1000
          char *msg;
 
1001
          int x, count;
 
1002
 
 
1003
          count = 0;
 
1004
          /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
 
1005
          for (x = (yyn < 0 ? -yyn : 0);
 
1006
               x < (sizeof(yytname) / sizeof(char *)); x++)
 
1007
            if (yycheck[x + yyn] == x)
 
1008
              size += strlen(yytname[x]) + 15, count++;
 
1009
          msg = (char *) malloc(size + 15);
 
1010
          if (msg != 0)
 
1011
            {
 
1012
              strcpy(msg, "parse error");
 
1013
 
 
1014
              if (count < 5)
 
1015
                {
 
1016
                  count = 0;
 
1017
                  for (x = (yyn < 0 ? -yyn : 0);
 
1018
                       x < (sizeof(yytname) / sizeof(char *)); x++)
 
1019
                    if (yycheck[x + yyn] == x)
 
1020
                      {
 
1021
                        strcat(msg, count == 0 ? ", expecting `" : " or `");
 
1022
                        strcat(msg, yytname[x]);
 
1023
                        strcat(msg, "'");
 
1024
                        count++;
 
1025
                      }
 
1026
                }
 
1027
              yyerror(msg);
 
1028
              free(msg);
 
1029
            }
 
1030
          else
 
1031
            yyerror ("parse error; also virtual memory exceeded");
 
1032
        }
 
1033
      else
 
1034
#endif /* YYERROR_VERBOSE */
 
1035
        yyerror("parse error");
 
1036
    }
 
1037
 
 
1038
  goto yyerrlab1;
 
1039
yyerrlab1:   /* here on error raised explicitly by an action */
 
1040
 
 
1041
  if (yyerrstatus == 3)
 
1042
    {
 
1043
      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
 
1044
 
 
1045
      /* return failure if at end of input */
 
1046
      if (yychar == YYEOF)
 
1047
        YYABORT;
 
1048
 
 
1049
#if YYDEBUG != 0
 
1050
      if (yydebug)
 
1051
        fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
 
1052
#endif
 
1053
 
 
1054
      yychar = YYEMPTY;
 
1055
    }
 
1056
 
 
1057
  /* Else will try to reuse lookahead token
 
1058
     after shifting the error token.  */
 
1059
 
 
1060
  yyerrstatus = 3;              /* Each real token shifted decrements this */
 
1061
 
 
1062
  goto yyerrhandle;
 
1063
 
 
1064
yyerrdefault:  /* current state does not do anything special for the error token. */
 
1065
 
 
1066
#if 0
 
1067
  /* This is wrong; only states that explicitly want error tokens
 
1068
     should shift them.  */
 
1069
  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
 
1070
  if (yyn) goto yydefault;
 
1071
#endif
 
1072
 
 
1073
yyerrpop:   /* pop the current state because it cannot handle the error token */
 
1074
 
 
1075
  if (yyssp == yyss) YYABORT;
 
1076
  yyvsp--;
 
1077
  yystate = *--yyssp;
 
1078
#ifdef YYLSP_NEEDED
 
1079
  yylsp--;
 
1080
#endif
 
1081
 
 
1082
#if YYDEBUG != 0
 
1083
  if (yydebug)
 
1084
    {
 
1085
      short *ssp1 = yyss - 1;
 
1086
      fprintf (stderr, "Error: state stack now");
 
1087
      while (ssp1 != yyssp)
 
1088
        fprintf (stderr, " %d", *++ssp1);
 
1089
      fprintf (stderr, "\n");
 
1090
    }
 
1091
#endif
 
1092
 
 
1093
yyerrhandle:
 
1094
 
 
1095
  yyn = yypact[yystate];
 
1096
  if (yyn == YYFLAG)
 
1097
    goto yyerrdefault;
 
1098
 
 
1099
  yyn += YYTERROR;
 
1100
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
 
1101
    goto yyerrdefault;
 
1102
 
 
1103
  yyn = yytable[yyn];
 
1104
  if (yyn < 0)
 
1105
    {
 
1106
      if (yyn == YYFLAG)
 
1107
        goto yyerrpop;
 
1108
      yyn = -yyn;
 
1109
      goto yyreduce;
 
1110
    }
 
1111
  else if (yyn == 0)
 
1112
    goto yyerrpop;
 
1113
 
 
1114
  if (yyn == YYFINAL)
 
1115
    YYACCEPT;
 
1116
 
 
1117
#if YYDEBUG != 0
 
1118
  if (yydebug)
 
1119
    fprintf(stderr, "Shifting error token, ");
 
1120
#endif
 
1121
 
 
1122
  *++yyvsp = yylval;
 
1123
#ifdef YYLSP_NEEDED
 
1124
  *++yylsp = yylloc;
 
1125
#endif
 
1126
 
 
1127
  yystate = yyn;
 
1128
  goto yynewstate;
 
1129
 
 
1130
 yyacceptlab:
 
1131
  /* YYACCEPT comes here.  */
 
1132
  if (yyfree_stacks)
 
1133
    {
 
1134
      free (yyss);
 
1135
      free (yyvs);
 
1136
#ifdef YYLSP_NEEDED
 
1137
      free (yyls);
 
1138
#endif
 
1139
    }
 
1140
  return 0;
 
1141
 
 
1142
 yyabortlab:
 
1143
  /* YYABORT comes here.  */
 
1144
  if (yyfree_stacks)
 
1145
    {
 
1146
      free (yyss);
 
1147
      free (yyvs);
 
1148
#ifdef YYLSP_NEEDED
 
1149
      free (yyls);
 
1150
#endif
 
1151
    }
 
1152
  return 1;
 
1153
}
 
1154
#line 169 "adsedgelabelevaluation.y"
 
1155
 
 
1156
 
 
1157
 
 
1158
 
 
1159
 
 
1160