"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/common/parser.c" between
wcalc-2.4.1.tar.gz and wcalc-2.5.tar.gz

About: Wcalc is a natural-expression command-line calculator.

parser.c  (wcalc-2.4.1):parser.c  (wcalc-2.5)
/* A Bison parser, made by GNU Bison 2.5. */ /* A Bison parser, made by GNU Bison 3.0.2. */
/* Bison implementation for Yacc-like parsers in C /* Bison implementation for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
skipping to change at line 47 skipping to change at line 47
infringing on user name space. This should be done even for local infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros. variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted "INFRINGES ON define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */ USER NAME SPACE" below. */
/* Identify Bison output. */ /* Identify Bison output. */
#define YYBISON 1 #define YYBISON 1
/* Bison version. */ /* Bison version. */
#define YYBISON_VERSION "2.5" #define YYBISON_VERSION "3.0.2"
/* Skeleton name. */ /* Skeleton name. */
#define YYSKELETON_NAME "yacc.c" #define YYSKELETON_NAME "yacc.c"
/* Pure parsers. */ /* Pure parsers. */
#define YYPURE 0 #define YYPURE 0
/* Push parsers. */ /* Push parsers. */
#define YYPUSH 0 #define YYPUSH 0
/* Pull parsers. */ /* Pull parsers. */
#define YYPULL 1 #define YYPULL 1
/* Using locations. */
#define YYLSP_NEEDED 0
/* Copy the first part of user declarations. */ /* Copy the first part of user declarations. */
#line 4 "../../../svn/src/common/parser.y" /* yacc.c:339 */
/* Line 268 of yacc.c */
#line 4 "parser.y"
/*#define REENTRANT_PARSER */ /*#define REENTRANT_PARSER */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
#if ! defined(HAVE_CONFIG_H) || HAVE_STRING_H #if ! defined(HAVE_CONFIG_H) || HAVE_STRING_H
# include <string.h> # include <string.h>
#else #else
# if !HAVE_STRCHR # if !HAVE_STRCHR
# define strchr index # define strchr index
skipping to change at line 94 skipping to change at line 89
#include <stdlib.h> #include <stdlib.h>
#include "number.h" #include "number.h"
#include <stdarg.h> #include <stdarg.h>
#include <math.h> #include <math.h>
#include <float.h> #include <float.h>
#include <unistd.h> /* for isatty() */ #include <unistd.h> /* for isatty() */
#include "calculator.h" #include "calculator.h"
#include "variables.h" #include "variables.h"
#include "help.h"
#include "files.h" #include "files.h"
#include "conversion.h" #include "conversion.h"
#include "number_formatting.h" #include "number_formatting.h"
#include "output.h"
/* Based on the headstart code by Shawn Ostermann /* Based on the headstart code by Shawn Ostermann
* modified by Kyle Wheeler * modified by Kyle Wheeler
*/ */
/* include debugging code, in case we want it */ /* include debugging code, in case we want it */
#define YYDEBUG 1 #define YYDEBUG 1
/* to make it stop complaining about undeclared functions */ /* to make it stop complaining about undeclared functions */
int yylex(void); int yylex(void);
int yyerror(char *error_string, ...); int yyerror(char *error_string, ...);
int lines = 1; int lines = 1;
int synerrors = 0; int synerrors = 0;
short scanerror = 0; short scanerror = 0;
char * errstring = NULL; char * errstring = NULL;
int errloc = -1; int errloc = -1;
int show_line_numbers = 0; int show_line_numbers = 0;
/* Line 268 of yacc.c */ #line 117 "../../../svn/src/common/parser.c" /* yacc.c:339 */
#line 123 "../../../svn/src/common/parser.c"
/* Enabling traces. */ # ifndef YY_NULLPTR
#ifndef YYDEBUG # if defined __cplusplus && 201103L <= __cplusplus
# define YYDEBUG 0 # define YY_NULLPTR nullptr
#endif # else
# define YY_NULLPTR 0
# endif
# endif
/* Enabling verbose error messages. */ /* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE #ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE # undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1 # define YYERROR_VERBOSE 1
#else #else
# define YYERROR_VERBOSE 0 # define YYERROR_VERBOSE 0
#endif #endif
/* Enabling the token table. */ /* In a future release of Bison, this section will be replaced
#ifndef YYTOKEN_TABLE by #include "y.tab.h". */
# define YYTOKEN_TABLE 0 #ifndef YY_YY__SVN_SRC_COMMON_PARSER_H_INCLUDED
# define YY_YY__SVN_SRC_COMMON_PARSER_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif #endif
/* Tokens. */ /* Token type. */
#ifndef YYTOKENTYPE #ifndef YYTOKENTYPE
# define YYTOKENTYPE # define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers enum yytokentype
know about them. */ {
enum yytokentype { DEC_CMD = 258,
DEC_CMD = 258, OCT_CMD = 259,
OCT_CMD = 259, HEX_CMD = 260,
HEX_CMD = 260, BIN_CMD = 261,
BIN_CMD = 261, DISPLAY_PREFS_CMD = 262,
GUARD_CMD = 262, RADIAN_CMD = 263,
DISPLAY_PREFS_CMD = 263, REMEMBER_CMD = 264,
RADIAN_CMD = 264, LISTVAR_CMD = 265,
REMEMBER_CMD = 265, STORE_CMD = 266,
LISTVAR_CMD = 266, CMOD_CMD = 267,
STORE_CMD = 267, PRINT_HELP_CMD = 268,
CMOD_CMD = 268, PREFIX_CMD = 269,
PRINT_HELP_CMD = 269, INT_CMD = 270,
PREFIX_CMD = 270, VERBOSE_CMD = 271,
INT_CMD = 271, DELIM_CMD = 272,
VERBOSE_CMD = 272, ASSERT_CMD = 273,
DELIM_CMD = 273, ENG_CMD = 274,
ENG_CMD = 274, HLIMIT_CMD = 275,
HLIMIT_CMD = 275, ROUNDING_INDICATION_CMD = 276,
ROUNDING_INDICATION_CMD = 276, PRECISION_CMD = 277,
PRECISION_CMD = 277, BITS_CMD = 278,
BITS_CMD = 278, BASE_CMD = 279,
BASE_CMD = 279, GUARD_CMD = 280,
CONVERT_CMD = 280, CONVERT_CMD = 281,
EOLN = 281, EOLN = 282,
OPEN_PARENTHESES = 282, OPEN_PARENTHESES = 283,
CLOSE_PARENTHESES = 283, CLOSE_PARENTHESES = 284,
OPEN_BRACE = 284, OPEN_BRACE = 285,
CLOSE_BRACE = 285, CLOSE_BRACE = 286,
OPEN_BRACKET = 286, OPEN_BRACKET = 287,
CLOSE_BRACKET = 287, CLOSE_BRACKET = 288,
WPLUS = 288, WPLUS = 289,
WMINUS = 289, WMINUS = 290,
WMULT = 290, WMULT = 291,
WDIV = 291, WDIV = 292,
WMOD = 292, WMOD = 293,
EQUALS_SIGN = 293, EQUALS_SIGN = 294,
WPOW = 294, WPOW = 295,
WEXP = 295, WEXP = 296,
WSQR = 296, WSQR = 297,
WOR = 297, WOR = 298,
WAND = 298, WAND = 299,
WEQUAL = 299, WEQUAL = 300,
WNEQUAL = 300, WNEQUAL = 301,
WGT = 301, WGT = 302,
WLT = 302, WLT = 303,
WGEQ = 303, WGEQ = 304,
WLEQ = 304, WLEQ = 305,
WLSHFT = 305, WLSHFT = 306,
WRSHFT = 306, WRSHFT = 307,
WBOR = 307, WBOR = 308,
WBAND = 308, WBAND = 309,
WBXOR = 309, WBXOR = 310,
WBNOT = 310, WBNOT = 311,
WNOT = 311, WNOT = 312,
WLOG = 312, WLOG = 313,
WLN = 313, WLN = 314,
WROUND = 314, WROUND = 315,
WABS = 315, WABS = 316,
WSQRT = 316, WSQRT = 317,
WCEIL = 317, WCEIL = 318,
WFLOOR = 318, WFLOOR = 319,
WCBRT = 319, WCBRT = 320,
WLOGTWO = 320, WLOGTWO = 321,
WBANG = 321, WBANG = 322,
WSIN = 322, WSIN = 323,
WCOS = 323, WCOS = 324,
WTAN = 324, WTAN = 325,
WASIN = 325, WASIN = 326,
WACOS = 326, WACOS = 327,
WATAN = 327, WATAN = 328,
WSINH = 328, WSINH = 329,
WCOSH = 329, WCOSH = 330,
WTANH = 330, WTANH = 331,
WASINH = 331, WASINH = 332,
WACOSH = 332, WACOSH = 333,
WATANH = 333, WATANH = 334,
WCOT = 334, WCOT = 335,
WACOT = 335, WACOT = 336,
WCOTH = 336, WCOTH = 337,
WACOTH = 337, WACOTH = 338,
WRAND = 338, WRAND = 339,
WIRAND = 339, WIRAND = 340,
WFACT = 340, WFACT = 341,
WCOMP = 341, WCOMP = 342,
WSEC = 342, WSEC = 343,
WCSC = 343, WCSC = 344,
WASEC = 344, WASEC = 345,
WACSC = 345, WACSC = 346,
WSECH = 346, WSECH = 347,
WCSCH = 347, WCSCH = 348,
WASECH = 348, WASECH = 349,
WACSCH = 349, WACSCH = 350,
WEINT = 350, WEINT = 351,
WGAMMA = 351, WGAMMA = 352,
WLNGAMMA = 352, WLNGAMMA = 353,
WZETA = 353, WZETA = 354,
WSINC = 354, WSINC = 355,
NUMBER = 355, NUMBER = 356,
VARIABLE = 356, VARIABLE = 357,
STRING = 357, STRING = 358,
OPEN_CMD = 358, OPEN_CMD = 359,
SAVE_CMD = 359, SAVE_CMD = 360,
ASSIGNMENT = 360, ASSIGNMENT = 361,
IDSEP_CMD = 361, IDSEP_CMD = 362,
DSEP_CMD = 362, DSEP_CMD = 363,
ITSEP_CMD = 363, ITSEP_CMD = 364,
TSEP_CMD = 364, TSEP_CMD = 365,
WNEG = 365 WNEG = 366
}; };
#endif #endif
/* Tokens. */ /* Tokens. */
#define DEC_CMD 258 #define DEC_CMD 258
#define OCT_CMD 259 #define OCT_CMD 259
#define HEX_CMD 260 #define HEX_CMD 260
#define BIN_CMD 261 #define BIN_CMD 261
#define GUARD_CMD 262 #define DISPLAY_PREFS_CMD 262
#define DISPLAY_PREFS_CMD 263 #define RADIAN_CMD 263
#define RADIAN_CMD 264 #define REMEMBER_CMD 264
#define REMEMBER_CMD 265 #define LISTVAR_CMD 265
#define LISTVAR_CMD 266 #define STORE_CMD 266
#define STORE_CMD 267 #define CMOD_CMD 267
#define CMOD_CMD 268 #define PRINT_HELP_CMD 268
#define PRINT_HELP_CMD 269 #define PREFIX_CMD 269
#define PREFIX_CMD 270 #define INT_CMD 270
#define INT_CMD 271 #define VERBOSE_CMD 271
#define VERBOSE_CMD 272 #define DELIM_CMD 272
#define DELIM_CMD 273 #define ASSERT_CMD 273
#define ENG_CMD 274 #define ENG_CMD 274
#define HLIMIT_CMD 275 #define HLIMIT_CMD 275
#define ROUNDING_INDICATION_CMD 276 #define ROUNDING_INDICATION_CMD 276
#define PRECISION_CMD 277 #define PRECISION_CMD 277
#define BITS_CMD 278 #define BITS_CMD 278
#define BASE_CMD 279 #define BASE_CMD 279
#define CONVERT_CMD 280 #define GUARD_CMD 280
#define EOLN 281 #define CONVERT_CMD 281
#define OPEN_PARENTHESES 282 #define EOLN 282
#define CLOSE_PARENTHESES 283 #define OPEN_PARENTHESES 283
#define OPEN_BRACE 284 #define CLOSE_PARENTHESES 284
#define CLOSE_BRACE 285 #define OPEN_BRACE 285
#define OPEN_BRACKET 286 #define CLOSE_BRACE 286
#define CLOSE_BRACKET 287 #define OPEN_BRACKET 287
#define WPLUS 288 #define CLOSE_BRACKET 288
#define WMINUS 289 #define WPLUS 289
#define WMULT 290 #define WMINUS 290
#define WDIV 291 #define WMULT 291
#define WMOD 292 #define WDIV 292
#define EQUALS_SIGN 293 #define WMOD 293
#define WPOW 294 #define EQUALS_SIGN 294
#define WEXP 295 #define WPOW 295
#define WSQR 296 #define WEXP 296
#define WOR 297 #define WSQR 297
#define WAND 298 #define WOR 298
#define WEQUAL 299 #define WAND 299
#define WNEQUAL 300 #define WEQUAL 300
#define WGT 301 #define WNEQUAL 301
#define WLT 302 #define WGT 302
#define WGEQ 303 #define WLT 303
#define WLEQ 304 #define WGEQ 304
#define WLSHFT 305 #define WLEQ 305
#define WRSHFT 306 #define WLSHFT 306
#define WBOR 307 #define WRSHFT 307
#define WBAND 308 #define WBOR 308
#define WBXOR 309 #define WBAND 309
#define WBNOT 310 #define WBXOR 310
#define WNOT 311 #define WBNOT 311
#define WLOG 312 #define WNOT 312
#define WLN 313 #define WLOG 313
#define WROUND 314 #define WLN 314
#define WABS 315 #define WROUND 315
#define WSQRT 316 #define WABS 316
#define WCEIL 317 #define WSQRT 317
#define WFLOOR 318 #define WCEIL 318
#define WCBRT 319 #define WFLOOR 319
#define WLOGTWO 320 #define WCBRT 320
#define WBANG 321 #define WLOGTWO 321
#define WSIN 322 #define WBANG 322
#define WCOS 323 #define WSIN 323
#define WTAN 324 #define WCOS 324
#define WASIN 325 #define WTAN 325
#define WACOS 326 #define WASIN 326
#define WATAN 327 #define WACOS 327
#define WSINH 328 #define WATAN 328
#define WCOSH 329 #define WSINH 329
#define WTANH 330 #define WCOSH 330
#define WASINH 331 #define WTANH 331
#define WACOSH 332 #define WASINH 332
#define WATANH 333 #define WACOSH 333
#define WCOT 334 #define WATANH 334
#define WACOT 335 #define WCOT 335
#define WCOTH 336 #define WACOT 336
#define WACOTH 337 #define WCOTH 337
#define WRAND 338 #define WACOTH 338
#define WIRAND 339 #define WRAND 339
#define WFACT 340 #define WIRAND 340
#define WCOMP 341 #define WFACT 341
#define WSEC 342 #define WCOMP 342
#define WCSC 343 #define WSEC 343
#define WASEC 344 #define WCSC 344
#define WACSC 345 #define WASEC 345
#define WSECH 346 #define WACSC 346
#define WCSCH 347 #define WSECH 347
#define WASECH 348 #define WCSCH 348
#define WACSCH 349 #define WASECH 349
#define WEINT 350 #define WACSCH 350
#define WGAMMA 351 #define WEINT 351
#define WLNGAMMA 352 #define WGAMMA 352
#define WZETA 353 #define WLNGAMMA 353
#define WSINC 354 #define WZETA 354
#define NUMBER 355 #define WSINC 355
#define VARIABLE 356 #define NUMBER 356
#define STRING 357 #define VARIABLE 357
#define OPEN_CMD 358 #define STRING 358
#define SAVE_CMD 359 #define OPEN_CMD 359
#define ASSIGNMENT 360 #define SAVE_CMD 360
#define IDSEP_CMD 361 #define ASSIGNMENT 361
#define DSEP_CMD 362 #define IDSEP_CMD 362
#define ITSEP_CMD 363 #define DSEP_CMD 363
#define TSEP_CMD 364 #define ITSEP_CMD 364
#define WNEG 365 #define TSEP_CMD 365
#define WNEG 366
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{ {
#line 56 "../../../svn/src/common/parser.y" /* yacc.c:355 */
/* Line 293 of yacc.c */
#line 56 "parser.y"
/* the types that we use in the tokens */ /* the types that we use in the tokens */
enum functions function; enum functions function;
enum operations operation; enum operations operation;
Number number; Number number;
int integer; long integer;
enum commands cmd; enum commands cmd;
char * variable; char * variable;
char character; char character;
struct conv_req conver; struct conv_req conver;
/* Line 293 of yacc.c */ #line 390 "../../../svn/src/common/parser.c" /* yacc.c:355 */
#line 392 "../../../svn/src/common/parser.c" };
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_DECLARED 1
#endif #endif
extern YYSTYPE yylval;
int yyparse (void);
#endif /* !YY_YY__SVN_SRC_COMMON_PARSER_H_INCLUDED */
/* Copy the second part of user declarations. */ /* Copy the second part of user declarations. */
/* Line 343 of yacc.c */ #line 405 "../../../svn/src/common/parser.c" /* yacc.c:358 */
#line 404 "../../../svn/src/common/parser.c"
#ifdef short #ifdef short
# undef short # undef short
#endif #endif
#ifdef YYTYPE_UINT8 #ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8; typedef YYTYPE_UINT8 yytype_uint8;
#else #else
typedef unsigned char yytype_uint8; typedef unsigned char yytype_uint8;
#endif #endif
#ifdef YYTYPE_INT8 #ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8; typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else #else
typedef short int yytype_int8; typedef signed char yytype_int8;
#endif #endif
#ifdef YYTYPE_UINT16 #ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16; typedef YYTYPE_UINT16 yytype_uint16;
#else #else
typedef unsigned short int yytype_uint16; typedef unsigned short int yytype_uint16;
#endif #endif
#ifdef YYTYPE_INT16 #ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16; typedef YYTYPE_INT16 yytype_int16;
#else #else
typedef short int yytype_int16; typedef short int yytype_int16;
#endif #endif
#ifndef YYSIZE_T #ifndef YYSIZE_T
# ifdef __SIZE_TYPE__ # ifdef __SIZE_TYPE__
# define YYSIZE_T __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__
# elif defined size_t # elif defined size_t
# define YYSIZE_T size_t # define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ # elif ! defined YYSIZE_T
|| defined __cplusplus || defined _MSC_VER)
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t # define YYSIZE_T size_t
# else # else
# define YYSIZE_T unsigned int # define YYSIZE_T unsigned int
# endif # endif
#endif #endif
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_ #ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS # if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS # if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid) # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
# endif # endif
# endif # endif
# ifndef YY_ # ifndef YY_
# define YY_(msgid) msgid # define YY_(Msgid) Msgid
# endif
#endif
#ifndef YY_ATTRIBUTE
# if (defined __GNUC__ \
&& (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
|| defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
# else
# define YY_ATTRIBUTE(Spec) /* empty */
# endif
#endif
#ifndef YY_ATTRIBUTE_PURE
# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
#endif
#ifndef YY_ATTRIBUTE_UNUSED
# 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
#endif #endif
/* Suppress unused-variable warnings by "using" E. */ /* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__ #if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e)) # define YYUSE(E) ((void) (E))
#else #else
# define YYUSE(e) /* empty */ # define YYUSE(E) /* empty */
#endif #endif
/* Identity function, used to suppress warnings about constant conditions. */ #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
#ifndef lint /* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YYID(n) (n) # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
#else _Pragma ("GCC diagnostic push") \
#if (defined __STDC__ || defined __C99__FUNC__ \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
|| defined __cplusplus || defined _MSC_VER) _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
static int # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
YYID (int yyi) _Pragma ("GCC diagnostic pop")
#else #else
static int # define YY_INITIAL_VALUE(Value) Value
YYID (yyi)
int yyi;
#endif #endif
{ #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
return yyi; # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
} # define YY_IGNORE_MAYBE_UNINITIALIZED_END
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif #endif
#if ! defined yyoverflow || YYERROR_VERBOSE #if ! defined yyoverflow || YYERROR_VERBOSE
/* The parser invokes alloca or malloc; define the necessary symbols. */ /* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA # ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA
# ifdef __GNUC__ # ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca # define YYSTACK_ALLOC __builtin_alloca
# elif defined __BUILTIN_VA_ARG_INCR # elif defined __BUILTIN_VA_ARG_INCR
# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
# elif defined _AIX # elif defined _AIX
# define YYSTACK_ALLOC __alloca # define YYSTACK_ALLOC __alloca
# elif defined _MSC_VER # elif defined _MSC_VER
# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
# define alloca _alloca # define alloca _alloca
# else # else
# define YYSTACK_ALLOC alloca # define YYSTACK_ALLOC alloca
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || de # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
fined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS # ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0 # define EXIT_SUCCESS 0
# endif # endif
# endif # endif
# endif # endif
# endif # endif
# endif # endif
# ifdef YYSTACK_ALLOC # ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */ /* Pacify GCC's 'empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# ifndef YYSTACK_ALLOC_MAXIMUM # ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack, /* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes. So we cannot safely and a page size can be as small as 4096 bytes. So we cannot safely
invoke alloca (N) if N exceeds 4096. Use a slightly smaller number invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
to allow for a few compiler-allocated temporary stack slots. */ to allow for a few compiler-allocated temporary stack slots. */
# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
# endif # endif
# else # else
# define YYSTACK_ALLOC YYMALLOC # define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE # define YYSTACK_FREE YYFREE
# ifndef YYSTACK_ALLOC_MAXIMUM # ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif # endif
# if (defined __cplusplus && ! defined EXIT_SUCCESS \ # if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \ && ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free))) && (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef EXIT_SUCCESS # ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0 # define EXIT_SUCCESS 0
# endif # endif
# endif # endif
# ifndef YYMALLOC # ifndef YYMALLOC
# define YYMALLOC malloc # define YYMALLOC malloc
# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || define # if ! defined malloc && ! defined EXIT_SUCCESS
d __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif # endif
# endif # endif
# ifndef YYFREE # ifndef YYFREE
# define YYFREE free # define YYFREE free
# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined # if ! defined free && ! defined EXIT_SUCCESS
__C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */ void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif # endif
# endif # endif
# endif # endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
#if (! defined yyoverflow \ #if (! defined yyoverflow \
&& (! defined __cplusplus \ && (! defined __cplusplus \
|| (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */ /* A type that is properly aligned for any stack member. */
union yyalloc union yyalloc
{ {
yytype_int16 yyss_alloc; yytype_int16 yyss_alloc;
YYSTYPE yyvs_alloc; YYSTYPE yyvs_alloc;
}; };
/* The size of the maximum gap between one aligned stack and the next. */ /* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
skipping to change at line 573 skipping to change at line 603
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM) + YYSTACK_GAP_MAXIMUM)
# define YYCOPY_NEEDED 1 # define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The /* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next stack. Advance YYPTR to a properly aligned location for the next
stack. */ stack. */
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \ do \
{ \ { \
YYSIZE_T yynewbytes; \ YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \ Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \ yyptr += yynewbytes / sizeof (*yyptr); \
} \ } \
while (YYID (0)) while (0)
#endif #endif
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO. The source and destination do /* Copy COUNT objects from SRC to DST. The source and destination do
not overlap. */ not overlap. */
# ifndef YYCOPY # ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__ # if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \ # define YYCOPY(Dst, Src, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From))) __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
# else # else
# define YYCOPY(To, From, Count) \ # define YYCOPY(Dst, Src, Count) \
do \ do \
{ \ { \
YYSIZE_T yyi; \ YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \ for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \ (Dst)[yyi] = (Src)[yyi]; \
} \ } \
while (YYID (0)) while (0)
# endif # endif
# endif # endif
#endif /* !YYCOPY_NEEDED */ #endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */ /* YYFINAL -- State number of the termination state. */
#define YYFINAL 110 #define YYFINAL 111
/* YYLAST -- Last index in YYTABLE. */ /* YYLAST -- Last index in YYTABLE. */
#define YYLAST 995 #define YYLAST 997
/* YYNTOKENS -- Number of terminals. */ /* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 111 #define YYNTOKENS 112
/* YYNNTS -- Number of nonterminals. */ /* YYNNTS -- Number of nonterminals. */
#define YYNNTS 17 #define YYNNTS 17
/* YYNRULES -- Number of rules. */ /* YYNRULES -- Number of rules. */
#define YYNRULES 132 #define YYNRULES 133
/* YYNRULES -- Number of states. */ /* YYNSTATES -- Number of states. */
#define YYNSTATES 175 #define YYNSTATES 176
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2 #define YYUNDEFTOK 2
#define YYMAXUTOK 365 #define YYMAXUTOK 366
#define YYTRANSLATE(YYX) \ #define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, without out-of-bounds checking. */
static const yytype_uint8 yytranslate[] = static const yytype_uint8 yytranslate[] =
{ {
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 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,
skipping to change at line 666 skipping to change at line 698
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110 105, 106, 107, 108, 109, 110, 111
}; };
#if YYDEBUG #if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 5, 6, 8, 11, 14, 17, 20,
22, 25, 27, 29, 31, 33, 35, 37, 39, 41,
43, 45, 47, 49, 51, 53, 55, 57, 59, 61,
63, 65, 67, 69, 71, 73, 75, 77, 79, 81,
84, 86, 88, 89, 93, 97, 102, 107, 111, 115,
119, 123, 127, 131, 135, 139, 143, 147, 151, 155,
159, 163, 167, 171, 175, 179, 181, 183, 185, 187,
189, 191, 193, 195, 197, 199, 201, 203, 205, 207,
209, 211, 213, 215, 217, 219, 221, 223, 225, 227,
229, 231, 233, 235, 237, 239, 241, 243, 245, 247,
249, 251, 253, 255, 257, 259, 261, 263, 265, 267,
269, 271, 274, 277, 280, 282, 284, 285, 287, 291,
294, 295, 298, 304, 308, 312, 316, 318, 320, 322,
325, 328, 331
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
112, 0, -1, 113, -1, -1, 114, -1, 114, 113,
-1, 119, 115, -1, 118, 115, -1, 116, 115, -1,
115, -1, 1, 115, -1, 26, -1, 5, -1, 4,
-1, 6, -1, 3, -1, 107, -1, 106, -1, 109,
-1, 108, -1, 18, -1, 16, -1, 17, -1, 8,
-1, 9, -1, 7, -1, 22, -1, 20, -1, 11,
-1, 19, -1, 21, -1, 15, -1, 10, -1, 14,
-1, 103, -1, 104, -1, 23, -1, 25, -1, 24,
-1, 12, 101, -1, 13, -1, 102, -1, -1, 105,
119, 117, -1, 105, 102, 117, -1, 100, 38, 119,
117, -1, 100, 38, 102, 117, -1, 119, 34, 119,
-1, 119, 33, 119, -1, 119, 43, 119, -1, 119,
42, 119, -1, 119, 52, 119, -1, 119, 54, 119,
-1, 119, 53, 119, -1, 119, 44, 119, -1, 119,
45, 119, -1, 119, 46, 119, -1, 119, 47, 119,
-1, 119, 48, 119, -1, 119, 49, 119, -1, 119,
50, 119, -1, 119, 51, 119, -1, 119, 35, 119,
-1, 119, 36, 119, -1, 119, 37, 119, -1, 123,
-1, 67, -1, 68, -1, 69, -1, 79, -1, 87,
-1, 88, -1, 70, -1, 71, -1, 72, -1, 80,
-1, 89, -1, 90, -1, 73, -1, 74, -1, 75,
-1, 81, -1, 91, -1, 92, -1, 76, -1, 77,
-1, 78, -1, 82, -1, 93, -1, 94, -1, 57,
-1, 65, -1, 58, -1, 59, -1, 60, -1, 61,
-1, 40, -1, 63, -1, 62, -1, 64, -1, 83,
-1, 84, -1, 55, -1, 56, -1, 85, -1, 86,
-1, 95, -1, 96, -1, 97, -1, 98, -1, 99,
-1, 27, 28, -1, 29, 30, -1, 31, 32, -1,
34, -1, 33, -1, -1, 125, -1, 122, 123, 124,
-1, 125, 124, -1, -1, 127, 124, -1, 127, 39,
122, 125, 124, -1, 27, 119, 28, -1, 29, 119,
30, -1, 31, 119, 32, -1, 121, -1, 126, -1,
100, -1, 127, 66, -1, 127, 41, -1, 120, 126,
-1, 120, 122, 127, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] = static const yytype_uint16 yyrline[] =
{ {
0, 108, 108, 109, 112, 113, 116, 135, 141, 158, 0, 109, 109, 110, 113, 114, 117, 136, 142, 159,
168, 182, 185, 190, 195, 200, 205, 214, 223, 232, 169, 183, 186, 190, 194, 198, 202, 211, 221, 231,
241, 248, 255, 263, 288, 293, 298, 306, 316, 320, 241, 252, 257, 262, 268, 272, 276, 284, 292, 302,
338, 356, 362, 368, 374, 392, 400, 410, 433, 444, 306, 323, 335, 340, 345, 349, 367, 375, 385, 408,
454, 463, 466, 471, 501, 525, 533, 543, 544, 545, 419, 429, 437, 440, 445, 468, 490, 498, 508, 509,
546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
556, 557, 558, 559, 560, 561, 564, 565, 566, 567, 520, 521, 522, 523, 524, 525, 526, 529, 530, 531,
568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541,
578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561,
598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571,
608, 611, 612, 613, 616, 617, 618, 621, 622, 629, 572, 573, 576, 577, 578, 581, 582, 583, 586, 587,
634, 637, 641, 650, 652, 654, 656, 659, 661, 662, 594, 599, 602, 606, 615, 617, 619, 621, 624, 626,
668, 669, 675 627, 633, 634, 640
}; };
#endif #endif
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE #if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] = static const char *const yytname[] =
{ {
"$end", "error", "$undefined", "DEC_CMD", "OCT_CMD", "HEX_CMD", "$end", "error", "$undefined", "DEC_CMD", "OCT_CMD", "HEX_CMD",
"BIN_CMD", "GUARD_CMD", "DISPLAY_PREFS_CMD", "RADIAN_CMD", "BIN_CMD", "DISPLAY_PREFS_CMD", "RADIAN_CMD", "REMEMBER_CMD",
"REMEMBER_CMD", "LISTVAR_CMD", "STORE_CMD", "CMOD_CMD", "PRINT_HELP_CMD", "LISTVAR_CMD", "STORE_CMD", "CMOD_CMD", "PRINT_HELP_CMD", "PREFIX_CMD",
"PREFIX_CMD", "INT_CMD", "VERBOSE_CMD", "DELIM_CMD", "ENG_CMD", "INT_CMD", "VERBOSE_CMD", "DELIM_CMD", "ASSERT_CMD", "ENG_CMD",
"HLIMIT_CMD", "ROUNDING_INDICATION_CMD", "PRECISION_CMD", "BITS_CMD", "HLIMIT_CMD", "ROUNDING_INDICATION_CMD", "PRECISION_CMD", "BITS_CMD",
"BASE_CMD", "CONVERT_CMD", "EOLN", "OPEN_PARENTHESES", "BASE_CMD", "GUARD_CMD", "CONVERT_CMD", "EOLN", "OPEN_PARENTHESES",
"CLOSE_PARENTHESES", "OPEN_BRACE", "CLOSE_BRACE", "OPEN_BRACKET", "CLOSE_PARENTHESES", "OPEN_BRACE", "CLOSE_BRACE", "OPEN_BRACKET",
"CLOSE_BRACKET", "WPLUS", "WMINUS", "WMULT", "WDIV", "WMOD", "CLOSE_BRACKET", "WPLUS", "WMINUS", "WMULT", "WDIV", "WMOD",
"EQUALS_SIGN", "WPOW", "WEXP", "WSQR", "WOR", "WAND", "WEQUAL", "EQUALS_SIGN", "WPOW", "WEXP", "WSQR", "WOR", "WAND", "WEQUAL",
"WNEQUAL", "WGT", "WLT", "WGEQ", "WLEQ", "WLSHFT", "WRSHFT", "WBOR", "WNEQUAL", "WGT", "WLT", "WGEQ", "WLEQ", "WLSHFT", "WRSHFT", "WBOR",
"WBAND", "WBXOR", "WBNOT", "WNOT", "WLOG", "WLN", "WROUND", "WABS", "WBAND", "WBXOR", "WBNOT", "WNOT", "WLOG", "WLN", "WROUND", "WABS",
"WSQRT", "WCEIL", "WFLOOR", "WCBRT", "WLOGTWO", "WBANG", "WSIN", "WCOS", "WSQRT", "WCEIL", "WFLOOR", "WCBRT", "WLOGTWO", "WBANG", "WSIN", "WCOS",
"WTAN", "WASIN", "WACOS", "WATAN", "WSINH", "WCOSH", "WTANH", "WASINH", "WTAN", "WASIN", "WACOS", "WATAN", "WSINH", "WCOSH", "WTANH", "WASINH",
"WACOSH", "WATANH", "WCOT", "WACOT", "WCOTH", "WACOTH", "WRAND", "WACOSH", "WATANH", "WCOT", "WACOT", "WCOTH", "WACOTH", "WRAND",
"WIRAND", "WFACT", "WCOMP", "WSEC", "WCSC", "WASEC", "WACSC", "WSECH", "WIRAND", "WFACT", "WCOMP", "WSEC", "WCSC", "WASEC", "WACSC", "WSECH",
"WCSCH", "WASECH", "WACSCH", "WEINT", "WGAMMA", "WLNGAMMA", "WZETA", "WCSCH", "WASECH", "WACSCH", "WEINT", "WGAMMA", "WLNGAMMA", "WZETA",
"WSINC", "NUMBER", "VARIABLE", "STRING", "OPEN_CMD", "SAVE_CMD", "WSINC", "NUMBER", "VARIABLE", "STRING", "OPEN_CMD", "SAVE_CMD",
"ASSIGNMENT", "IDSEP_CMD", "DSEP_CMD", "ITSEP_CMD", "TSEP_CMD", "WNEG", "ASSIGNMENT", "IDSEP_CMD", "DSEP_CMD", "ITSEP_CMD", "TSEP_CMD", "WNEG",
"$accept", "input", "lines", "oneline", "eoln", "command", "$accept", "input", "lines", "oneline", "eoln", "command",
"optionalstring", "assignment", "exp", "func", "nullexp", "sign", "optionalstring", "assignment", "exp", "func", "nullexp", "sign",
"exp_l2", "oval", "exp_l3", "parenthated", "capsule", 0 "exp_l2", "oval", "exp_l3", "parenthated", "capsule", YY_NULLPTR
}; };
#endif #endif
# ifdef YYPRINT # ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to /* YYTOKNUM[NUM] -- (External) token number corresponding to the
token YYLEX-NUM. */ (internal) symbol number NUM (which must be that of a token). */
static const yytype_uint16 yytoknum[] = static const yytype_uint16 yytoknum[] =
{ {
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365 365, 366
}; };
# endif # endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ #define YYPACT_NINF -91
static const yytype_uint8 yyr1[] =
{
0, 111, 112, 112, 113, 113, 114, 114, 114, 114,
114, 115, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 117, 117, 118, 118, 118, 118, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 120, 120, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
120, 121, 121, 121, 122, 122, 122, 123, 123, 124,
124, 125, 125, 126, 126, 126, 126, 127, 127, 127,
127, 127, 127
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ #define yypact_value_is_default(Yystate) \
static const yytype_uint8 yyr2[] = (!!((Yystate) == (-91)))
#define YYTABLE_NINF -5
#define yytable_value_is_error(Yytable_value) \
0
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] =
{ {
0, 2, 1, 0, 1, 2, 2, 2, 2, 1, 0, 4, -91, -91, -91, -91, -91, -91, -91, -91,
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, -91, -91, -91, -91, -91, -91, -91, -91, -91,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -91, -91, -91, -91, -91, -91, -91, 399, 473, 547,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
1, 1, 0, 3, 3, 4, 4, 3, 3, 3, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
3, 3, 3, 3, 3, 1, 1, 1, 1, 1, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -91, -91, -91, -91, -91, -91, -91, -2, -91, -91,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 249, -91, -91, -91, -91, 39, -91, 111, -91, 4,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 845, 8, -91, 695, -91, -91, -91, 621, -91,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -91, -91, -91, 872, -91, 897, -91, 920, 323, -57,
1, 2, 2, 2, 1, 1, 0, 1, 3, 2, 768, -91, -91, -91, -91, 695, 695, 695, 695, 695,
0, 2, 5, 3, 3, 3, 1, 1, 1, 2, 695, 695, 695, 695, 695, 695, 695, 695, 695, 695,
2, 2, 3 695, 695, 695, -91, 769, -91, 769, 10, -91, -91,
-91, 769, -91, -91, -91, -57, 768, -91, -91, -91,
236, 236, -7, -7, -7, 620, 620, 188, 188, 188,
188, 188, 188, -7, -7, 620, 620, 942, -13, -91,
769, -91, -91, -91, 769, -91
}; };
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE doesn't specify something else to do. Zero Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */ means the default is an error. */
static const yytype_uint8 yydefact[] = static const yytype_uint8 yydefact[] =
{ {
0, 0, 15, 13, 12, 14, 25, 23, 24, 32, 0, 0, 15, 13, 12, 14, 24, 25, 33, 29,
28, 0, 40, 33, 31, 21, 22, 20, 29, 27, 0, 41, 34, 32, 22, 23, 21, 16, 30, 28,
30, 26, 36, 38, 37, 11, 0, 0, 0, 115, 31, 27, 37, 39, 26, 38, 11, 0, 0, 0,
114, 96, 102, 103, 90, 92, 93, 94, 95, 98, 116, 115, 97, 103, 104, 91, 93, 94, 95, 96,
97, 99, 91, 66, 67, 68, 72, 73, 74, 78, 99, 98, 100, 92, 67, 68, 69, 73, 74, 75,
79, 80, 84, 85, 86, 69, 75, 81, 87, 100, 79, 80, 81, 85, 86, 87, 70, 76, 82, 88,
101, 104, 105, 70, 71, 76, 77, 82, 83, 88, 101, 102, 105, 106, 71, 72, 77, 78, 83, 84,
89, 106, 107, 108, 109, 110, 128, 34, 35, 0, 89, 90, 107, 108, 109, 110, 111, 129, 35, 36,
17, 16, 19, 18, 0, 2, 0, 9, 0, 0, 0, 18, 17, 20, 19, 0, 2, 0, 9, 0,
0, 116, 126, 0, 65, 117, 127, 120, 10, 39, 0, 0, 117, 127, 0, 66, 118, 128, 121, 10,
111, 128, 0, 112, 0, 113, 0, 0, 42, 42, 40, 112, 129, 0, 113, 0, 114, 0, 0, 43,
1, 5, 8, 7, 0, 0, 0, 0, 0, 0, 43, 1, 5, 8, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 6, 0, 131, 120, 116, 130, 129, 121, 0, 0, 0, 6, 0, 132, 121, 117, 131, 130,
120, 123, 124, 125, 42, 42, 41, 44, 43, 48, 122, 121, 124, 125, 126, 43, 43, 42, 45, 44,
47, 62, 63, 64, 50, 49, 54, 55, 56, 57, 49, 48, 63, 64, 65, 51, 50, 55, 56, 57,
58, 59, 60, 61, 51, 53, 52, 132, 118, 0, 58, 59, 60, 61, 62, 52, 54, 53, 133, 119,
119, 46, 45, 120, 122 0, 120, 47, 46, 121, 123
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 84, 85, 86, 87, 88, 147, 89, 90, 91,
92, 93, 94, 139, 95, 96, 97
}; };
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPGOTO[NTERM-NUM]. */
STATE-NUM. */ static const yytype_int16 yypgoto[] =
#define YYPACT_NINF -90
static const yytype_int16 yypact[] =
{ {
0, 4, -90, -90, -90, -90, -90, -90, -90, -90, -91, -91, -38, -91, 66, -91, 3, -91, 133, -91,
-90, -69, -90, -90, -90, -90, -90, -90, -90, -90, -91, -90, -44, 93, 130, -41, -82
-90, -90, -90, -90, -90, -90, 398, 472, 546, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -2, -90, -90, 248,
-90, -90, -90, -90, 38, -90, 110, -90, 4, 4,
844, 8, -90, 694, -90, -90, -90, 620, -90, -90,
-90, -90, 871, -90, 896, -90, 919, 322, -57, 767,
-90, -90, -90, -90, 694, 694, 694, 694, 694, 694,
694, 694, 694, 694, 694, 694, 694, 694, 694, 694,
694, 694, -90, 768, -90, 768, 10, -90, -90, -90,
768, -90, -90, -90, -57, 767, -90, -90, -90, 235,
235, -8, -8, -8, 619, 619, 187, 187, 187, 187,
187, 187, -8, -8, 619, 619, 941, -13, -90, 768,
-90, -90, -90, 768, -90
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] = static const yytype_int16 yydefgoto[] =
{ {
-90, -90, -38, -90, 65, -90, 3, -90, 132, -90, -1, 85, 86, 87, 88, 89, 148, 90, 91, 92,
-90, -89, -44, 92, 129, -41, -82 93, 94, 95, 140, 96, 97, 98
}; };
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -5
static const yytype_int16 yytable[] = static const yytype_int16 yytable[] =
{ {
-3, 1, 133, 2, 3, 4, 5, 6, 7, 8, -3, 1, 134, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 137, 27,
25, 28, 99, 29, 30, 26, 107, 27, 110, 28,
31, 29, 30, 29, 30, 146, 131, 169, 111, 135,
134, 167, 0, 138, 0, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 98, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
76, 0, 0, 77, 78, 79, 80, 81, 82, 83,
-4, 1, 148, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 0, 27, 19, 20, 21, 22, 23, 24, 25, 26, 27, 138,
0, 28, 0, 29, 30, 0, 0, 171, 172, 0, 28, 26, 29, 100, 30, 31, 27, 108, 28, 111,
31, 0, 0, 112, 113, 132, 0, 0, 102, 104, 29, 32, 30, 31, 30, 31, 147, 170, 132, 112,
106, 0, 0, 0, 0, 32, 33, 34, 35, 36, 136, 135, 168, 0, 139, 0, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 0, 43, 44, 45, 37, 38, 39, 40, 41, 42, 43, 99, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
76, 109, 0, 77, 78, 79, 80, 81, 82, 83, 76, 77, 0, 0, 78, 79, 80, 81, 82, 83,
114, 115, 116, 117, 118, 0, 140, 168, 0, 0, 84, -4, 1, 149, 2, 3, 4, 5, 6, 7,
0, 0, 170, 0, 0, 0, 0, 127, 128, 145, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
0, 131, 0, 0, 0, 0, 149, 150, 151, 152, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 0, 28, 0, 29, 0, 30, 31, 0, 172, 173,
163, 164, 165, 166, 140, 174, 0, 0, 0, 140, 0, 0, 32, 0, 0, 113, 114, 133, 0, 0,
116, 117, 118, 0, 0, 26, 0, 27, 0, 28, 103, 105, 107, 0, 0, 0, 0, 33, 34, 35,
0, 29, 30, 0, 0, 127, 128, 0, 31, 131, 36, 37, 38, 39, 40, 41, 42, 43, 0, 44,
0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
0, 0, 140, 32, 33, 34, 35, 36, 37, 38, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
39, 40, 41, 42, 0, 43, 44, 45, 46, 47, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 75, 76, 77, 110, 0, 78, 79, 80, 81, 82,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 83, 84, 115, 116, 117, 118, 119, 0, 141, 169,
68, 69, 70, 71, 72, 73, 74, 75, 101, 26, 0, 0, 0, 0, 171, 0, 0, 0, 0, 128,
108, 27, 0, 28, 0, 29, 30, 0, 0, 0, 129, 146, 0, 132, 0, 0, 0, 0, 150, 151,
0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 162, 163, 164, 165, 166, 167, 141, 175, 0, 0,
35, 36, 37, 38, 39, 40, 41, 42, 0, 43, 0, 141, 117, 118, 119, 0, 0, 27, 0, 28,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 29, 0, 30, 31, 0, 0, 128, 129, 0,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 32, 132, 0, 0, 0, 0, 0, 0, 0, 0,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 174, 0, 0, 0, 141, 33, 34, 35, 36, 37,
74, 75, 101, 0, 144, 26, 100, 27, 0, 28, 38, 39, 40, 41, 42, 43, 0, 44, 45, 46,
0, 29, 30, 0, 0, 0, 0, 0, 31, 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
102, 27, 109, 28, 0, 29, 0, 30, 31, 0,
0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
0, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 102, 0, 145, 27, 101, 28,
0, 29, 0, 30, 31, 0, 0, 0, 0, 0,
32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 0, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
102, 27, 0, 28, 104, 29, 0, 30, 31, 0,
0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
0, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 102, 27, 0, 28, 0, 29,
106, 30, 31, 0, 0, 0, 0, 0, 32, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 32, 33, 34, 35, 36, 37, 38, 0, 0, 0, 33, 34, 35, 36, 37, 38, 39,
39, 40, 41, 42, 0, 43, 44, 45, 46, 47, 40, 41, 42, 43, 0, 44, 45, 46, 47, 48,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
68, 69, 70, 71, 72, 73, 74, 75, 101, 26, 69, 70, 71, 72, 73, 74, 75, 76, 102, 27,
0, 27, 103, 28, 0, 29, 30, 0, 0, 0, 0, 28, 0, 29, 115, 116, 117, 118, 119, 0,
0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 137, 32, 138, 0, 122, 123, 124, 125, 126,
0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 127, 128, 129, 0, 0, 132, 0, 33, 34, 35,
35, 36, 37, 38, 39, 40, 41, 42, 0, 43, 36, 37, 38, 39, 40, 41, 42, 43, 139, 44,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
74, 75, 101, 26, 0, 27, 0, 28, 105, 29, 75, 76, 102, 27, 0, 28, 0, 29, 0, 30,
30, 0, 0, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 0, 0, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 33, 34, 35, 36, 37, 38, 39, 40, 41,
41, 42, 0, 43, 44, 45, 46, 47, 48, 49, 42, 43, 0, 44, 45, 46, 47, 48, 49, 50,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
70, 71, 72, 73, 74, 75, 101, 26, 0, 27, 71, 72, 73, 74, 75, 76, 102, 27, 0, 28,
0, 28, 114, 115, 116, 117, 118, 0, 0, 136, 0, 29, 115, 116, 117, 118, 119, 0, 0, 0,
31, 137, 0, 121, 122, 123, 124, 125, 126, 127, 32, 120, 121, 122, 123, 124, 125, 126, 127, 128,
128, 0, 0, 131, 0, 32, 33, 34, 35, 36, 129, 130, 131, 132, 0, 33, 34, 35, 36, 37,
37, 38, 39, 40, 41, 42, 138, 43, 44, 45, 38, 39, 40, 41, 42, 43, 0, 44, 45, 46,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
101, 26, 0, 27, 0, 28, 0, 29, 30, 0, 102, 147, 26, 0, 0, 0, 0, 0, 0, 115,
0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 116, 117, 118, 119, 0, 0, 0, 0, 120, 121,
0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 132, 142, 0, 0, 0, 0, 115, 116, 117, 118,
0, 43, 44, 45, 46, 47, 48, 49, 50, 51, 119, 0, 0, 0, 0, 120, 121, 122, 123, 124,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 125, 126, 127, 128, 129, 130, 131, 132, 143, 0,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 115, 116, 117, 118, 119, 0, 0, 0, 0,
72, 73, 74, 75, 101, 26, 0, 27, 0, 28,
114, 115, 116, 117, 118, 0, 0, 0, 31, 119,
120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
130, 131, 0, 32, 33, 34, 35, 36, 37, 38, 130, 131, 132, 144, 115, 116, 117, 118, 119, 0,
39, 40, 41, 42, 0, 43, 44, 45, 46, 47, 0, 0, 0, 120, 121, 122, 123, 124, 125, 126,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 127, 128, 129, 130, 131, 132, 115, 116, 117, 118,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 119, 0, 0, 0, 0, 120, 121, 122, 123, 124,
68, 69, 70, 71, 72, 73, 74, 75, 101, 146, 125, 126, 127, 128, 129, 130, 131, 132
25, 0, 0, 0, 0, 0, 0, 114, 115, 116,
117, 118, 0, 0, 0, 0, 119, 120, 121, 122,
123, 124, 125, 126, 127, 128, 129, 130, 131, 141,
0, 0, 0, 0, 114, 115, 116, 117, 118, 0,
0, 0, 0, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131, 142, 0, 0, 114,
115, 116, 117, 118, 0, 0, 0, 0, 119, 120,
121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
131, 143, 114, 115, 116, 117, 118, 0, 0, 0,
0, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 114, 115, 116, 117, 118, 0,
0, 0, 0, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131
}; };
#define yypact_value_is_default(yystate) \
((yystate) == (-90))
#define yytable_value_is_error(yytable_value) \
YYID (0)
static const yytype_int16 yycheck[] = static const yytype_int16 yycheck[] =
{ {
0, 1, 91, 3, 4, 5, 6, 7, 8, 9, 0, 1, 92, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 41, 29,
26, 31, 101, 33, 34, 27, 38, 29, 0, 31,
40, 33, 34, 33, 34, 102, 54, 136, 86, 93,
91, 133, -1, 66, -1, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 1, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, -1, -1, 103, 104, 105, 106, 107, 108, 109,
0, 1, 109, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, -1, 29, 20, 21, 22, 23, 24, 25, 26, 27, 28, 42,
-1, 31, -1, 33, 34, -1, -1, 144, 145, -1, 30, 27, 32, 102, 34, 35, 28, 39, 30, 0,
40, -1, -1, 88, 89, 90, -1, -1, 26, 27, 32, 41, 34, 35, 34, 35, 103, 137, 55, 87,
28, -1, -1, -1, -1, 55, 56, 57, 58, 59, 94, 92, 134, -1, 67, -1, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 60, 61, 62, 63, 64, 65, 66, 1, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, 79, -1, 103, 104, 105, 106, 107, 108, 109, 100, 101, -1, -1, 104, 105, 106, 107, 108, 109,
33, 34, 35, 36, 37, -1, 97, 135, -1, -1, 110, 0, 1, 110, 3, 4, 5, 6, 7, 8,
-1, -1, 140, -1, -1, -1, -1, 50, 51, 107, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-1, 54, -1, -1, -1, -1, 114, 115, 116, 117, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
118, 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, 30, -1, 32, -1, 34, 35, -1, 145, 146,
128, 129, 130, 131, 135, 173, -1, -1, -1, 140, -1, -1, 41, -1, -1, 89, 90, 91, -1, -1,
35, 36, 37, -1, -1, 27, -1, 29, -1, 31, 27, 28, 29, -1, -1, -1, -1, 56, 57, 58,
-1, 33, 34, -1, -1, 50, 51, -1, 40, 54, 59, 60, 61, 62, 63, 64, 65, 66, -1, 68,
-1, -1, -1, -1, -1, -1, -1, -1, 169, -1, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
-1, -1, 173, 55, 56, 57, 58, 59, 60, 61, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
62, 63, 64, 65, -1, 67, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 99, 100, 101, 80, -1, 104, 105, 106, 107, 108,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 109, 110, 34, 35, 36, 37, 38, -1, 98, 136,
92, 93, 94, 95, 96, 97, 98, 99, 100, 27, -1, -1, -1, -1, 141, -1, -1, -1, -1, 51,
102, 29, -1, 31, -1, 33, 34, -1, -1, -1, 52, 108, -1, 55, -1, -1, -1, -1, 115, 116,
-1, -1, 40, -1, -1, -1, -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
-1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 127, 128, 129, 130, 131, 132, 136, 174, -1, -1,
58, 59, 60, 61, 62, 63, 64, 65, -1, 67, -1, 141, 36, 37, 38, -1, -1, 28, -1, 30,
68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, 32, -1, 34, 35, -1, -1, 51, 52, -1,
78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 41, 55, -1, -1, -1, -1, -1, -1, -1, -1,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 170, -1, -1, -1, 174, 56, 57, 58, 59, 60,
98, 99, 100, -1, 102, 27, 28, 29, -1, 31, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70,
-1, 33, 34, -1, -1, -1, -1, -1, 40, -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
101, 28, 103, 30, -1, 32, -1, 34, 35, -1,
-1, -1, -1, -1, 41, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
-1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, -1, 103, 28, 29, 30,
-1, 32, -1, 34, 35, -1, -1, -1, -1, -1,
41, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, -1, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
101, 28, -1, 30, 31, 32, -1, 34, 35, -1,
-1, -1, -1, -1, 41, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
-1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 28, -1, 30, -1, 32,
33, 34, 35, -1, -1, -1, -1, -1, 41, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 56, 57, 58, 59, 60, 61, 62,
62, 63, 64, 65, -1, 67, 68, 69, 70, 71, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
92, 93, 94, 95, 96, 97, 98, 99, 100, 27, 93, 94, 95, 96, 97, 98, 99, 100, 101, 28,
-1, 29, 30, 31, -1, 33, 34, -1, -1, -1, -1, 30, -1, 32, 34, 35, 36, 37, 38, -1,
-1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, 42, -1, 45, 46, 47, 48, 49,
-1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 50, 51, 52, -1, -1, 55, -1, 56, 57, 58,
58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
98, 99, 100, 27, -1, 29, -1, 31, 32, 33, 99, 100, 101, 28, -1, 30, -1, 32, -1, 34,
34, -1, -1, -1, -1, -1, 40, -1, -1, -1, 35, -1, -1, -1, -1, -1, 41, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 56, 57, 58, 59, 60, 61, 62, 63, 64,
64, 65, -1, 67, 68, 69, 70, 71, 72, 73, 65, 66, -1, 68, 69, 70, 71, 72, 73, 74,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
94, 95, 96, 97, 98, 99, 100, 27, -1, 29, 95, 96, 97, 98, 99, 100, 101, 28, -1, 30,
-1, 31, 33, 34, 35, 36, 37, -1, -1, 39, -1, 32, 34, 35, 36, 37, 38, -1, -1, -1,
40, 41, -1, 44, 45, 46, 47, 48, 49, 50, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51,
51, -1, -1, 54, -1, 55, 56, 57, 58, 59, 52, 53, 54, 55, -1, 56, 57, 58, 59, 60,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
100, 27, -1, 29, -1, 31, -1, 33, 34, -1, 101, 103, 27, -1, -1, -1, -1, -1, -1, 34,
-1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 35, 36, 37, 38, -1, -1, -1, -1, 43, 44,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 55, 29, -1, -1, -1, -1, 34, 35, 36, 37,
-1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 38, -1, -1, -1, -1, 43, 44, 45, 46, 47,
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 48, 49, 50, 51, 52, 53, 54, 55, 31, -1,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 34, 35, 36, 37, 38, -1, -1, -1, -1,
96, 97, 98, 99, 100, 27, -1, 29, -1, 31,
33, 34, 35, 36, 37, -1, -1, -1, 40, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, -1, 55, 56, 57, 58, 59, 60, 61, 53, 54, 55, 33, 34, 35, 36, 37, 38, -1,
62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 43, 44, 45, 46, 47, 48, 49,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 50, 51, 52, 53, 54, 55, 34, 35, 36, 37,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 38, -1, -1, -1, -1, 43, 44, 45, 46, 47,
92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 48, 49, 50, 51, 52, 53, 54, 55
26, -1, -1, -1, -1, -1, -1, 33, 34, 35,
36, 37, -1, -1, -1, -1, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 28,
-1, -1, -1, -1, 33, 34, 35, 36, 37, -1,
-1, -1, -1, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 30, -1, -1, 33,
34, 35, 36, 37, -1, -1, -1, -1, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 32, 33, 34, 35, 36, 37, -1, -1, -1,
-1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 33, 34, 35, 36, 37, -1,
-1, -1, -1, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54
}; };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */ symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] = static const yytype_uint8 yystos[] =
{ {
0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 29, 31, 33, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32,
34, 40, 55, 56, 57, 58, 59, 60, 61, 62, 34, 35, 41, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105,
106, 107, 108, 109, 112, 113, 114, 115, 116, 118, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117,
119, 120, 121, 122, 123, 125, 126, 127, 115, 101, 119, 120, 121, 122, 123, 124, 126, 127, 128, 116,
28, 100, 119, 30, 119, 32, 119, 38, 102, 119, 102, 29, 101, 120, 31, 120, 33, 120, 39, 103,
0, 113, 115, 115, 33, 34, 35, 36, 37, 42, 120, 0, 114, 116, 116, 34, 35, 36, 37, 38,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 115, 122, 126, 123, 39, 41, 66, 124, 53, 54, 55, 116, 123, 127, 124, 40, 42, 67,
125, 28, 30, 32, 102, 119, 102, 117, 117, 119, 125, 126, 29, 31, 33, 103, 120, 103, 118, 118,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
119, 119, 119, 119, 119, 119, 119, 127, 124, 122, 120, 120, 120, 120, 120, 120, 120, 120, 128, 125,
124, 117, 117, 125, 124 123, 125, 118, 118, 126, 125
}; };
#define yyerrok (yyerrstatus = 0) /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
#define yyclearin (yychar = YYEMPTY) static const yytype_uint8 yyr1[] =
#define YYEMPTY (-2) {
#define YYEOF 0 0, 112, 113, 113, 114, 114, 115, 115, 115, 115,
115, 116, 117, 117, 117, 117, 117, 117, 117, 117,
#define YYACCEPT goto yyacceptlab 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
#define YYABORT goto yyabortlab 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
#define YYERROR goto yyerrorlab 117, 117, 118, 118, 119, 119, 119, 119, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
/* Like YYERROR except do call yyerror. This remains here temporarily 120, 120, 120, 120, 120, 120, 120, 121, 121, 121,
to ease the transition to the new meaning of YYERROR, for GCC. 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
Once GCC version 2 has supplanted version 1, this can go. However, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
YYFAIL appears to be in use. Nevertheless, it is formally deprecated 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
in Bison 2.4.2's NEWS entry, where a plan to phase it out is 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
discussed. */ 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
125, 125, 126, 126, 127, 127, 127, 127, 128, 128,
#define YYFAIL goto yyerrlab 128, 128, 128, 128
#if defined YYFAIL };
/* This is here to suppress warnings from the GCC cpp's
-Wunused-macros. Normally we don't worry about that warning, but
some users do, and we want to make it easy for users to remove
YYFAIL uses, which will produce warnings from Bison 2.5. */
#endif
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
#define YYTERROR 1
#define YYERRCODE 256
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#endif
/* This macro is provided for backward compatibility. */ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 0, 1, 2, 2, 2, 2, 1,
2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 1, 1, 0, 3, 3, 4, 4, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 2, 2, 1, 1, 0, 1, 3,
2, 0, 2, 5, 3, 3, 3, 1, 1, 1,
2, 2, 2, 3
};
#ifndef YY_LOCATION_PRINT #define yyerrok (yyerrstatus = 0)
# define YY_LOCATION_PRINT(File, Loc) ((void) 0) #define yyclearin (yychar = YYEMPTY)
#endif #define YYEMPTY (-2)
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
/* YYLEX -- calling `yylex' with the right arguments. */ #define YYRECOVERING() (!!yyerrstatus)
#ifdef YYLEX_PARAM #define YYBACKUP(Token, Value) \
# define YYLEX yylex (YYLEX_PARAM) do \
#else if (yychar == YYEMPTY) \
# define YYLEX yylex () { \
#endif yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
/* Error token number */
#define YYTERROR 1
#define YYERRCODE 256
/* Enable debugging if requested. */ /* Enable debugging if requested. */
#if YYDEBUG #if YYDEBUG
# ifndef YYFPRINTF # ifndef YYFPRINTF
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
# define YYFPRINTF fprintf # define YYFPRINTF fprintf
# endif # endif
# define YYDPRINTF(Args) \ # define YYDPRINTF(Args) \
do { \ do { \
if (yydebug) \ if (yydebug) \
YYFPRINTF Args; \ YYFPRINTF Args; \
} while (YYID (0)) } while (0)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title);
\
yy_symbol_print (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n");
\
} \
} while (YYID (0))
/*--------------------------------. /* This macro is provided for backward compatibility. */
| Print this symbol on YYOUTPUT. | #ifndef YY_LOCATION_PRINT
`--------------------------------*/ # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
/*----------------------------------------.
| Print this symbol's value on YYOUTPUT. |
`----------------------------------------*/
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue p) yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue p)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{ {
FILE *yyo = yyoutput;
YYUSE (yyo);
if (!yyvaluep) if (!yyvaluep)
return; return;
# ifdef YYPRINT # ifdef YYPRINT
if (yytype < YYNTOKENS) if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
YYUSE (yyoutput);
# endif # endif
switch (yytype) YYUSE (yytype);
{
default:
break;
}
} }
/*--------------------------------. /*--------------------------------.
| Print this symbol on YYOUTPUT. | | Print this symbol on YYOUTPUT. |
`--------------------------------*/ `--------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{ {
if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "%s %s (",
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
yy_symbol_value_print (yyoutput, yytype, yyvaluep); yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")"); YYFPRINTF (yyoutput, ")");
} }
/*------------------------------------------------------------------. /*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its | | yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). | | TOP (included). |
`------------------------------------------------------------------*/ `------------------------------------------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
yy_stack_print (yybottom, yytop)
yytype_int16 *yybottom;
yytype_int16 *yytop;
#endif
{ {
YYFPRINTF (stderr, "Stack now"); YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++) for (; yybottom <= yytop; yybottom++)
{ {
int yybot = *yybottom; int yybot = *yybottom;
YYFPRINTF (stderr, " %d", yybot); YYFPRINTF (stderr, " %d", yybot);
} }
YYFPRINTF (stderr, "\n"); YYFPRINTF (stderr, "\n");
} }
# define YY_STACK_PRINT(Bottom, Top) \ # define YY_STACK_PRINT(Bottom, Top) \
do { \ do { \
if (yydebug) \ if (yydebug) \
yy_stack_print ((Bottom), (Top)); \ yy_stack_print ((Bottom), (Top)); \
} while (YYID (0)) } while (0)
/*------------------------------------------------. /*------------------------------------------------.
| Report that the YYRULE is going to be reduced. | | Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/ `------------------------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void static void
yy_reduce_print (yyvsp, yyrule) yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
YYSTYPE *yyvsp;
int yyrule;
#endif
{ {
unsigned long int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule]; int yynrhs = yyr2[yyrule];
int yyi; int yyi;
unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
yyrule - 1, yylno); yyrule - 1, yylno);
/* The symbols being reduced. */ /* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++) for (yyi = 0; yyi < yynrhs; yyi++)
{ {
YYFPRINTF (stderr, " $%d = ", yyi + 1); YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], yy_symbol_print (stderr,
&(yyvsp[(yyi + 1) - (yynrhs)]) yystos[yyssp[yyi + 1 - yynrhs]],
); &(yyvsp[(yyi + 1) - (yynrhs)])
);
YYFPRINTF (stderr, "\n"); YYFPRINTF (stderr, "\n");
} }
} }
# define YY_REDUCE_PRINT(Rule) \ # define YY_REDUCE_PRINT(Rule) \
do { \ do { \
if (yydebug) \ if (yydebug) \
yy_reduce_print (yyvsp, Rule); \ yy_reduce_print (yyssp, yyvsp, Rule); \
} while (YYID (0)) } while (0)
/* Nonzero means print parse trace. It is left uninitialized so that /* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */ multiple parsers can coexist. */
int yydebug; int yydebug;
#else /* !YYDEBUG */ #else /* !YYDEBUG */
# define YYDPRINTF(Args) # define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top) # define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule) # define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */ #endif /* !YYDEBUG */
/* YYINITDEPTH -- initial size of the parser's stacks. */ /* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH #ifndef YYINITDEPTH
# define YYINITDEPTH 200 # define YYINITDEPTH 200
#endif #endif
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
if the built-in stack extension method is used). if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if Do not make this value too large; the results are undefined if
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */ evaluated with infinite-precision integer arithmetic. */
skipping to change at line 1409 skipping to change at line 1297
# define YYMAXDEPTH 10000 # define YYMAXDEPTH 10000
#endif #endif
#if YYERROR_VERBOSE #if YYERROR_VERBOSE
# ifndef yystrlen # ifndef yystrlen
# if defined __GLIBC__ && defined _STRING_H # if defined __GLIBC__ && defined _STRING_H
# define yystrlen strlen # define yystrlen strlen
# else # else
/* Return the length of YYSTR. */ /* Return the length of YYSTR. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static YYSIZE_T static YYSIZE_T
yystrlen (const char *yystr) yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
const char *yystr;
#endif
{ {
YYSIZE_T yylen; YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++) for (yylen = 0; yystr[yylen]; yylen++)
continue; continue;
return yylen; return yylen;
} }
# endif # endif
# endif # endif
# ifndef yystpcpy # ifndef yystpcpy
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
# define yystpcpy stpcpy # define yystpcpy stpcpy
# else # else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */ YYDEST. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static char * static char *
yystpcpy (char *yydest, const char *yysrc) yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
#endif
{ {
char *yyd = yydest; char *yyd = yydest;
const char *yys = yysrc; const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0') while ((*yyd++ = *yys++) != '\0')
continue; continue;
return yyd - 1; return yyd - 1;
} }
# endif # endif
skipping to change at line 1472 skipping to change at line 1345
would have been. */ would have been. */
static YYSIZE_T static YYSIZE_T
yytnamerr (char *yyres, const char *yystr) yytnamerr (char *yyres, const char *yystr)
{ {
if (*yystr == '"') if (*yystr == '"')
{ {
YYSIZE_T yyn = 0; YYSIZE_T yyn = 0;
char const *yyp = yystr; char const *yyp = yystr;
for (;;) for (;;)
switch (*++yyp) switch (*++yyp)
{ {
case '\'': case '\'':
case ',': case ',':
goto do_not_strip_quotes; goto do_not_strip_quotes;
case '\\': case '\\':
if (*++yyp != '\\') if (*++yyp != '\\')
goto do_not_strip_quotes; goto do_not_strip_quotes;
/* Fall through. */ /* Fall through. */
default: default:
if (yyres) if (yyres)
yyres[yyn] = *yyp; yyres[yyn] = *yyp;
yyn++; yyn++;
break; break;
case '"': case '"':
if (yyres) if (yyres)
yyres[yyn] = '\0'; yyres[yyn] = '\0';
return yyn; return yyn;
} }
do_not_strip_quotes: ; do_not_strip_quotes: ;
} }
if (! yyres) if (! yyres)
return yystrlen (yystr); return yystrlen (yystr);
return yystpcpy (yyres, yystr) - yyres; return yystpcpy (yyres, yystr) - yyres;
} }
# endif # endif
skipping to change at line 1515 skipping to change at line 1388
YYSSP. YYSSP.
Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
not large enough to hold the message. In that case, also set not large enough to hold the message. In that case, also set
*YYMSG_ALLOC to the required number of bytes. Return 2 if the *YYMSG_ALLOC to the required number of bytes. Return 2 if the
required number of bytes is too large to store. */ required number of bytes is too large to store. */
static int static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken) yytype_int16 *yyssp, int yytoken)
{ {
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
YYSIZE_T yysize = yysize0; YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */ /* Internationalized format string. */
const char *yyformat = 0; const char *yyformat = YY_NULLPTR;
/* Arguments of yyformat. */ /* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per /* Number of reported tokens (one for the "unexpected", one per
"expected"). */ "expected"). */
int yycount = 0; int yycount = 0;
/* There are many possibilities here to consider: /* There are many possibilities here to consider:
- Assume YYFAIL is not used. It's too flawed to consider. See
<http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
for details. YYERROR is fine as it does not invoke this
function.
- If this state is a consistent state with a default action, then - If this state is a consistent state with a default action, then
the only way this function was invoked is if the default action the only way this function was invoked is if the default action
is an error action. In that case, don't check for expected is an error action. In that case, don't check for expected
tokens because there are none. tokens because there are none.
- The only way there can be no lookahead present (in yychar) is if - The only way there can be no lookahead present (in yychar) is if
this state is a consistent state with a default action. Thus, this state is a consistent state with a default action. Thus,
detecting the absence of a lookahead is sufficient to determine detecting the absence of a lookahead is sufficient to determine
that there is no unexpected or expected token to report. In that that there is no unexpected or expected token to report. In that
case, just report a simple "syntax error". case, just report a simple "syntax error".
- Don't assume there isn't a lookahead just because this state is a - Don't assume there isn't a lookahead just because this state is a
skipping to change at line 1580 skipping to change at line 1448
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
&& !yytable_value_is_error (yytable[yyx + yyn])) && !yytable_value_is_error (yytable[yyx + yyn]))
{ {
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{ {
yycount = 1; yycount = 1;
yysize = yysize0; yysize = yysize0;
break; break;
} }
yyarg[yycount++] = yytname[yyx]; yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]); {
if (! (yysize <= yysize1 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ]);
return 2; if (! (yysize <= yysize1
yysize = yysize1; && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yysize = yysize1;
}
} }
} }
} }
switch (yycount) switch (yycount)
{ {
# define YYCASE_(N, S) \ # define YYCASE_(N, S) \
case N: \ case N: \
yyformat = S; \ yyformat = S; \
break break
YYCASE_(0, YY_("syntax error")); YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or % s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or % s"));
# undef YYCASE_ # undef YYCASE_
} }
yysize1 = yysize + yystrlen (yyformat); {
if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
return 2; if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
yysize = yysize1; return 2;
yysize = yysize1;
}
if (*yymsg_alloc < yysize) if (*yymsg_alloc < yysize)
{ {
*yymsg_alloc = 2 * yysize; *yymsg_alloc = 2 * yysize;
if (! (yysize <= *yymsg_alloc if (! (yysize <= *yymsg_alloc
&& *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
*yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
return 1; return 1;
} }
skipping to change at line 1644 skipping to change at line 1516
} }
} }
return 0; return 0;
} }
#endif /* YYERROR_VERBOSE */ #endif /* YYERROR_VERBOSE */
/*-----------------------------------------------. /*-----------------------------------------------.
| Release the memory associated to this symbol. | | Release the memory associated to this symbol. |
`-----------------------------------------------*/ `-----------------------------------------------*/
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
{ {
YYUSE (yyvaluep); YYUSE (yyvaluep);
if (!yymsg) if (!yymsg)
yymsg = "Deleting"; yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype) YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
{ YYUSE (yytype);
YY_IGNORE_MAYBE_UNINITIALIZED_END
default:
break;
}
} }
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
/* The lookahead symbol. */ /* The lookahead symbol. */
int yychar; int yychar;
/* The semantic value of the lookahead symbol. */ /* The semantic value of the lookahead symbol. */
YYSTYPE yylval; YYSTYPE yylval;
/* Number of syntax errors so far. */ /* Number of syntax errors so far. */
int yynerrs; int yynerrs;
/*----------. /*----------.
| yyparse. | | yyparse. |
`----------*/ `----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int int
yyparse (void) yyparse (void)
#else
int
yyparse ()
#endif
#endif
{ {
int yystate; int yystate;
/* Number of tokens to shift before error messages enabled. */ /* Number of tokens to shift before error messages enabled. */
int yyerrstatus; int yyerrstatus;
/* The stacks and their tools: /* The stacks and their tools:
`yyss': related to states. 'yyss': related to states.
`yyvs': related to semantic values. 'yyvs': related to semantic values.
Refer to the stacks thru separate pointers, to allow yyoverflow Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */ to reallocate them elsewhere. */
/* The state stack. */ /* The state stack. */
yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss; yytype_int16 *yyss;
yytype_int16 *yyssp; yytype_int16 *yyssp;
/* The semantic value stack. */ /* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs; YYSTYPE *yyvs;
YYSTYPE *yyvsp; YYSTYPE *yyvsp;
YYSIZE_T yystacksize; YYSIZE_T yystacksize;
int yyn; int yyn;
int yyresult; int yyresult;
/* Lookahead token as an internal (translated) token number. */ /* Lookahead token as an internal (translated) token number. */
int yytoken; int yytoken = 0;
/* The variables used to return semantic value and location from the /* The variables used to return semantic value and location from the
action routines. */ action routines. */
YYSTYPE yyval; YYSTYPE yyval;
#if YYERROR_VERBOSE #if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */ /* Buffer for error messages, and its allocated size. */
char yymsgbuf[128]; char yymsgbuf[128];
char *yymsg = yymsgbuf; char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif #endif
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule. /* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */ Keep to zero when no symbol should be popped. */
int yylen = 0; int yylen = 0;
yytoken = 0; yyssp = yyss = yyssa;
yyss = yyssa; yyvsp = yyvs = yyvsa;
yyvs = yyvsa;
yystacksize = YYINITDEPTH; yystacksize = YYINITDEPTH;
YYDPRINTF ((stderr, "Starting parse\n")); YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0; yystate = 0;
yyerrstatus = 0; yyerrstatus = 0;
yynerrs = 0; yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */ yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyssp = yyss;
yyvsp = yyvs;
goto yysetstate; goto yysetstate;
/*------------------------------------------------------------. /*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. | | yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/ `------------------------------------------------------------*/
yynewstate: yynewstate:
/* In all cases, when you get here, the value and location stacks /* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */ have just been pushed. So pushing a state here evens the stacks. */
yyssp++; yyssp++;
yysetstate: yysetstate:
*yyssp = yystate; *yyssp = yystate;
if (yyss + yystacksize - 1 <= yyssp) if (yyss + yystacksize - 1 <= yyssp)
{ {
/* Get the current used size of the three stacks, in elements. */ /* Get the current used size of the three stacks, in elements. */
YYSIZE_T yysize = yyssp - yyss + 1; YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow #ifdef yyoverflow
{ {
/* Give user a chance to reallocate the stack. Use copies of /* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into these so that the &'s don't force the real ones into
memory. */ memory. */
YYSTYPE *yyvs1 = yyvs; YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss; yytype_int16 *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the /* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */ be undefined if yyoverflow is a macro. */
yyoverflow (YY_("memory exhausted"), yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp), &yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp), &yyvs1, yysize * sizeof (*yyvsp),
&yystacksize); &yystacksize);
yyss = yyss1; yyss = yyss1;
yyvs = yyvs1; yyvs = yyvs1;
} }
#else /* no yyoverflow */ #else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE # ifndef YYSTACK_RELOCATE
goto yyexhaustedlab; goto yyexhaustedlab;
# else # else
/* Extend the stack our own way. */ /* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize) if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab; goto yyexhaustedlab;
yystacksize *= 2; yystacksize *= 2;
if (YYMAXDEPTH < yystacksize) if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH; yystacksize = YYMAXDEPTH;
{ {
yytype_int16 *yyss1 = yyss; yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr = union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr) if (! yyptr)
goto yyexhaustedlab; goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE # undef YYSTACK_RELOCATE
if (yyss1 != yyssa) if (yyss1 != yyssa)
YYSTACK_FREE (yyss1); YYSTACK_FREE (yyss1);
} }
# endif # endif
#endif /* no yyoverflow */ #endif /* no yyoverflow */
yyssp = yyss + yysize - 1; yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1; yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n", YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize)); (unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp) if (yyss + yystacksize - 1 <= yyssp)
YYABORT; YYABORT;
} }
YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YYDPRINTF ((stderr, "Entering state %d\n", yystate));
if (yystate == YYFINAL) if (yystate == YYFINAL)
YYACCEPT; YYACCEPT;
goto yybackup; goto yybackup;
/*-----------. /*-----------.
skipping to change at line 1884 skipping to change at line 1698
yyn = yypact[yystate]; yyn = yypact[yystate];
if (yypact_value_is_default (yyn)) if (yypact_value_is_default (yyn))
goto yydefault; goto yydefault;
/* Not known => get a lookahead token if don't already have one. */ /* Not known => get a lookahead token if don't already have one. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY) if (yychar == YYEMPTY)
{ {
YYDPRINTF ((stderr, "Reading a token: ")); YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX; yychar = yylex ();
} }
if (yychar <= YYEOF) if (yychar <= YYEOF)
{ {
yychar = yytoken = YYEOF; yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n")); YYDPRINTF ((stderr, "Now at end of input.\n"));
} }
else else
{ {
yytoken = YYTRANSLATE (yychar); yytoken = YYTRANSLATE (yychar);
skipping to change at line 1924 skipping to change at line 1738
if (yyerrstatus) if (yyerrstatus)
yyerrstatus--; yyerrstatus--;
/* Shift the lookahead token. */ /* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the shifted token. */ /* Discard the shifted token. */
yychar = YYEMPTY; yychar = YYEMPTY;
yystate = yyn; yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval; *++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
goto yynewstate; goto yynewstate;
/*-----------------------------------------------------------. /*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. | | yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/ `-----------------------------------------------------------*/
yydefault: yydefault:
yyn = yydefact[yystate]; yyn = yydefact[yystate];
if (yyn == 0) if (yyn == 0)
goto yyerrlab; goto yyerrlab;
goto yyreduce; goto yyreduce;
/*-----------------------------. /*-----------------------------.
| yyreduce -- Do a reduction. | | yyreduce -- Do a reduction. |
`-----------------------------*/ `-----------------------------*/
yyreduce: yyreduce:
/* yyn is the number of a rule to reduce with. */ /* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn]; yylen = yyr2[yyn];
/* If YYLEN is nonzero, implement the default value of the action: /* If YYLEN is nonzero, implement the default value of the action:
`$$ = $1'. '$$ = $1'.
Otherwise, the following line sets YYVAL to garbage. Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison This behavior is undocumented and Bison
users should not rely upon it. Assigning to YYVAL users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */ GCC warning that YYVAL may be used uninitialized. */
yyval = yyvsp[1-yylen]; yyval = yyvsp[1-yylen];
YY_REDUCE_PRINT (yyn); YY_REDUCE_PRINT (yyn);
switch (yyn) switch (yyn)
{ {
case 6: case 6:
#line 118 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 117 "parser.y"
{ {
extern int line_is_a_command; extern int line_is_a_command;
if (scanerror) { if (scanerror) {
scanerror = synerrors = 0; scanerror = synerrors = 0;
} else { } else {
if (! synerrors && ! yynerrs) { if (! synerrors && ! yynerrs) {
set_prettyanswer((yyvsp[(1) - (2)].number)); set_prettyanswer((yyvsp[-1].number));
num_set(last_answer,(yyvsp[(1) - (2)].number)); num_set(last_answer,(yyvsp[-1].number));
} else { } else {
synerrors = 0; synerrors = 0;
report_error("Too many errors."); report_error("Too many errors.");
} }
} }
num_free((yyvsp[(1) - (2)].number)); num_free((yyvsp[-1].number));
compute = 1; compute = 1;
line_is_a_command = 0; line_is_a_command = 0;
} }
#line 1818 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 7: case 7:
#line 136 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 135 "parser.y"
{ {
extern int line_is_a_command; extern int line_is_a_command;
compute = 1; compute = 1;
line_is_a_command = 0; line_is_a_command = 0;
} }
#line 1829 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 8: case 8:
#line 142 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 141 "parser.y"
{ {
extern int line_is_a_command; extern int line_is_a_command;
switch ((yyvsp[(1) - (2)].cmd)) { switch ((yyvsp[-1].cmd)) {
case redisplay: case redisplay:
if (! synerrors) { if (! synerrors) {
set_prettyanswer(last_answer); set_prettyanswer(last_answer);
} else { } else {
synerrors = 0; synerrors = 0;
report_error("Too many errors."); report_error("Too many errors.");
} }
break; break;
case nothing: break; case nothing: break;
} }
compute = 1; compute = 1;
line_is_a_command = 0; line_is_a_command = 0;
} }
#line 1851 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 9: case 9:
#line 160 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 159 "parser.y"
{ {
extern int line_is_a_command; extern int line_is_a_command;
if (scanerror) { if (scanerror) {
scanerror = synerrors = 0; scanerror = synerrors = 0;
} }
compute = 1; compute = 1;
line_is_a_command = 0; line_is_a_command = 0;
} }
#line 1865 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 10: case 10:
#line 169 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 168 "parser.y"
{ {
extern int line_is_a_command; extern int line_is_a_command;
/* there is the possibility of lost memory here, /* there is the possibility of lost memory here,
* because "error" has no data type * because "error" has no data type
* (and because I'm passing around *actual* Number's * (and because I'm passing around *actual* Number's
* rather than pointers to them) */ * rather than pointers to them) */
/* report_error("3 Error in scanner halts parser."); */ /* report_error("3 Error in scanner halts parser."); */
compute = 1; compute = 1;
line_is_a_command = 0; line_is_a_command = 0;
} }
#line 1881 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 11: case 11:
#line 183 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 182 "parser.y"
{ ++lines; } { ++lines; }
#line 1887 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 12: case 12:
#line 186 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 185 "parser.y"
{ {
(yyval.cmd) = isatty(0)?redisplay:nothing; (yyval.cmd) = isatty(0)?redisplay:nothing;
conf.output_format = HEXADECIMAL_FORMAT; conf.output_format = HEXADECIMAL_FORMAT;
if (standard_output) display_output_format(HEXADECIMAL_FORMAT); }
printf("Hexadecimal Formatted Output\n");} #line 1896 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 13: case 13:
#line 190 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 190 "parser.y"
{ {
(yyval.cmd) = isatty(0)?redisplay:nothing; (yyval.cmd) = isatty(0)?redisplay:nothing;
conf.output_format = OCTAL_FORMAT; conf.output_format = OCTAL_FORMAT;
if (standard_output) display_output_format(OCTAL_FORMAT); }
printf("Octal Formatted Output\n");} #line 1905 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 14: case 14:
#line 194 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 195 "parser.y"
{ {
(yyval.cmd) = isatty(0)?redisplay:nothing; (yyval.cmd) = isatty(0)?redisplay:nothing;
conf.output_format = BINARY_FORMAT; conf.output_format = BINARY_FORMAT;
if (standard_output) display_output_format(BINARY_FORMAT); }
printf("Binary Formatted Output\n");} #line 1914 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 15: case 15:
#line 198 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 200 "parser.y"
{ {
(yyval.cmd) = isatty(0)?redisplay:nothing; (yyval.cmd) = isatty(0)?redisplay:nothing;
conf.output_format = DECIMAL_FORMAT; conf.output_format = DECIMAL_FORMAT;
if (standard_output) display_output_format(DECIMAL_FORMAT); }
printf("Decimal Formatted Output\n");} #line 1923 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 16: case 16:
#line 202 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 205 "parser.y"
{ {
(yyval.cmd) = nothing; if (strcmp((yyvsp[0].variable), pretty_answer)) {
if (conf.thou_delimiter != (yyvsp[(1) - (1)].character)) { fprintf(stderr, "Assertion on line %u:\n", lines);
conf.dec_delimiter = (yyvsp[(1) - (1)].character); fprintf(stderr, " Pretty Answer is: '%s'\n", pretty_answer);
if (standard_output) fprintf(stderr, "...should have been: '%s'\n", (yyvsp[0].variable
printf("%c is now the decimal separator.\n", (yyvsp[(1) - ));
(1)].character)); exit(EXIT_FAILURE);
} else if (standard_output) { }
printf("%c cannot be the decimal separator. It is the thousands s free((yyvsp[0].variable));
eparator.\n", (yyvsp[(1) - (1)].character)); }
}} #line 1937 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 17: case 17:
#line 211 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 214 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
if (conf.in_thou_delimiter != (yyvsp[(1) - (1)].character) && (conf.in_th if (conf.thou_delimiter != (yyvsp[0].character)) {
ou_delimiter != 0 || conf.thou_delimiter != (yyvsp[(1) - (1)].character))) { conf.dec_delimiter = (yyvsp[0].character);
conf.in_dec_delimiter = (yyvsp[(1) - (1)].character); display_status("%c is now the decimal separator.", (yyvsp[0].characte
if (standard_output) r));
printf("%c is now the decimal separator for input.\n", (y } else {
yvsp[(1) - (1)].character)); extern int column;
} else if (standard_output) { column --;
printf("%c cannot be the decimal separator. It is the thousands s report_error("%c cannot be the decimal separator. It is the thousands
eparator.\n", (yyvsp[(1) - (1)].character)); separator.", (yyvsp[0].character));
}} }}
#line 1952 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 18: case 18:
#line 221 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 223 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
if (conf.dec_delimiter != (yyvsp[(1) - (1)].character)) { if (conf.in_thou_delimiter != (yyvsp[0].character) && (conf.in_thou_delim
conf.thou_delimiter = (yyvsp[(1) - (1)].character); iter != 0 || conf.thou_delimiter != (yyvsp[0].character))) {
if (standard_output) conf.in_dec_delimiter = (yyvsp[0].character);
printf("%c is now the thousands separator.\n", (yyvsp[(1) display_status("%c is now the decimal separator for input.\n", (yyvsp
- (1)].character)); [0].character));
} else if (standard_output) { } else {
printf("%c cannot be the thousands separator. It is the decimal s extern int column;
eparator.\n", (yyvsp[(1) - (1)].character)); column --;
report_error("%c cannot be the decimal separator. It is the thousands
separator.\n", (yyvsp[0].character));
}} }}
#line 1967 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 19: case 19:
#line 231 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 232 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
if (conf.in_dec_delimiter != (yyvsp[(1) - (1)].character) && (conf.in_dec if (conf.dec_delimiter != (yyvsp[0].character)) {
_delimiter != 0 || conf.dec_delimiter != (yyvsp[(1) - (1)].character))) { conf.thou_delimiter = (yyvsp[0].character);
conf.in_thou_delimiter = (yyvsp[(1) - (1)].character); display_status("%c is now the thousands separator.\n", (yyvsp[0].char
if (standard_output) acter));
printf("%c is now the thousands separator for input.\n",
(yyvsp[(1) - (1)].character));
} else if (standard_output) { } else if (standard_output) {
printf("%c cannot be the thousands separator. It is the decimal s extern int column;
eparator.\n", (yyvsp[(1) - (1)].character)); column --;
report_error("%c cannot be the thousands separator. It is the decimal
separator.\n", (yyvsp[0].character));
}} }}
#line 1982 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 20: case 20:
#line 241 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 241 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.print_commas = ! conf.print_commas; if (conf.in_dec_delimiter != (yyvsp[0].character) && (conf.in_dec_delimit
if (standard_output) { er != 0 || conf.dec_delimiter != (yyvsp[0].character))) {
printf("Will %sshow separators when printing large numbers.\n",co conf.in_thou_delimiter = (yyvsp[0].character);
nf.print_commas?"":"not "); display_status("%c is now the thousands separator for input.\n", (yyv
sp[0].character));
} else {
extern int column;
column --;
report_error("%c cannot be the thousands separator. It is the decimal
separator.\n", (yyvsp[0].character));
} }
} }
#line 1998 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 21: case 21:
#line 252 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 248 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.print_ints = ! conf.print_ints; conf.print_commas = ! conf.print_commas;
if (standard_output) { display_status("Will %sshow separators when printing large numbers.\n",co
printf("Will %suse abbreviations for large integers.\n",conf.prin nf.print_commas?"":"not ");
t_ints?"not ":"");
}
} }
#line 2008 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 22: case 22:
#line 257 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 256 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.verbose = ! conf.verbose; conf.print_ints = ! conf.print_ints;
if (standard_output) { display_status("Will %suse abbreviations for large integers.\n",conf.prin
printf("Will %secho the lines to be evaluated.\n",conf.verbose?"" t_ints?"not ":"");
:"not ");
}
} }
#line 2018 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 23: case 23:
#line 263 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 263 "parser.y"
{ {
if (standard_output) {
printf(" Display Precision: %-3i %s -> \\p
\n",conf.precision,((conf.precision==-1)?"(auto)":" "));
printf(" Internal Precision: %-24lu -> \\bits\n", (unsign
ed long) num_get_default_prec());
printf(" Engineering Output: %s -> \\e\
n",
(conf.engineering==always)?"always":(conf.enginee
ring==never)?"never ":"auto ");
printf(" Output Format: %s -> \\b, \\d, \\h, \\o\n",
output_string(conf.output_format));
printf(" Use Radians: %s -> \
\r or \\radians\n",conf.use_radians?"yes":"no ");
printf(" Print Prefixes: %s -> \
\pre or \\prefixes\n",conf.print_prefixes?"yes":"no ");
printf("Avoid Abbreviating Integers: %s -> \
\ints\n",conf.print_ints?"yes":"no ");
printf(" Rounding Indication: %s -> \\round\n",
conf.rounding_indication==SIMPLE_ROUNDING_INDICATION?"yes (simple) ":(conf.round
ing_indication==SIG_FIG_ROUNDING_INDICATION?"yes (sig_fig)":"no "));
printf(" Save Errors in History: %s -> \
\re\n",conf.remember_errors?"yes":"no ");
printf(" Thousands Delimiter: '%c' ->
\\tsep\n",conf.thou_delimiter);
printf(" Decimal Delimiter: '%c' ->
\\dsep\n",conf.dec_delimiter);
printf(" Precision Guard: %s -> \
\cons\n",conf.precision_guard?"yes":"no ");
printf(" History Limit: %s -> \
\hlimit\n",conf.history_limit?"yes":"no ");
if (conf.history_limit) {
printf(" History Limited To: %lu\n",conf.history_
limit_len);
}
printf(" Verbose: %s -> \
\verbose\n",conf.verbose?"yes":"no ");
printf(" Display Delimiters: %s -> \
\delim\n",conf.print_commas?"yes":"no ");
printf(" Modulo Operator: %s -> \\cmod\n"
,conf.c_style_mod?"C-style ":"not C-style");
}
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.verbose = ! conf.verbose;
display_status("Will %secho the lines to be evaluated.\n",conf.verbose?""
:"not ");
} }
#line 2028 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 24: case 24:
#line 268 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 288 "parser.y"
{ {
display_prefs();
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.use_radians = ! conf.use_radians; }
if (standard_output) #line 2037 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
printf("Now Using %s\n", conf.use_radians?"Radians":"Degrees");}
break; break;
case 25: case 25:
#line 272 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 293 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.precision_guard = ! conf.precision_guard; conf.use_radians = ! conf.use_radians;
if (standard_output) display_status("Now Using %s\n", conf.use_radians?"Radians":"Degrees");}
printf("Now %sUsing Conservative Precision\n", conf.precision_gua #line 2046 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
rd?"":"Not ");}
break; break;
case 26: case 26:
#line 276 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 298 "parser.y"
{ {
(yyval.cmd) = isatty(0)?redisplay:nothing; (yyval.cmd) = nothing;
conf.precision = (yyvsp[(1) - (1)].integer); switch ((yyvsp[0].integer)) {
if (standard_output) { case 0: conf.precision_guard = 0; break;
printf("Precision = "); case 1: conf.precision_guard = 1; break;
if (conf.precision == -1) printf("auto\n"); case -1: conf.precision_guard = ! conf.precision_guard; break;
else printf("%i\n", conf.precision); }
}} display_status("Now %sUsing Conservative Precision\n", conf.precision_gua
rd?"":"Not ");}
#line 2059 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 27: case 27:
#line 284 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{
(yyval.cmd) = isatty(0)?redisplay:nothing;
conf.precision = (yyvsp[0].integer);
if (conf.precision == -1) {
display_status("Precision = auto");
} else {
display_status("Precision = %i", conf.precision);
} }
#line 2072 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break;
/* Line 1806 of yacc.c */ case 28:
#line 306 "parser.y" #line 292 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
if ((yyvsp[(1) - (1)].integer)) { if ((yyvsp[0].integer)) {
conf.history_limit = 1; conf.history_limit = 1;
conf.history_limit_len = (yyvsp[(1) - (1)].integer); conf.history_limit_len = (yyvsp[0].integer);
} else { } else {
conf.history_limit = 0; conf.history_limit = 0;
conf.history_limit_len = 0; conf.history_limit_len = 0;
} }
} }
#line 2087 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 28: case 29:
#line 302 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 316 "parser.y"
{ {
printvariables(); printvariables();
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
} }
#line 2096 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 29: case 30:
#line 306 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 320 "parser.y"
{ {
if ((yyvsp[(1) - (1)].integer) < 0) { if ((yyvsp[0].integer) < 0) {
switch (conf.engineering) { switch (conf.engineering) {
case always: conf.engineering = never; break; case always: conf.engineering = never; break;
case never: conf.engineering = automatic; break; case never: conf.engineering = automatic; break;
case automatic: conf.engineering = always; break; case automatic: conf.engineering = always; break;
} }
} else { } else {
switch((yyvsp[(1) - (1)].integer)) { switch((yyvsp[0].integer)) {
case 1: conf.engineering = automatic; break; case 1: conf.engineering = automatic; break;
case 2: conf.engineering = always; break; case 2: conf.engineering = always; break;
case 3: conf.engineering = never; break; case 3: conf.engineering = never; break;
} }
} }
if (standard_output) display_status("Engineering notation is %s\n",(conf.engineering==always)?
printf("Engineering notation is %s\n",(conf.engineering==always)? "always used":(conf.engineering==never)?"never used":"used if convenient");
"always used":(conf.engineering==never)?"never used":"used if convenient");
(yyval.cmd) = isatty(0)?redisplay:nothing; (yyval.cmd) = isatty(0)?redisplay:nothing;
} }
#line 2118 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 30: case 31:
#line 323 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 338 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
if ((yyvsp[(1) - (1)].integer) != -1) if ((yyvsp[0].integer) != -1)
conf.rounding_indication = (yyvsp[(1) - (1)].integer); conf.rounding_indication = (yyvsp[0].integer);
else { else {
conf.rounding_indication += 1; conf.rounding_indication += 1;
conf.rounding_indication %= 3; conf.rounding_indication %= 3;
} }
if (standard_output) { display_status("Will display %s rounding indication",
printf("Will display "); (conf.rounding_indication==NO_ROUNDING_INDICATION)?"no":
switch(conf.rounding_indication) { ((conf.rounding_indication==SIMPLE_ROUNDING_INDICATION)?"simple"
case NO_ROUNDING_INDICATION: printf("no"); break; :"significant figure"));
case SIMPLE_ROUNDING_INDICATION: printf("simple"); break;
case SIG_FIG_ROUNDING_INDICATION: printf("significant fig
ure"); break;
}
printf(" rounding indication\n");
}
} }
#line 2135 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 31: case 32:
#line 335 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 356 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.print_prefixes = ! conf.print_prefixes; conf.print_prefixes = ! conf.print_prefixes;
if (standard_output) display_status("Will %sprint number prefixes\n",conf.print_prefixes?"":"n
printf("Will %sprint number prefixes\n",conf.print_prefixes?"":"n ot ");
ot ");
} }
#line 2145 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 32: case 33:
#line 340 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 362 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.remember_errors = ! conf.remember_errors; conf.remember_errors = ! conf.remember_errors;
if (standard_output) display_status("Statements that produce errors are %s.\n",conf.remember_e
printf("Statements that produce errors are %s.\n",conf.remember_e rrors?"recorded":"forgotten");
rrors?"recorded":"forgotten");
} }
#line 2155 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 33: case 34:
#line 345 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 368 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
if (standard_output) { display_interactive_help();
print_interactive_help();
}
} }
#line 2164 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 34: case 35:
#line 349 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 374 "parser.y"
{ {
extern char* open_file; extern char* open_file;
int i; int i;
unsigned int len = strlen((yyvsp[(1) - (1)].variable))+1; unsigned int len = strlen((yyvsp[0].variable))+1;
open_file = malloc(len); open_file = malloc(len);
snprintf(open_file,len,"%s",(yyvsp[(1) - (1)].variable)); strncpy(open_file, (yyvsp[0].variable), len);
/* strip trailing spaces */ /* strip trailing spaces */
for (i=strlen(open_file)-1;i>=0;i--) { for (i=strlen(open_file)-1;i>=0;i--) {
if (open_file[i] != ' ') break; if (open_file[i] != ' ') break;
open_file[i] = 0; open_file[i] = 0;
} }
if (strlen(open_file) == 0) { if (strlen(open_file) == 0) {
free(open_file); free(open_file);
open_file = NULL; open_file = NULL;
report_error("Please specify a file name to open."); report_error("Please specify a file name to open.");
} }
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
} }
#line 2187 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 35: case 36:
#line 367 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 392 "parser.y"
{ {
int retval; int retval;
retval = saveState((yyvsp[(1) - (1)].variable)); retval = saveState((yyvsp[0].variable));
if (retval) { if (retval) {
report_error("Could not save file. (%s)", (char*)strerror(retval) ); report_error("Could not save file. (%s)", (char*)strerror(retval) );
} }
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
} }
#line 2200 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 36: case 37:
#line 375 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 400 "parser.y"
{ {
if ((yyvsp[(1) - (1)].integer) < NUM_PREC_MIN) { if ((yyvsp[0].integer) < NUM_PREC_MIN) {
report_error("Minimum precision is %lu (you asked for %lu).\n", ( report_error("Minimum precision is %lu (you asked for %lu).\n", (
unsigned long)NUM_PREC_MIN, (yyvsp[(1) - (1)].integer)); unsigned long)NUM_PREC_MIN, (yyvsp[0].integer));
} else if ((yyvsp[(1) - (1)].integer) > NUM_PREC_MAX) { } else if ((yyvsp[0].integer) > NUM_PREC_MAX) {
report_error("Maximum precision is %lu (you asked for %lu).\n", ( report_error("Maximum precision is %lu (you asked for %lu).\n", (
unsigned long)NUM_PREC_MAX, (yyvsp[(1) - (1)].integer)); unsigned long)NUM_PREC_MAX, (yyvsp[0].integer));
} else { } else {
num_set_default_prec((yyvsp[(1) - (1)].integer)); num_set_default_prec((yyvsp[0].integer));
} }
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
} }
#line 2215 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 37: case 38:
#line 386 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 411 "parser.y"
{ {
int category = identify_units((yyvsp[(1) - (1)].conver).u1,(yyvsp[(1) - ( 1)].conver).u2); int category = identify_units((yyvsp[0].conver).u1,(yyvsp[0].conver).u2);
switch (category) { switch (category) {
case -1: case -1:
report_error("Units must be in the same category."); report_error("Units must be in the same category.");
break; break;
case -2: case -2:
report_error("Units provided are not recognized."); report_error("Units provided are not recognized.");
break; break;
case -3: case -3:
report_error("First unit provided was not recognized (%s) .", (yyvsp[(1) - (1)].conver).u1); report_error("First unit provided was not recognized (%s) .", (yyvsp[0].conver).u1);
break; break;
case -4: case -4:
report_error("Second unit provided was not recognized (%s ).", (yyvsp[(1) - (1)].conver).u2); report_error("Second unit provided was not recognized (%s ).", (yyvsp[0].conver).u2);
break; break;
default: default:
uber_conversion(last_answer,category,unit_id(category,(yy vsp[(1) - (1)].conver).u1),unit_id(category,(yyvsp[(1) - (1)].conver).u2),last_a nswer); uber_conversion(last_answer,category,unit_id(category,(yy vsp[0].conver).u1),unit_id(category,(yyvsp[0].conver).u2),last_answer);
} }
free((yyvsp[(1) - (1)].conver).u1); free((yyvsp[0].conver).u1);
free((yyvsp[(1) - (1)].conver).u2); free((yyvsp[0].conver).u2);
(yyval.cmd) = redisplay; (yyval.cmd) = redisplay;
} }
#line 2242 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 38: case 39:
#line 409 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 434 "parser.y"
{ {
if ((yyvsp[(1) - (1)].integer) >= 2 && (yyvsp[(1) - (1)].integer) <= 36) { if ((yyvsp[0].integer) >= 2 && (yyvsp[0].integer) <= 36) {
char * str, junk; char * str, junk;
str = num_to_str_complex(last_answer, (yyvsp[(1) - (1)].integer), str = num_to_str_complex(last_answer, (yyvsp[0].integer), conf.en
conf.engineering, -1, conf.print_prefixes, &junk); gineering, -1, conf.print_prefixes, &junk);
printf("base %i: %s\n",(yyvsp[(1) - (1)].integer),str); display_status("base %i: %s\n",(yyvsp[0].integer),str);
} else { } else {
report_error("Base must be greater than one and less than 37."); report_error("Base must be greater than one and less than 37.");
} }
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
} }
#line 2257 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 39: case 40:
#line 420 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 445 "parser.y"
{ {
int retval = storeVar((yyvsp[(2) - (2)].variable)); int retval = storeVar((yyvsp[0].variable));
if (retval == 0) { if (retval == 0) {
printf("successfully stored %s\n",(yyvsp[(2) - (2)].variable)); display_status("successfully stored %s\n",(yyvsp[0].variable));
} else { } else {
report_error("Failure to store variable!"); report_error("Failure to store variable!");
} }
free((yyvsp[(2) - (2)].variable)); free((yyvsp[0].variable));
} }
#line 2271 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 40: case 41:
#line 430 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 455 "parser.y"
{ {
(yyval.cmd) = nothing; (yyval.cmd) = nothing;
conf.c_style_mod = ! conf.c_style_mod; conf.c_style_mod = ! conf.c_style_mod;
if (standard_output) display_status("The mod (%%) operation will %sbehave like it does in the
printf("The mod (%%) operation will %sbehave like it does in the C programming language.\n",conf.c_style_mod?"":"not ");
C programming language.\n",conf.c_style_mod?"":"not ");
} }
#line 2281 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 41: case 42:
#line 437 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 463 "parser.y"
{ {
(yyval.variable) = (yyvsp[(1) - (1)].variable); (yyval.variable) = (yyvsp[0].variable);
} }
#line 2289 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 42: case 43:
#line 440 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 466 "parser.y"
{ {
(yyval.variable) = NULL; (yyval.variable) = NULL;
} }
#line 2297 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 43: case 44:
#line 446 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 472 "parser.y"
{ {
if (compute && ! scanerror) { if (compute && ! scanerror) {
/* if standard_error, q is reserved */ /* if standard_error, q is reserved */
if (standard_output && !strcmp((yyvsp[(1) - (3)].variable),"q")) { if (standard_output && !strcmp((yyvsp[-2].variable),"q")) {
report_error("q cannot be assigned a value. q is used to exit."); report_error("q cannot be assigned a value. q is used to exit.");
} else { } else {
if (putval((yyvsp[(1) - (3)].variable),(yyvsp[(2) - (3)]. if (putval((yyvsp[-2].variable),(yyvsp[-1].number),(yyvsp
number),(yyvsp[(3) - (3)].variable)) == 0) { [0].variable)) == 0) {
if (standard_output) { display_val((yyvsp[-2].variable));
Number val;
num_init(val);
printf("%s", (yyvsp[(1) - (3)].variable))
;
getvarval(val, (yyvsp[(1) - (3)].variable
));
print_this_result(val);
num_free(val);
}
} else { } else {
report_error("There was a problem assigning the v alue."); report_error("There was a problem assigning the v alue.");
} }
} }
num_free((yyvsp[(2) - (3)].number)); num_free((yyvsp[-1].number));
} else { } else {
scanerror = 0; scanerror = 0;
report_error("Scanner error halts parser."); report_error("Scanner error halts parser.");
} }
free((yyvsp[(1) - (3)].variable)); free((yyvsp[-2].variable));
if ((yyvsp[(3) - (3)].variable) != NULL) { if ((yyvsp[0].variable) != NULL) {
free((yyvsp[(3) - (3)].variable)); free((yyvsp[0].variable));
} }
} }
#line 2324 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 44: case 45:
#line 469 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 502 "parser.y"
{ {
if (compute && ! scanerror) { if (compute && ! scanerror) {
if (standard_output && !strcmp((yyvsp[(1) - (3)].variable),"q")) { if (standard_output && !strcmp((yyvsp[-2].variable),"q")) {
report_error("q cannot be assigned an expression. q is us ed to exit."); report_error("q cannot be assigned an expression. q is us ed to exit.");
} else { } else {
if (putexp((yyvsp[(1) - (3)].variable),(yyvsp[(2) - (3)]. if (putexp((yyvsp[-2].variable),(yyvsp[-1].variable),(yyv
variable),(yyvsp[(3) - (3)].variable)) == 0) { sp[0].variable)) == 0) {
if (standard_output) { display_val((yyvsp[-2].variable));
printf("%s = %s\n", (yyvsp[(1) - (3)].var
iable), getvar_full((yyvsp[(1) - (3)].variable)).exp);
}
} else { } else {
report_error("There was a problem assigning the e xpression."); report_error("There was a problem assigning the e xpression.");
} }
} }
} else { } else {
scanerror = 0; scanerror = 0;
report_error("Scanner error halts parser."); report_error("Scanner error halts parser.");
} }
free((yyvsp[(1) - (3)].variable)); free((yyvsp[-2].variable));
free((yyvsp[(2) - (3)].variable)); free((yyvsp[-1].variable));
if ((yyvsp[(3) - (3)].variable) != NULL) { if ((yyvsp[0].variable) != NULL) {
free((yyvsp[(3) - (3)].variable)); free((yyvsp[0].variable));
} }
} }
#line 2350 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 45: case 46:
#line 491 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 526 "parser.y"
{ {
report_error("Constants cannot be assigned to other values."); report_error("Constants cannot be assigned to other values.");
num_free((yyvsp[(3) - (4)].number)); num_free((yyvsp[-1].number));
if ((yyvsp[(4) - (4)].variable) != NULL) { if ((yyvsp[0].variable) != NULL) {
free((yyvsp[(4) - (4)].variable)); free((yyvsp[0].variable));
} }
} }
#line 2362 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 46: case 47:
#line 499 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 534 "parser.y"
{ {
report_error("Constants cannot be assigned to other values."); report_error("Constants cannot be assigned to other values.");
free((yyvsp[(3) - (4)].variable)); free((yyvsp[-1].variable));
if ((yyvsp[(4) - (4)].variable) != NULL) { if ((yyvsp[0].variable) != NULL) {
free((yyvsp[(4) - (4)].variable)); free((yyvsp[0].variable));
} }
} }
break; #line 2374 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
case 47:
/* Line 1806 of yacc.c */
#line 543 "parser.y"
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num
ber), wminus, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); n
um_free((yyvsp[(3) - (3)].number)); }
break; break;
case 48: case 48:
#line 508 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 544 "parser.y" minus, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numb
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num er)); }
ber), wplus, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); nu #line 2380 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
m_free((yyvsp[(3) - (3)].number)); }
break; break;
case 49: case 49:
#line 509 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 545 "parser.y" plus, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numbe
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num r)); }
ber), wand, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num #line 2386 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
_free((yyvsp[(3) - (3)].number)); }
break; break;
case 50: case 50:
#line 510 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 546 "parser.y" and, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num )); }
ber), wor, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num_ #line 2392 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
free((yyvsp[(3) - (3)].number)); }
break; break;
case 51: case 51:
#line 511 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 547 "parser.y" or, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number)
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num ); }
ber), wbor, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num #line 2398 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
_free((yyvsp[(3) - (3)].number)); }
break; break;
case 52: case 52:
#line 512 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 548 "parser.y" bor, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num )); }
ber), wbxor, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); nu #line 2404 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
m_free((yyvsp[(3) - (3)].number)); }
break; break;
case 53: case 53:
#line 513 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 549 "parser.y" bxor, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numbe
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num r)); }
ber), wband, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); nu #line 2410 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
m_free((yyvsp[(3) - (3)].number)); }
break; break;
case 54: case 54:
#line 514 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 550 "parser.y" band, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numbe
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num r)); }
ber), wequal, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); n #line 2416 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
um_free((yyvsp[(3) - (3)].number)); }
break; break;
case 55: case 55:
#line 515 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 551 "parser.y" equal, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numb
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num er)); }
ber), wnequal, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); #line 2422 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
num_free((yyvsp[(3) - (3)].number)); }
break; break;
case 56: case 56:
#line 516 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 552 "parser.y" nequal, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].num
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num ber)); }
ber), wgt, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num_ #line 2428 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
free((yyvsp[(3) - (3)].number)); }
break; break;
case 57: case 57:
#line 517 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 553 "parser.y" gt, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number)
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num ); }
ber), wlt, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num_ #line 2434 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
free((yyvsp[(3) - (3)].number)); }
break; break;
case 58: case 58:
#line 518 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 554 "parser.y" lt, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number)
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num ); }
ber), wgeq, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num #line 2440 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
_free((yyvsp[(3) - (3)].number)); }
break; break;
case 59: case 59:
#line 519 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 555 "parser.y" geq, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num )); }
ber), wleq, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num #line 2446 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
_free((yyvsp[(3) - (3)].number)); }
break; break;
case 60: case 60:
#line 520 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 556 "parser.y" leq, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num )); }
ber), wlshft, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); n #line 2452 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
um_free((yyvsp[(3) - (3)].number)); }
break; break;
case 61: case 61:
#line 521 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 557 "parser.y" lshft, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numb
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num er)); }
ber), wrshft, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); n #line 2458 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
um_free((yyvsp[(3) - (3)].number)); }
break; break;
case 62: case 62:
#line 522 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 558 "parser.y" rshft, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numb
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num er)); }
ber), wmult, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); nu #line 2464 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
m_free((yyvsp[(3) - (3)].number)); }
break; break;
case 63: case 63:
#line 523 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 559 "parser.y" mult, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].numbe
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num r)); }
ber), wdiv, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num #line 2470 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
_free((yyvsp[(3) - (3)].number)); }
break; break;
case 64: case 64:
#line 524 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 560 "parser.y" div, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number
{ num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[(1) - (3)].num )); }
ber), wmod, (yyvsp[(3) - (3)].number)); num_free((yyvsp[(1) - (3)].number)); num #line 2476 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
_free((yyvsp[(3) - (3)].number)); }
break; break;
case 66: case 65:
#line 525 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); simple_exp((yyval.number), (yyvsp[-2].number), w
#line 564 "parser.y" mod, (yyvsp[0].number)); num_free((yyvsp[-2].number)); num_free((yyvsp[0].number
{ (yyval.function) = wsin; } )); }
#line 2482 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 67: case 67:
#line 529 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wsin; }
#line 565 "parser.y" #line 2488 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcos; }
break; break;
case 68: case 68:
#line 530 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcos; }
#line 566 "parser.y" #line 2494 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wtan; }
break; break;
case 69: case 69:
#line 531 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wtan; }
#line 567 "parser.y" #line 2500 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcot; }
break; break;
case 70: case 70:
#line 532 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcot; }
#line 568 "parser.y" #line 2506 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wsec; }
break; break;
case 71: case 71:
#line 533 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wsec; }
#line 569 "parser.y" #line 2512 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcsc; }
break; break;
case 72: case 72:
#line 534 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcsc; }
#line 570 "parser.y" #line 2518 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wasin; }
break; break;
case 73: case 73:
#line 535 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wasin; }
#line 571 "parser.y" #line 2524 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wacos; }
break; break;
case 74: case 74:
#line 536 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wacos; }
#line 572 "parser.y" #line 2530 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = watan; }
break; break;
case 75: case 75:
#line 537 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = watan; }
#line 573 "parser.y" #line 2536 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wacot; }
break; break;
case 76: case 76:
#line 538 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wacot; }
#line 574 "parser.y" #line 2542 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wasec; }
break; break;
case 77: case 77:
#line 539 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wasec; }
#line 575 "parser.y" #line 2548 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wacsc; }
break; break;
case 78: case 78:
#line 540 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wacsc; }
#line 576 "parser.y" #line 2554 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wsinh; }
break; break;
case 79: case 79:
#line 541 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wsinh; }
#line 577 "parser.y" #line 2560 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcosh; }
break; break;
case 80: case 80:
#line 542 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcosh; }
#line 578 "parser.y" #line 2566 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wtanh; }
break; break;
case 81: case 81:
#line 543 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wtanh; }
#line 579 "parser.y" #line 2572 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcoth; }
break; break;
case 82: case 82:
#line 544 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcoth; }
#line 580 "parser.y" #line 2578 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wsech; }
break; break;
case 83: case 83:
#line 545 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wsech; }
#line 581 "parser.y" #line 2584 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcsch; }
break; break;
case 84: case 84:
#line 546 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcsch; }
#line 582 "parser.y" #line 2590 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wasinh; }
break; break;
case 85: case 85:
#line 547 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wasinh; }
#line 583 "parser.y" #line 2596 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wacosh; }
break; break;
case 86: case 86:
#line 548 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wacosh; }
#line 584 "parser.y" #line 2602 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = watanh; }
break; break;
case 87: case 87:
#line 549 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = watanh; }
#line 585 "parser.y" #line 2608 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wacoth; }
break; break;
case 88: case 88:
#line 550 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wacoth; }
#line 586 "parser.y" #line 2614 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wasech; }
break; break;
case 89: case 89:
#line 551 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wasech; }
#line 587 "parser.y" #line 2620 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wacsch; }
break; break;
case 90: case 90:
#line 552 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wacsch; }
#line 588 "parser.y" #line 2626 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wlog; }
break; break;
case 91: case 91:
#line 553 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wlog; }
#line 589 "parser.y" #line 2632 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wlogtwo; }
break; break;
case 92: case 92:
#line 554 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wlogtwo; }
#line 590 "parser.y" #line 2638 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wln; }
break; break;
case 93: case 93:
#line 555 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wln; }
#line 591 "parser.y" #line 2644 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wround; }
break; break;
case 94: case 94:
#line 556 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wround; }
#line 592 "parser.y" #line 2650 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wabs; }
break; break;
case 95: case 95:
#line 557 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wabs; }
#line 593 "parser.y" #line 2656 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wsqrt; }
break; break;
case 96: case 96:
#line 558 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wsqrt; }
#line 594 "parser.y" #line 2662 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wexp; }
break; break;
case 97: case 97:
#line 559 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wexp; }
#line 595 "parser.y" #line 2668 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wfloor; }
break; break;
case 98: case 98:
#line 560 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wfloor; }
#line 596 "parser.y" #line 2674 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wceil; }
break; break;
case 99: case 99:
#line 561 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wceil; }
#line 597 "parser.y" #line 2680 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcbrt; }
break; break;
case 100: case 100:
#line 562 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcbrt; }
#line 598 "parser.y" #line 2686 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wrand; }
break; break;
case 101: case 101:
#line 563 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wrand; }
#line 599 "parser.y" #line 2692 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wirand; }
break; break;
case 102: case 102:
#line 564 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wirand; }
#line 600 "parser.y" #line 2698 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wbnot; }
break; break;
case 103: case 103:
#line 565 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wbnot; }
#line 601 "parser.y" #line 2704 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wnot; }
break; break;
case 104: case 104:
#line 566 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wnot; }
#line 602 "parser.y" #line 2710 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wfact; }
break; break;
case 105: case 105:
#line 567 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wfact; }
#line 603 "parser.y" #line 2716 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wcomp; }
break; break;
case 106: case 106:
#line 568 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wcomp; }
#line 604 "parser.y" #line 2722 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = weint; }
break; break;
case 107: case 107:
#line 569 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = weint; }
#line 605 "parser.y" #line 2728 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wgamma; }
break; break;
case 108: case 108:
#line 570 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wgamma; }
#line 606 "parser.y" #line 2734 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wlngamma; }
break; break;
case 109: case 109:
#line 571 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { (yyval.function) = wlngamma; }
#line 607 "parser.y" #line 2740 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ (yyval.function) = wzeta; }
break; break;
case 110: case 110:
#line 572 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{ (yyval.function) = wzeta; }
#line 2746 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break;
/* Line 1806 of yacc.c */ case 111:
#line 608 "parser.y" #line 573 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{ (yyval.function) = wsinc; } { (yyval.function) = wsinc; }
#line 2752 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 114: case 115:
#line 581 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 616 "parser.y"
{ (yyval.integer) = -1; } { (yyval.integer) = -1; }
#line 2758 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 115: case 116:
#line 582 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 617 "parser.y"
{ (yyval.integer) = 1; } { (yyval.integer) = 1; }
#line 2764 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 116: case 117:
#line 583 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 618 "parser.y"
{ (yyval.integer) = 1; } { (yyval.integer) = 1; }
#line 2770 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 118: case 119:
#line 587 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 622 "parser.y"
{ num_init((yyval.number)); { num_init((yyval.number));
num_mul((yyvsp[(2) - (3)].number),(yyvsp[(2) - (3)].number), num_mul((yyvsp[-1].number),(yyvsp[-1].number),(yyvsp[0].numb
(yyvsp[(3) - (3)].number)); er));
num_mul_si((yyval.number),(yyvsp[(2) - (3)].number),(yyvsp[( num_mul_si((yyval.number),(yyvsp[-1].number),(yyvsp[-2].inte
1) - (3)].integer)); ger));
num_free((yyvsp[(2) - (3)].number)); num_free((yyvsp[-1].number));
num_free((yyvsp[(3) - (3)].number)); } num_free((yyvsp[0].number)); }
#line 2780 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 119: case 120:
#line 594 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 629 "parser.y"
{ {
num_init_set((yyval.number),(yyvsp[(1) - (2)].number)); num_init_set((yyval.number),(yyvsp[-1].number));
num_free((yyvsp[(1) - (2)].number)); num_free((yyvsp[-1].number));
num_free((yyvsp[(2) - (2)].number)); num_free((yyvsp[0].number));
} }
break; #line 2790 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
case 120:
/* Line 1806 of yacc.c */
#line 634 "parser.y"
{ num_init_set_ui((yyval.number),1); }
break; break;
case 121: case 121:
#line 599 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init_set_ui((yyval.number),1); }
#line 637 "parser.y" #line 2796 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ num_init((yyval.number));
simple_exp((yyval.number),(yyvsp[(1) - (2)].number),wmul
t,(yyvsp[(2) - (2)].number));
num_free((yyvsp[(1) - (2)].number));
num_free((yyvsp[(2) - (2)].number));}
break; break;
case 122: case 122:
#line 602 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 641 "parser.y"
{ num_init((yyval.number)); { num_init((yyval.number));
num_mul_si((yyvsp[(4) - (5)].number),(yyvsp[(4) simple_exp((yyval.number),(yyvsp[-1].number),wmult,(yyvs
- (5)].number),(yyvsp[(3) - (5)].integer)); p[0].number));
num_pow((yyvsp[(1) - (5)].number),(yyvsp[(1) - num_free((yyvsp[-1].number));
(5)].number),(yyvsp[(4) - (5)].number)); num_free((yyvsp[0].number));}
num_mul((yyval.number),(yyvsp[(1) - (5)].number #line 2805 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
),(yyvsp[(5) - (5)].number));
num_free((yyvsp[(1) - (5)].number));
num_free((yyvsp[(4) - (5)].number));
num_free((yyvsp[(5) - (5)].number));}
break; break;
case 123: case 123:
#line 606 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number));
#line 651 "parser.y" num_mul_si((yyvsp[-1].number),(yyvsp[-1].number
{ num_init((yyval.number)); num_set((yyval.number),(yyvsp[(2) - (3)].number) ),(yyvsp[-2].integer));
); num_free((yyvsp[(2) - (3)].number)); } num_pow((yyvsp[-4].number),(yyvsp[-4].number),(
yyvsp[-1].number));
num_mul((yyval.number),(yyvsp[-4].number),(yyvs
p[0].number));
num_free((yyvsp[-4].number));
num_free((yyvsp[-1].number));
num_free((yyvsp[0].number));}
#line 2817 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 124: case 124:
#line 616 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); num_set((yyval.number),(yyvsp[-1].number)); num_
#line 653 "parser.y" free((yyvsp[-1].number)); }
{ num_init((yyval.number)); num_set((yyval.number),(yyvsp[(2) - (3)].number) #line 2823 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
); num_free((yyvsp[(2) - (3)].number)); }
break; break;
case 125: case 125:
#line 618 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); num_set((yyval.number),(yyvsp[-1].number)); num_
#line 655 "parser.y" free((yyvsp[-1].number)); }
{ num_init((yyval.number)); num_set((yyval.number),(yyvsp[(2) - (3)].number) #line 2829 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
); num_free((yyvsp[(2) - (3)].number)); }
break; break;
case 126: case 126:
#line 620 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init((yyval.number)); num_set((yyval.number),(yyvsp[-1].number)); num_
#line 656 "parser.y" free((yyvsp[-1].number)); }
{ num_init_set_ui((yyval.number),0); } #line 2835 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 127: case 127:
#line 621 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */ { num_init_set_ui((yyval.number),0); }
#line 660 "parser.y" #line 2841 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
{ num_init((yyval.number)); num_set((yyval.number),(yyvsp[(1) - (1)].number)
); num_free((yyvsp[(1) - (1)].number)); }
break; break;
case 129: case 128:
#line 625 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{ num_init((yyval.number)); num_set((yyval.number),(yyvsp[0].number)); num_f
ree((yyvsp[0].number)); }
#line 2847 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break;
/* Line 1806 of yacc.c */ case 130:
#line 663 "parser.y" #line 628 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{ {
num_init((yyval.number)); num_init((yyval.number));
num_factorial((yyval.number),num_get_ui((yyvsp[(1) - (2)].number))); num_factorial((yyval.number),num_get_ui((yyvsp[-1].number)));
num_free((yyvsp[(1) - (2)].number)); num_free((yyvsp[-1].number));
} }
break; #line 2857 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
case 130:
/* Line 1806 of yacc.c */
#line 668 "parser.y"
{ num_init((yyval.number)); num_sqr((yyval.number),(yyvsp[(1) - (2)].number)
); num_free((yyvsp[(1) - (2)].number)); }
break; break;
case 131: case 131:
#line 633 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{ num_init((yyval.number)); num_sqr((yyval.number),(yyvsp[-1].number)); num_
free((yyvsp[-1].number)); }
#line 2863 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break;
/* Line 1806 of yacc.c */ case 132:
#line 670 "parser.y" #line 635 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
{ {
num_init((yyval.number)); num_init((yyval.number));
uber_function((yyval.number),(yyvsp[(1) - (2)].function),(yyvsp[(2) - uber_function((yyval.number),(yyvsp[-1].function),(yyvsp[0].number));
(2)].number)); num_free((yyvsp[0].number));
num_free((yyvsp[(2) - (2)].number));
} }
#line 2873 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
case 132: case 133:
#line 641 "../../../svn/src/common/parser.y" /* yacc.c:1646 */
/* Line 1806 of yacc.c */
#line 676 "parser.y"
{ {
num_init((yyval.number)); num_init((yyval.number));
num_mul_si((yyvsp[(3) - (3)].number),(yyvsp[(3) - (3)].number),(yyvsp[ num_mul_si((yyvsp[0].number),(yyvsp[0].number),(yyvsp[-1].integer));
(2) - (3)].integer)); uber_function((yyval.number),(yyvsp[-2].function),(yyvsp[0].number));
uber_function((yyval.number),(yyvsp[(1) - (3)].function),(yyvsp[(3) - num_free((yyvsp[0].number));
(3)].number));
num_free((yyvsp[(3) - (3)].number));
} }
#line 2884 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
break; break;
/* Line 1806 of yacc.c */ #line 2888 "../../../svn/src/common/parser.c" /* yacc.c:1646 */
#line 3231 "../../../svn/src/common/parser.c"
default: break; default: break;
} }
/* User semantic actions sometimes alter yychar, and that requires /* User semantic actions sometimes alter yychar, and that requires
that yytoken be updated with the new translation. We take the that yytoken be updated with the new translation. We take the
approach of translating immediately before every use of yytoken. approach of translating immediately before every use of yytoken.
One alternative is translating here after every semantic action, One alternative is translating here after every semantic action,
but that translation would be missed if the semantic action invokes but that translation would be missed if the semantic action invokes
YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
incorrect destructor might then be invoked immediately. In the incorrect destructor might then be invoked immediately. In the
skipping to change at line 3221 skipping to change at line 2884
to an incorrect destructor call or verbose syntax error message to an incorrect destructor call or verbose syntax error message
before the lookahead is translated. */ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen); YYPOPSTACK (yylen);
yylen = 0; yylen = 0;
YY_STACK_PRINT (yyss, yyssp); YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval; *++yyvsp = yyval;
/* Now `shift' the result of the reduction. Determine what state /* Now 'shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule that goes to, based on the state we popped back to and the rule
number reduced by. */ number reduced by. */
yyn = yyr1[yyn]; yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate]; yystate = yytable[yystate];
else else
yystate = yydefgoto[yyn - YYNTOKENS]; yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate; goto yynewstate;
/*------------------------------------. /*--------------------------------------.
| yyerrlab -- here on detecting error | | yyerrlab -- here on detecting error. |
`------------------------------------*/ `--------------------------------------*/
yyerrlab: yyerrlab:
/* Make sure we have latest lookahead translation. See comments at /* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */ user semantic actions for why this is necessary. */
yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
/* If not already recovering from an error, report this error. */ /* If not already recovering from an error, report this error. */
if (!yyerrstatus) if (!yyerrstatus)
{ {
++yynerrs; ++yynerrs;
#if ! YYERROR_VERBOSE #if ! YYERROR_VERBOSE
skipping to change at line 3286 skipping to change at line 2949
if (yysyntax_error_status == 2) if (yysyntax_error_status == 2)
goto yyexhaustedlab; goto yyexhaustedlab;
} }
# undef YYSYNTAX_ERROR # undef YYSYNTAX_ERROR
#endif #endif
} }
if (yyerrstatus == 3) if (yyerrstatus == 3)
{ {
/* If just tried and failed to reuse lookahead token after an /* If just tried and failed to reuse lookahead token after an
error, discard it. */ error, discard it. */
if (yychar <= YYEOF) if (yychar <= YYEOF)
{ {
/* Return failure if at end of input. */ /* Return failure if at end of input. */
if (yychar == YYEOF) if (yychar == YYEOF)
YYABORT; YYABORT;
} }
else else
{ {
yydestruct ("Error: discarding", yydestruct ("Error: discarding",
yytoken, &yylval); yytoken, &yylval);
yychar = YYEMPTY; yychar = YYEMPTY;
} }
} }
/* Else will try to reuse lookahead token after shifting the error /* Else will try to reuse lookahead token after shifting the error
token. */ token. */
goto yyerrlab1; goto yyerrlab1;
/*---------------------------------------------------. /*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR. | | yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/ `---------------------------------------------------*/
yyerrorlab: yyerrorlab:
/* Pacify compilers like GCC when the user code never invokes /* Pacify compilers like GCC when the user code never invokes
YYERROR and the label yyerrorlab therefore never appears in user YYERROR and the label yyerrorlab therefore never appears in user
code. */ code. */
if (/*CONSTCOND*/ 0) if (/*CONSTCOND*/ 0)
goto yyerrorlab; goto yyerrorlab;
/* Do not reclaim the symbols of the rule which action triggered /* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */ this YYERROR. */
YYPOPSTACK (yylen); YYPOPSTACK (yylen);
yylen = 0; yylen = 0;
YY_STACK_PRINT (yyss, yyssp); YY_STACK_PRINT (yyss, yyssp);
yystate = *yyssp; yystate = *yyssp;
goto yyerrlab1; goto yyerrlab1;
/*-------------------------------------------------------------. /*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR. | | yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/ `-------------------------------------------------------------*/
yyerrlab1: yyerrlab1:
yyerrstatus = 3; /* Each real token shifted decrements this. */ yyerrstatus = 3; /* Each real token shifted decrements this. */
for (;;) for (;;)
{ {
yyn = yypact[yystate]; yyn = yypact[yystate];
if (!yypact_value_is_default (yyn)) if (!yypact_value_is_default (yyn))
{ {
yyn += YYTERROR; yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
{ {
yyn = yytable[yyn]; yyn = yytable[yyn];
if (0 < yyn) if (0 < yyn)
break; break;
} }
} }
/* Pop the current state because it cannot handle the error token. */ /* Pop the current state because it cannot handle the error token. */
if (yyssp == yyss) if (yyssp == yyss)
YYABORT; YYABORT;
yydestruct ("Error: popping", yydestruct ("Error: popping",
yystos[yystate], yyvsp); yystos[yystate], yyvsp);
YYPOPSTACK (1); YYPOPSTACK (1);
yystate = *yyssp; yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp); YY_STACK_PRINT (yyss, yyssp);
} }
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval; *++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
/* Shift the error token. */ /* Shift the error token. */
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn; yystate = yyn;
goto yynewstate; goto yynewstate;
/*-------------------------------------. /*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here. | | yyacceptlab -- YYACCEPT comes here. |
`-------------------------------------*/ `-------------------------------------*/
skipping to change at line 3378 skipping to change at line 3043
yyresult = 0; yyresult = 0;
goto yyreturn; goto yyreturn;
/*-----------------------------------. /*-----------------------------------.
| yyabortlab -- YYABORT comes here. | | yyabortlab -- YYABORT comes here. |
`-----------------------------------*/ `-----------------------------------*/
yyabortlab: yyabortlab:
yyresult = 1; yyresult = 1;
goto yyreturn; goto yyreturn;
#if !defined(yyoverflow) || YYERROR_VERBOSE #if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------. /*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. | | yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/ `-------------------------------------------------*/
yyexhaustedlab: yyexhaustedlab:
yyerror (YY_("memory exhausted")); yyerror (YY_("memory exhausted"));
yyresult = 2; yyresult = 2;
/* Fall through. */ /* Fall through. */
#endif #endif
yyreturn: yyreturn:
if (yychar != YYEMPTY) if (yychar != YYEMPTY)
{ {
/* Make sure we have latest lookahead translation. See comments at /* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */ user semantic actions for why this is necessary. */
yytoken = YYTRANSLATE (yychar); yytoken = YYTRANSLATE (yychar);
yydestruct ("Cleanup: discarding lookahead", yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval); yytoken, &yylval);
} }
/* Do not reclaim the symbols of the rule which action triggered /* Do not reclaim the symbols of the rule whose action triggered
this YYABORT or YYACCEPT. */ this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen); YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp); YY_STACK_PRINT (yyss, yyssp);
while (yyssp != yyss) while (yyssp != yyss)
{ {
yydestruct ("Cleanup: popping", yydestruct ("Cleanup: popping",
yystos[*yyssp], yyvsp); yystos[*yyssp], yyvsp);
YYPOPSTACK (1); YYPOPSTACK (1);
} }
#ifndef yyoverflow #ifndef yyoverflow
if (yyss != yyssa) if (yyss != yyssa)
YYSTACK_FREE (yyss); YYSTACK_FREE (yyss);
#endif #endif
#if YYERROR_VERBOSE #if YYERROR_VERBOSE
if (yymsg != yymsgbuf) if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg); YYSTACK_FREE (yymsg);
#endif #endif
/* Make sure YYID is used. */ return yyresult;
return YYID (yyresult);
} }
#line 649 "../../../svn/src/common/parser.y" /* yacc.c:1906 */
/* Line 2067 of yacc.c */
#line 684 "parser.y"
int int
yyerror(char *error_string, ...) { yyerror(char *error_string, ...) {
va_list ap; va_list ap;
char error[1000]; char error[1000];
++synerrors; ++synerrors;
va_start(ap,error_string); va_start(ap,error_string);
vsnprintf(error,1000,error_string,ap); vsnprintf(error,1000,error_string,ap);
 End of changes. 394 change blocks. 
1785 lines changed or deleted 1419 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS