@ -1,9 +1,7 @@
/* A Bison parser, made by GNU Bison 2. 3 . */
/* A Bison parser, made by GNU Bison 2. 1a . */
/* Skeleton implementation for Bison's Yacc-like parsers in C
Copyright ( C ) 1984 , 1989 , 1990 , 2000 , 2001 , 2002 , 2003 , 2004 , 2005 , 2006
Free Software Foundation , Inc .
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright ( C ) 1984 , 1989 , 1990 , 2000 , 2001 , 2002 , 2003 , 2004 , 2005 , 2006 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
@ -20,18 +18,10 @@
Foundation , Inc . , 51 Franklin Street , Fifth Floor ,
Boston , MA 02110 - 1301 , USA . */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice , so long as that work isn ' t itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton . Alternatively , if you modify or redistribute
the parser skeleton itself , you may ( at your option ) remove this
special exception , which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception .
This special exception was added by the Free Software Foundation in
version 2.2 of Bison . */
/* As a special exception, when this file is copied by Bison into a
Bison output file , you may use that output file without restriction .
This special exception was added by the Free Software Foundation
in version 1.24 of Bison . */
/* C LALR(1) parser skeleton written by Richard Stallman, by
simplifying the original so - called " semantic " parser . */
@ -47,7 +37,7 @@
# define YYBISON 1
/* Bison version. */
# define YYBISON_VERSION "2. 3 "
# define YYBISON_VERSION "2. 1a "
/* Skeleton name. */
# define YYSKELETON_NAME "yacc.c"
@ -126,7 +116,7 @@
/* Copy the first part of user declarations. */
# line 1 " ../ main / ast_expr2.y"
# line 1 " ast_expr2.y"
/* Written by Pace Willisson (pace@blitz.com)
* and placed in the public domain .
@ -144,6 +134,7 @@
# include <sys/types.h>
# include <stdio.h>
# include "asterisk.h"
ASTERISK_FILE_VERSION ( __FILE__ , " $Revision$ " )
# define FP___PRINTF "%.18Lg"
# define FP___TYPE long double
@ -469,13 +460,13 @@ int ast_yyerror(const char *,YYLTYPE *, struct parse_io *);
# if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
# line 33 0 "../ main / ast_expr2.y"
# line 33 1 " ast_expr2.y"
{
struct val * val ;
struct expr_node * arglist ;
}
/* Line 1 87 of yacc.c. */
# line 47 9 "../ main / ast_expr2.c"
/* Line 1 9 8 of yacc.c. */
# line 47 0 " ast_expr2.c"
YYSTYPE ;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@ -497,13 +488,13 @@ typedef struct YYLTYPE
/* Copy the second part of user declarations. */
# line 33 5 "../ main / ast_expr2.y"
# line 33 6 " ast_expr2.y"
extern int ast_yylex __P ( ( YYSTYPE * , YYLTYPE * , yyscan_t ) ) ;
/* Line 2 16 of yacc.c. */
# line 507 "../ main / ast_expr2.c"
/* Line 2 2 1 of yacc.c. */
# line 498 " ast_expr2.c"
# ifdef short
# undef short
@ -633,13 +624,8 @@ YYID (i)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined _STDLIB_H \
& & ! ( ( defined YYMALLOC | | defined malloc ) \
& & ( defined YYFREE | | defined free ) ) )
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# ifdef __cplusplus
extern " C " {
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
@ -655,6 +641,9 @@ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
void free ( void * ) ; /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifdef __cplusplus
}
# endif
# endif
# endif /* ! defined yyoverflow || YYERROR_VERBOSE */
@ -799,9 +788,9 @@ static const yytype_int8 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline [ ] =
{
0 , 36 1, 361 , 369 , 376 , 377 , 386 , 392 , 393 , 397 ,
40 1, 405 , 409 , 413 , 417 , 421 , 425 , 429 , 433 , 437 ,
44 1, 445 , 449 , 453 , 457 , 461 , 465
0 , 36 2, 362 , 370 , 377 , 378 , 387 , 393 , 394 , 398 ,
40 2, 406 , 410 , 414 , 418 , 422 , 426 , 430 , 434 , 438 ,
44 2, 446 , 450 , 454 , 458 , 462 , 466
} ;
# endif
@ -1064,14 +1053,14 @@ do { \
# if (defined __STDC__ || defined __C99__FUNC__ \
| | defined __cplusplus | | defined _MSC_VER )
static void
yy_symbol_value_print ( FILE * yyoutput , int yytype , YYSTYPE const * const yyvaluep , YYLTYPE const * const yylocationp )
yy_symbol_value_print ( FILE * yyoutput , int yytype , const YYSTYPE * const yyvaluep , const YYLTYPE * const yylocationp )
# else
static void
yy_symbol_value_print ( yyoutput , yytype , yyvaluep , yylocationp )
FILE * yyoutput ;
int yytype ;
YYSTYPE const * const yyvaluep ;
YYLTYPE const * const yylocationp ;
const YYSTYPE * const yyvaluep ;
const YYLTYPE * const yylocationp ;
# endif
{
if ( ! yyvaluep )
@ -1098,14 +1087,14 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
# if (defined __STDC__ || defined __C99__FUNC__ \
| | defined __cplusplus | | defined _MSC_VER )
static void
yy_symbol_print ( FILE * yyoutput , int yytype , YYSTYPE const * const yyvaluep , YYLTYPE const * const yylocationp )
yy_symbol_print ( FILE * yyoutput , int yytype , const YYSTYPE * const yyvaluep , const YYLTYPE * const yylocationp )
# else
static void
yy_symbol_print ( yyoutput , yytype , yyvaluep , yylocationp )
FILE * yyoutput ;
int yytype ;
YYSTYPE const * const yyvaluep ;
YYLTYPE const * const yylocationp ;
const YYSTYPE * const yyvaluep ;
const YYLTYPE * const yylocationp ;
# endif
{
if ( yytype < YYNTOKENS )
@ -1158,7 +1147,8 @@ static void
yy_reduce_print ( YYSTYPE * yyvsp , YYLTYPE * yylsp , int yyrule )
# else
static void
yy_reduce_print ( yyvsp , yylsp , yyrule )
yy_reduce_print ( yyvsp , yylsp , yyrule
)
YYSTYPE * yyvsp ;
YYLTYPE * yylsp ;
int yyrule ;
@ -1281,7 +1271,7 @@ yytnamerr (char *yyres, const char *yystr)
{
if ( * yystr = = ' " ' )
{
YYSIZE_T yyn = 0 ;
size_t yyn = 0 ;
char const * yyp = yystr ;
for ( ; ; )
@ -1328,7 +1318,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar)
{
int yyn = yypact [ yystate ] ;
if ( ! ( YYPACT_NINF < yyn & & yyn < = YYLAST ) )
if ( ! ( YYPACT_NINF < yyn & & yyn < YYLAST ) )
return 0 ;
else
{
@ -1366,7 +1356,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar)
int yyxbegin = yyn < 0 ? - yyn : 0 ;
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn + 1 ;
int yychecklim = YYLAST - yyn ;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS ;
int yycount = 1 ;
@ -1454,114 +1444,114 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
switch ( yytype )
{
case 4 : /* "TOK_COLONCOLON" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 60 "../ main / ast_expr2.c"
# line 14 50 " ast_expr2.c"
break ;
case 5 : /* "TOK_COND" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 65 "../ main / ast_expr2.c"
# line 14 55 " ast_expr2.c"
break ;
case 6 : /* "TOK_OR" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 70 "../ main / ast_expr2.c"
# line 14 60 " ast_expr2.c"
break ;
case 7 : /* "TOK_AND" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 75 "../ main / ast_expr2.c"
# line 14 65 " ast_expr2.c"
break ;
case 8 : /* "TOK_NE" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 80 "../ main / ast_expr2.c"
# line 14 70 " ast_expr2.c"
break ;
case 9 : /* "TOK_LE" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 85 "../ main / ast_expr2.c"
# line 14 75 " ast_expr2.c"
break ;
case 10 : /* "TOK_GE" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 90 "../ main / ast_expr2.c"
# line 14 80 " ast_expr2.c"
break ;
case 11 : /* "TOK_LT" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 14 95 "../ main / ast_expr2.c"
# line 14 85 " ast_expr2.c"
break ;
case 12 : /* "TOK_GT" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 1 500 "../ main / ast_expr2.c"
# line 1 490 " ast_expr2.c"
break ;
case 13 : /* "TOK_EQ" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 1 505 "../ main / ast_expr2.c"
# line 1 495 " ast_expr2.c"
break ;
case 14 : /* "TOK_MINUS" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 10 "../ main / ast_expr2.c"
# line 15 00 " ast_expr2.c"
break ;
case 15 : /* "TOK_PLUS" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 15 "../ main / ast_expr2.c"
# line 15 05 " ast_expr2.c"
break ;
case 16 : /* "TOK_MOD" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 20 "../ main / ast_expr2.c"
# line 15 10 " ast_expr2.c"
break ;
case 17 : /* "TOK_DIV" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 25 "../ main / ast_expr2.c"
# line 15 15 " ast_expr2.c"
break ;
case 18 : /* "TOK_MULT" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 30 "../ main / ast_expr2.c"
# line 15 20 " ast_expr2.c"
break ;
case 19 : /* "TOK_COMPL" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 35 "../ main / ast_expr2.c"
# line 15 25 " ast_expr2.c"
break ;
case 20 : /* "TOK_EQTILDE" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 40 "../ main / ast_expr2.c"
# line 15 30 " ast_expr2.c"
break ;
case 21 : /* "TOK_COLON" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 45 "../ main / ast_expr2.c"
# line 15 35 " ast_expr2.c"
break ;
case 22 : /* "TOK_LP" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 50 "../ main / ast_expr2.c"
# line 15 40 " ast_expr2.c"
break ;
case 23 : /* "TOK_RP" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 55 "../ main / ast_expr2.c"
# line 15 45 " ast_expr2.c"
break ;
case 24 : /* "TOKEN" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 60 "../ main / ast_expr2.c"
# line 15 50 " ast_expr2.c"
break ;
case 28 : /* "expr" */
# line 35 5 "../ main / ast_expr2.y"
# line 35 6 " ast_expr2.y"
{ free_value ( ( yyvaluep - > val ) ) ; } ;
# line 15 65 "../ main / ast_expr2.c"
# line 15 55 " ast_expr2.c"
break ;
default :
@ -1884,7 +1874,7 @@ yyreduce:
switch ( yyn )
{
case 2 :
# line 36 1 "../ main / ast_expr2.y"
# line 36 2 " ast_expr2.y"
{ ( ( struct parse_io * ) parseio ) - > val = ( struct val * ) calloc ( sizeof ( struct val ) , 1 ) ;
( ( struct parse_io * ) parseio ) - > val - > type = ( yyvsp [ ( 1 ) - ( 1 ) ] . val ) - > type ;
if ( ( yyvsp [ ( 1 ) - ( 1 ) ] . val ) - > type = = AST_EXPR_number )
@ -1896,7 +1886,7 @@ yyreduce:
break ;
case 3 :
# line 3 69 "../ main / ast_expr2.y"
# line 3 70 " ast_expr2.y"
{ /* nothing */ ( ( struct parse_io * ) parseio ) - > val = ( struct val * ) calloc ( sizeof ( struct val ) , 1 ) ;
( ( struct parse_io * ) parseio ) - > val - > type = AST_EXPR_string ;
( ( struct parse_io * ) parseio ) - > val - > u . s = strdup ( " " ) ;
@ -1904,12 +1894,12 @@ yyreduce:
break ;
case 4 :
# line 37 6 "../ main / ast_expr2.y"
# line 37 7 " ast_expr2.y"
{ ( yyval . arglist ) = alloc_expr_node ( AST_EXPR_NODE_VAL ) ; ( yyval . arglist ) - > val = ( yyvsp [ ( 1 ) - ( 1 ) ] . val ) ; ; }
break ;
case 5 :
# line 37 7 "../ main / ast_expr2.y"
# line 37 8 " ast_expr2.y"
{ struct expr_node * x = alloc_expr_node ( AST_EXPR_NODE_VAL ) ;
struct expr_node * t ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
@ -1919,7 +1909,7 @@ yyreduce:
break ;
case 6 :
# line 38 6 "../ main / ast_expr2.y"
# line 38 7 " ast_expr2.y"
{ ( yyval . val ) = op_func ( ( yyvsp [ ( 1 ) - ( 4 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 4 ) ] . arglist ) , ( ( struct parse_io * ) parseio ) - > chan ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 4 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 4 ) - ( 4 ) ] . val ) ) ;
@ -1929,12 +1919,12 @@ yyreduce:
break ;
case 7 :
# line 39 2 "../ main / ast_expr2.y"
# line 39 3 " ast_expr2.y"
{ ( yyval . val ) = ( yyvsp [ ( 1 ) - ( 1 ) ] . val ) ; ; }
break ;
case 8 :
# line 39 3 "../ main / ast_expr2.y"
# line 39 4 " ast_expr2.y"
{ ( yyval . val ) = ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
( yyloc ) . first_line = 0 ; ( yyloc ) . last_line = 0 ;
@ -1942,7 +1932,7 @@ yyreduce:
break ;
case 9 :
# line 39 7 "../ main / ast_expr2.y"
# line 39 8 " ast_expr2.y"
{ ( yyval . val ) = op_or ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -1950,7 +1940,7 @@ yyreduce:
break ;
case 10 :
# line 40 1 "../ main / ast_expr2.y"
# line 40 2 " ast_expr2.y"
{ ( yyval . val ) = op_and ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -1958,7 +1948,7 @@ yyreduce:
break ;
case 11 :
# line 40 5 "../ main / ast_expr2.y"
# line 40 6 " ast_expr2.y"
{ ( yyval . val ) = op_eq ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -1966,7 +1956,7 @@ yyreduce:
break ;
case 12 :
# line 4 09 "../ main / ast_expr2.y"
# line 4 1 0 "ast_expr2.y"
{ ( yyval . val ) = op_gt ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -1974,7 +1964,7 @@ yyreduce:
break ;
case 13 :
# line 41 3 "../ main / ast_expr2.y"
# line 41 4 " ast_expr2.y"
{ ( yyval . val ) = op_lt ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -1982,7 +1972,7 @@ yyreduce:
break ;
case 14 :
# line 41 7 "../ main / ast_expr2.y"
# line 41 8 " ast_expr2.y"
{ ( yyval . val ) = op_ge ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -1990,7 +1980,7 @@ yyreduce:
break ;
case 15 :
# line 42 1 "../ main / ast_expr2.y"
# line 42 2 " ast_expr2.y"
{ ( yyval . val ) = op_le ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -1998,7 +1988,7 @@ yyreduce:
break ;
case 16 :
# line 42 5 "../ main / ast_expr2.y"
# line 42 6 " ast_expr2.y"
{ ( yyval . val ) = op_ne ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2006,7 +1996,7 @@ yyreduce:
break ;
case 17 :
# line 4 29 "../ main / ast_expr2.y"
# line 4 30 " ast_expr2.y"
{ ( yyval . val ) = op_plus ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2014,7 +2004,7 @@ yyreduce:
break ;
case 18 :
# line 43 3 "../ main / ast_expr2.y"
# line 43 4 " ast_expr2.y"
{ ( yyval . val ) = op_minus ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2022,7 +2012,7 @@ yyreduce:
break ;
case 19 :
# line 43 7 "../ main / ast_expr2.y"
# line 43 8 " ast_expr2.y"
{ ( yyval . val ) = op_negate ( ( yyvsp [ ( 2 ) - ( 2 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 1 ) - ( 2 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 2 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 2 ) - ( 2 ) ] ) . last_column ;
@ -2030,7 +2020,7 @@ yyreduce:
break ;
case 20 :
# line 44 1 "../ main / ast_expr2.y"
# line 44 2 " ast_expr2.y"
{ ( yyval . val ) = op_compl ( ( yyvsp [ ( 2 ) - ( 2 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 1 ) - ( 2 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 2 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 2 ) - ( 2 ) ] ) . last_column ;
@ -2038,7 +2028,7 @@ yyreduce:
break ;
case 21 :
# line 44 5 "../ main / ast_expr2.y"
# line 44 6 " ast_expr2.y"
{ ( yyval . val ) = op_times ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2046,7 +2036,7 @@ yyreduce:
break ;
case 22 :
# line 4 49 "../ main / ast_expr2.y"
# line 4 50 " ast_expr2.y"
{ ( yyval . val ) = op_div ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2054,7 +2044,7 @@ yyreduce:
break ;
case 23 :
# line 45 3 "../ main / ast_expr2.y"
# line 45 4 " ast_expr2.y"
{ ( yyval . val ) = op_rem ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2062,7 +2052,7 @@ yyreduce:
break ;
case 24 :
# line 45 7 "../ main / ast_expr2.y"
# line 45 8 " ast_expr2.y"
{ ( yyval . val ) = op_colon ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2070,7 +2060,7 @@ yyreduce:
break ;
case 25 :
# line 46 1 "../ main / ast_expr2.y"
# line 46 2 " ast_expr2.y"
{ ( yyval . val ) = op_eqtilde ( ( yyvsp [ ( 1 ) - ( 3 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 3 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 3 ) ] . val ) ) ;
( yyloc ) . first_column = ( yylsp [ ( 1 ) - ( 3 ) ] ) . first_column ; ( yyloc ) . last_column = ( yylsp [ ( 3 ) - ( 3 ) ] ) . last_column ;
@ -2078,7 +2068,7 @@ yyreduce:
break ;
case 26 :
# line 46 5 "../ main / ast_expr2.y"
# line 46 6 " ast_expr2.y"
{ ( yyval . val ) = op_cond ( ( yyvsp [ ( 1 ) - ( 5 ) ] . val ) , ( yyvsp [ ( 3 ) - ( 5 ) ] . val ) , ( yyvsp [ ( 5 ) - ( 5 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 2 ) - ( 5 ) ] . val ) ) ;
DESTROY ( ( yyvsp [ ( 4 ) - ( 5 ) ] . val ) ) ;
@ -2087,8 +2077,8 @@ yyreduce:
break ;
/* Line 12 6 7 of yacc.c. */
# line 20 92 "../ main / ast_expr2.c"
/* Line 12 70 of yacc.c. */
# line 20 82 " ast_expr2.c"
default : break ;
}
YY_SYMBOL_PRINT ( " -> $$ = " , yyr1 [ yyn ] , & yyval , & yyloc ) ;
@ -2303,12 +2293,11 @@ yyreturn:
if ( yymsg ! = yymsgbuf )
YYSTACK_FREE ( yymsg ) ;
# endif
/* Make sure YYID is used. */
return YYID ( yyresult ) ;
return yyresult ;
}
# line 47 2 "../ main / ast_expr2.y"
# line 47 3 " ast_expr2.y"
static struct expr_node * alloc_expr_node ( enum node_type nt )
@ -3447,3 +3436,4 @@ op_eqtilde (struct val *a, struct val *b)
return v ;
}