#include "config.h"
#include "system.h"
+#include "intl.h"
#include <setjmp.h>
/* #define YYDEBUG 1 */
#define SIGNED (~0)
#define UNSIGNED 0
-#line 184 "cexp.y"
+#line 185 "cexp.y"
typedef union {
struct constant {HOST_WIDE_INT value; int signedp;} integer;
struct name {U_CHAR *address; int length;} name;
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 214, 224, 225, 232, 237, 240, 242, 245, 249, 251,
- 256, 261, 274, 291, 304, 310, 316, 322, 328, 331,
- 334, 341, 348, 355, 362, 365, 368, 371, 374, 377,
- 380, 383, 385, 388, 391, 393, 395, 403, 405, 418
+ 215, 225, 226, 233, 238, 241, 243, 246, 250, 252,
+ 257, 262, 275, 292, 305, 311, 317, 323, 329, 332,
+ 335, 342, 349, 356, 363, 366, 369, 372, 375, 378,
+ 381, 384, 386, 389, 392, 394, 396, 404, 406, 419
};
#endif
26, 27, 23, 24, 25, 26, 27, 0, 9
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/usr/lib/bison.simple"
+#line 3 "/usr/cygnus/r5900/share/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
#endif
#endif
\f
-#line 196 "/usr/lib/bison.simple"
+#line 196 "/usr/cygnus/r5900/share/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
switch (yyn) {
case 1:
-#line 215 "cexp.y"
+#line 216 "cexp.y"
{
expression_value = yyvsp[0].integer.value;
#ifdef TEST_EXP_READER
;
break;}
case 3:
-#line 226 "cexp.y"
+#line 227 "cexp.y"
{ if (pedantic)
pedwarn ("comma operator in operand of `#if'");
yyval.integer = yyvsp[0].integer; ;
break;}
case 4:
-#line 233 "cexp.y"
+#line 234 "cexp.y"
{ yyval.integer.value = - yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[0].integer.signedp;
if ((yyval.integer.value & yyvsp[0].integer.value & yyval.integer.signedp) < 0)
integer_overflow (); ;
break;}
case 5:
-#line 238 "cexp.y"
+#line 239 "cexp.y"
{ yyval.integer.value = ! yyvsp[0].integer.value;
yyval.integer.signedp = SIGNED; ;
break;}
case 6:
-#line 241 "cexp.y"
+#line 242 "cexp.y"
{ yyval.integer = yyvsp[0].integer; ;
break;}
case 7:
-#line 243 "cexp.y"
+#line 244 "cexp.y"
{ yyval.integer.value = ~ yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[0].integer.signedp; ;
break;}
case 8:
-#line 246 "cexp.y"
+#line 247 "cexp.y"
{ yyval.integer.value = check_assertion (yyvsp[0].name.address, yyvsp[0].name.length,
0, NULL_PTR);
yyval.integer.signedp = SIGNED; ;
break;}
case 9:
-#line 250 "cexp.y"
+#line 251 "cexp.y"
{ keyword_parsing = 1; ;
break;}
case 10:
-#line 252 "cexp.y"
+#line 253 "cexp.y"
{ yyval.integer.value = check_assertion (yyvsp[-4].name.address, yyvsp[-4].name.length,
1, yyvsp[-1].keywords);
keyword_parsing = 0;
yyval.integer.signedp = SIGNED; ;
break;}
case 11:
-#line 257 "cexp.y"
+#line 258 "cexp.y"
{ yyval.integer = yyvsp[-1].integer; ;
break;}
case 12:
-#line 262 "cexp.y"
+#line 263 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (yyval.integer.signedp)
{
* yyvsp[0].integer.value); ;
break;}
case 13:
-#line 275 "cexp.y"
+#line 276 "cexp.y"
{ if (yyvsp[0].integer.value == 0)
{
if (!skip_evaluation)
/ yyvsp[0].integer.value); ;
break;}
case 14:
-#line 292 "cexp.y"
+#line 293 "cexp.y"
{ if (yyvsp[0].integer.value == 0)
{
if (!skip_evaluation)
% yyvsp[0].integer.value); ;
break;}
case 15:
-#line 305 "cexp.y"
+#line 306 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value + yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (overflow_sum_sign (yyvsp[-2].integer.value, yyvsp[0].integer.value,
integer_overflow (); ;
break;}
case 16:
-#line 311 "cexp.y"
+#line 312 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value - yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (overflow_sum_sign (yyval.integer.value, yyvsp[0].integer.value,
integer_overflow (); ;
break;}
case 17:
-#line 317 "cexp.y"
+#line 318 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
yyval.integer.value = right_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
yyval.integer.value = left_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
break;}
case 18:
-#line 323 "cexp.y"
+#line 324 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
yyval.integer.value = left_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
yyval.integer.value = right_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
break;}
case 19:
-#line 329 "cexp.y"
+#line 330 "cexp.y"
{ yyval.integer.value = (yyvsp[-2].integer.value == yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 20:
-#line 332 "cexp.y"
+#line 333 "cexp.y"
{ yyval.integer.value = (yyvsp[-2].integer.value != yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 21:
-#line 335 "cexp.y"
+#line 336 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value <= yyvsp[0].integer.value;
<= yyvsp[0].integer.value); ;
break;}
case 22:
-#line 342 "cexp.y"
+#line 343 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value >= yyvsp[0].integer.value;
>= yyvsp[0].integer.value); ;
break;}
case 23:
-#line 349 "cexp.y"
+#line 350 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value < yyvsp[0].integer.value;
< yyvsp[0].integer.value); ;
break;}
case 24:
-#line 356 "cexp.y"
+#line 357 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value > yyvsp[0].integer.value;
> yyvsp[0].integer.value); ;
break;}
case 25:
-#line 363 "cexp.y"
+#line 364 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value & yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 26:
-#line 366 "cexp.y"
+#line 367 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value ^ yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 27:
-#line 369 "cexp.y"
+#line 370 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value | yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 28:
-#line 372 "cexp.y"
+#line 373 "cexp.y"
{ skip_evaluation += !yyvsp[-1].integer.value; ;
break;}
case 29:
-#line 374 "cexp.y"
+#line 375 "cexp.y"
{ skip_evaluation -= !yyvsp[-3].integer.value;
yyval.integer.value = (yyvsp[-3].integer.value && yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 30:
-#line 378 "cexp.y"
+#line 379 "cexp.y"
{ skip_evaluation += !!yyvsp[-1].integer.value; ;
break;}
case 31:
-#line 380 "cexp.y"
+#line 381 "cexp.y"
{ skip_evaluation -= !!yyvsp[-3].integer.value;
yyval.integer.value = (yyvsp[-3].integer.value || yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 32:
-#line 384 "cexp.y"
+#line 385 "cexp.y"
{ skip_evaluation += !yyvsp[-1].integer.value; ;
break;}
case 33:
-#line 386 "cexp.y"
+#line 387 "cexp.y"
{ skip_evaluation += !!yyvsp[-4].integer.value - !yyvsp[-4].integer.value; ;
break;}
case 34:
-#line 388 "cexp.y"
+#line 389 "cexp.y"
{ skip_evaluation -= !!yyvsp[-6].integer.value;
yyval.integer.value = yyvsp[-6].integer.value ? yyvsp[-3].integer.value : yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-3].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 35:
-#line 392 "cexp.y"
+#line 393 "cexp.y"
{ yyval.integer = yylval.integer; ;
break;}
case 36:
-#line 394 "cexp.y"
+#line 395 "cexp.y"
{ yyval.integer = yylval.integer; ;
break;}
case 37:
-#line 396 "cexp.y"
+#line 397 "cexp.y"
{ if (warn_undef && !skip_evaluation)
warning ("`%.*s' is not defined",
yyvsp[0].name.length, yyvsp[0].name.address);
yyval.integer.signedp = SIGNED; ;
break;}
case 38:
-#line 404 "cexp.y"
+#line 405 "cexp.y"
{ yyval.keywords = 0; ;
break;}
case 39:
-#line 406 "cexp.y"
+#line 407 "cexp.y"
{ struct arglist *temp;
yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
yyval.keywords->next = yyvsp[-2].keywords;
temp->next->length = 1; ;
break;}
case 40:
-#line 419 "cexp.y"
+#line 420 "cexp.y"
{ yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
yyval.keywords->name = yyvsp[-1].name.address;
yyval.keywords->length = yyvsp[-1].name.length;
break;}
}
/* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/lib/bison.simple"
+#line 498 "/usr/cygnus/r5900/share/bison.simple"
\f
yyvsp -= yylen;
yyssp -= yylen;
yystate = yyn;
goto yynewstate;
}
-#line 424 "cexp.y"
+#line 425 "cexp.y"
\f
/* During parsing of a C expression, the pointer to the next character