Code coverage tests

This page documents the degree to which the PARI/GP source code is tested by our public test suite, distributed with the source distribution in directory src/test/. This is measured by the gcov utility; we then process gcov output using the lcov frond-end.

We test a few variants depending on Configure flags on the pari.math.u-bordeaux.fr machine (x86_64 architecture), and agregate them in the final report:

The target is to exceed 90% coverage for all mathematical modules (given that branches depending on DEBUGLEVEL or DEBUGMEM are not covered). This script is run to produce the results below.

LCOV - code coverage report
Current view: top level - language - parse.c (source / functions) Coverage Total Hit
Test: PARI/GP v2.18.1 lcov report (development 31042-0fbe168e69) Lines: 78.3 % 563 441
Test Date: 2026-07-23 17:04:59 Functions: 87.5 % 8 7
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* A Bison parser, made by GNU Bison 3.8.2.  */
       2              : 
       3              : /* Bison implementation for Yacc-like parsers in C
       4              : 
       5              :    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
       6              :    Inc.
       7              : 
       8              :    This program is free software: you can redistribute it and/or modify
       9              :    it under the terms of the GNU General Public License as published by
      10              :    the Free Software Foundation, either version 3 of the License, or
      11              :    (at your option) any later version.
      12              : 
      13              :    This program is distributed in the hope that it will be useful,
      14              :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      15              :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      16              :    GNU General Public License for more details.
      17              : 
      18              :    You should have received a copy of the GNU General Public License
      19              :    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      20              : 
      21              : /* As a special exception, you may create a larger work that contains
      22              :    part or all of the Bison parser skeleton and distribute that work
      23              :    under terms of your choice, so long as that work isn't itself a
      24              :    parser generator using the skeleton or a modified version thereof
      25              :    as a parser skeleton.  Alternatively, if you modify or redistribute
      26              :    the parser skeleton itself, you may (at your option) remove this
      27              :    special exception, which will cause the skeleton and the resulting
      28              :    Bison output files to be licensed under the GNU General Public
      29              :    License without this special exception.
      30              : 
      31              :    This special exception was added by the Free Software Foundation in
      32              :    version 2.2 of Bison.  */
      33              : 
      34              : /* C LALR(1) parser skeleton written by Richard Stallman, by
      35              :    simplifying the original so-called "semantic" parser.  */
      36              : 
      37              : /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
      38              :    especially those whose name start with YY_ or yy_.  They are
      39              :    private implementation details that can be changed or removed.  */
      40              : 
      41              : /* All symbols defined below should begin with yy or YY, to avoid
      42              :    infringing on user name space.  This should be done even for local
      43              :    variables, as they might otherwise be expanded by user macros.
      44              :    There are some unavoidable exceptions within include files to
      45              :    define necessary library symbols; they are noted "INFRINGES ON
      46              :    USER NAME SPACE" below.  */
      47              : 
      48              : /* Identify Bison output, and Bison version.  */
      49              : #define YYBISON 30802
      50              : 
      51              : /* Bison version string.  */
      52              : #define YYBISON_VERSION "3.8.2"
      53              : 
      54              : /* Skeleton name.  */
      55              : #define YYSKELETON_NAME "yacc.c"
      56              : 
      57              : /* Pure parsers.  */
      58              : #define YYPURE 2
      59              : 
      60              : /* Push parsers.  */
      61              : #define YYPUSH 0
      62              : 
      63              : /* Pull parsers.  */
      64              : #define YYPULL 1
      65              : 
      66              : /* Substitute the type names.  */
      67              : #define YYSTYPE         PARI_STYPE
      68              : #define YYLTYPE         PARI_LTYPE
      69              : /* Substitute the variable and function names.  */
      70              : #define yyparse         pari_parse
      71              : #define yylex           pari_lex
      72              : #define yyerror         pari_error
      73              : #define yydebug         pari_debug
      74              : #define yynerrs         pari_nerrs
      75              : 
      76              : /* First part of user prologue.  */
      77              : #line 1 "../src/language/parse.y"
      78              : 
      79              : /* Copyright (C) 2006  The PARI group.
      80              : 
      81              : This file is part of the PARI package.
      82              : 
      83              : PARI/GP is free software; you can redistribute it and/or modify it under the
      84              : terms of the GNU General Public License as published by the Free Software
      85              : Foundation; either version 2 of the License, or (at your option) any later
      86              : version. It is distributed in the hope that it will be useful, but WITHOUT
      87              : ANY WARRANTY WHATSOEVER.
      88              : 
      89              : Check the License for details. You should have received a copy of it, along
      90              : with the package; see the file 'COPYING'. If not, write to the Free Software
      91              : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
      92              : 
      93              : #define PARI_STYPE union token_value
      94              : #define PARI_LTYPE struct node_loc
      95              : #define YYPTRDIFF_T long
      96              : #define YYPTRDIFF_MAXIMUM LONG_MAX
      97              : #define YYSIZE_T size_t
      98              : #define YYLLOC_DEFAULT(Current, Rhs, N)     \
      99              :         ((Current).start  = ((N)?(Rhs)[1].start:(Rhs)[0].end),  \
     100              :          (Current).end    = (Rhs)[N].end)
     101              : #include "parsec.h"
     102              : #define NOARG(x) newnode(Fnoarg,-1,-1,&(x))
     103              : #define NORANGE(x) newnode(Fnorange,-1,-1,&(x))
     104              : 
     105              : #line 106 "../src/language/parse.c"
     106              : 
     107              : # ifndef YY_CAST
     108              : #  ifdef __cplusplus
     109              : #   define YY_CAST(Type, Val) static_cast<Type> (Val)
     110              : #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
     111              : #  else
     112              : #   define YY_CAST(Type, Val) ((Type) (Val))
     113              : #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
     114              : #  endif
     115              : # endif
     116              : # ifndef YY_NULLPTR
     117              : #  if defined __cplusplus
     118              : #   if 201103L <= __cplusplus
     119              : #    define YY_NULLPTR nullptr
     120              : #   else
     121              : #    define YY_NULLPTR 0
     122              : #   endif
     123              : #  else
     124              : #   define YY_NULLPTR ((void*)0)
     125              : #  endif
     126              : # endif
     127              : 
     128              : #include "parse.h"
     129              : /* Symbol kind.  */
     130              : enum yysymbol_kind_t
     131              : {
     132              :   YYSYMBOL_YYEMPTY = -2,
     133              :   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
     134              :   YYSYMBOL_YYerror = 1,                    /* error  */
     135              :   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
     136              :   YYSYMBOL_KPARROW = 3,                    /* ")->"  */
     137              :   YYSYMBOL_KARROW = 4,                     /* "->"  */
     138              :   YYSYMBOL_KDOTDOT = 5,                    /* ".."  */
     139              :   YYSYMBOL_KPE = 6,                        /* "+="  */
     140              :   YYSYMBOL_KSE = 7,                        /* "-="  */
     141              :   YYSYMBOL_KME = 8,                        /* "*="  */
     142              :   YYSYMBOL_KDE = 9,                        /* "/="  */
     143              :   YYSYMBOL_KDRE = 10,                      /* "\\/="  */
     144              :   YYSYMBOL_KEUCE = 11,                     /* "\\="  */
     145              :   YYSYMBOL_KMODE = 12,                     /* "%="  */
     146              :   YYSYMBOL_KAND = 13,                      /* "&&"  */
     147              :   YYSYMBOL_KOR = 14,                       /* "||"  */
     148              :   YYSYMBOL_KID = 15,                       /* "==="  */
     149              :   YYSYMBOL_KEQ = 16,                       /* "=="  */
     150              :   YYSYMBOL_KNE = 17,                       /* "!="  */
     151              :   YYSYMBOL_KGE = 18,                       /* ">="  */
     152              :   YYSYMBOL_KLE = 19,                       /* "<="  */
     153              :   YYSYMBOL_KSRE = 20,                      /* ">>="  */
     154              :   YYSYMBOL_KSLE = 21,                      /* "<<="  */
     155              :   YYSYMBOL_KSR = 22,                       /* ">>"  */
     156              :   YYSYMBOL_KSL = 23,                       /* "<<"  */
     157              :   YYSYMBOL_KDR = 24,                       /* "\\/"  */
     158              :   YYSYMBOL_KPP = 25,                       /* "++"  */
     159              :   YYSYMBOL_KSS = 26,                       /* "--"  */
     160              :   YYSYMBOL_KINTEGER = 27,                  /* "integer"  */
     161              :   YYSYMBOL_KREAL = 28,                     /* "real number"  */
     162              :   YYSYMBOL_KENTRY = 29,                    /* "variable name"  */
     163              :   YYSYMBOL_KSTRING = 30,                   /* "character string"  */
     164              :   YYSYMBOL_SEQ = 31,                       /* SEQ  */
     165              :   YYSYMBOL_DEFFUNC = 32,                   /* DEFFUNC  */
     166              :   YYSYMBOL_INT = 33,                       /* INT  */
     167              :   YYSYMBOL_LVAL = 34,                      /* LVAL  */
     168              :   YYSYMBOL_35_ = 35,                       /* ';'  */
     169              :   YYSYMBOL_36_ = 36,                       /* ','  */
     170              :   YYSYMBOL_37_ = 37,                       /* '='  */
     171              :   YYSYMBOL_38_ = 38,                       /* '&'  */
     172              :   YYSYMBOL_39_ = 39,                       /* '>'  */
     173              :   YYSYMBOL_40_ = 40,                       /* '<'  */
     174              :   YYSYMBOL_41_ = 41,                       /* '+'  */
     175              :   YYSYMBOL_42_ = 42,                       /* '-'  */
     176              :   YYSYMBOL_43_ = 43,                       /* '%'  */
     177              :   YYSYMBOL_44_ = 44,                       /* '\\'  */
     178              :   YYSYMBOL_45_ = 45,                       /* '/'  */
     179              :   YYSYMBOL_46_ = 46,                       /* '*'  */
     180              :   YYSYMBOL_SIGN = 47,                      /* SIGN  */
     181              :   YYSYMBOL_48_ = 48,                       /* '^'  */
     182              :   YYSYMBOL_49_ = 49,                       /* '#'  */
     183              :   YYSYMBOL_50_ = 50,                       /* '!'  */
     184              :   YYSYMBOL_51_ = 51,                       /* '~'  */
     185              :   YYSYMBOL_52_ = 52,                       /* '['  */
     186              :   YYSYMBOL_DERIV = 53,                     /* DERIV  */
     187              :   YYSYMBOL_54_ = 54,                       /* '\''  */
     188              :   YYSYMBOL_55_ = 55,                       /* '.'  */
     189              :   YYSYMBOL_56_ = 56,                       /* '('  */
     190              :   YYSYMBOL_57_ = 57,                       /* ':'  */
     191              :   YYSYMBOL_58_ = 58,                       /* ']'  */
     192              :   YYSYMBOL_59_ = 59,                       /* '`'  */
     193              :   YYSYMBOL_60_ = 60,                       /* ')'  */
     194              :   YYSYMBOL_61_ = 61,                       /* '|'  */
     195              :   YYSYMBOL_YYACCEPT = 62,                  /* $accept  */
     196              :   YYSYMBOL_sequence = 63,                  /* sequence  */
     197              :   YYSYMBOL_seq = 64,                       /* seq  */
     198              :   YYSYMBOL_range = 65,                     /* range  */
     199              :   YYSYMBOL_matrix_index = 66,              /* matrix_index  */
     200              :   YYSYMBOL_backticks = 67,                 /* backticks  */
     201              :   YYSYMBOL_history = 68,                   /* history  */
     202              :   YYSYMBOL_deriv = 69,                     /* deriv  */
     203              :   YYSYMBOL_expr = 70,                      /* expr  */
     204              :   YYSYMBOL_lvalue = 71,                    /* lvalue  */
     205              :   YYSYMBOL_exprno = 72,                    /* exprno  */
     206              :   YYSYMBOL_matrixeltsno = 73,              /* matrixeltsno  */
     207              :   YYSYMBOL_matrixelts = 74,                /* matrixelts  */
     208              :   YYSYMBOL_matrixlines = 75,               /* matrixlines  */
     209              :   YYSYMBOL_matrix = 76,                    /* matrix  */
     210              :   YYSYMBOL_in = 77,                        /* in  */
     211              :   YYSYMBOL_eq = 78,                        /* eq  */
     212              :   YYSYMBOL_inseq = 79,                     /* inseq  */
     213              :   YYSYMBOL_compr = 80,                     /* compr  */
     214              :   YYSYMBOL_arg = 81,                       /* arg  */
     215              :   YYSYMBOL_82_1 = 82,                      /* $@1  */
     216              :   YYSYMBOL_listarg = 83,                   /* listarg  */
     217              :   YYSYMBOL_funcid = 84,                    /* funcid  */
     218              :   YYSYMBOL_memberid = 85,                  /* memberid  */
     219              :   YYSYMBOL_definition = 86                 /* definition  */
     220              : };
     221              : typedef enum yysymbol_kind_t yysymbol_kind_t;
     222              : 
     223              : 
     224              : 
     225              : 
     226              : #ifdef short
     227              : # undef short
     228              : #endif
     229              : 
     230              : /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
     231              :    <limits.h> and (if available) <stdint.h> are included
     232              :    so that the code can choose integer types of a good width.  */
     233              : 
     234              : #ifndef __PTRDIFF_MAX__
     235              : # include <limits.h> /* INFRINGES ON USER NAME SPACE */
     236              : # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
     237              : #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
     238              : #  define YY_STDINT_H
     239              : # endif
     240              : #endif
     241              : 
     242              : /* Narrow types that promote to a signed type and that can represent a
     243              :    signed or unsigned integer of at least N bits.  In tables they can
     244              :    save space and decrease cache pressure.  Promoting to a signed type
     245              :    helps avoid bugs in integer arithmetic.  */
     246              : 
     247              : #ifdef __INT_LEAST8_MAX__
     248              : typedef __INT_LEAST8_TYPE__ yytype_int8;
     249              : #elif defined YY_STDINT_H
     250              : typedef int_least8_t yytype_int8;
     251              : #else
     252              : typedef signed char yytype_int8;
     253              : #endif
     254              : 
     255              : #ifdef __INT_LEAST16_MAX__
     256              : typedef __INT_LEAST16_TYPE__ yytype_int16;
     257              : #elif defined YY_STDINT_H
     258              : typedef int_least16_t yytype_int16;
     259              : #else
     260              : typedef short yytype_int16;
     261              : #endif
     262              : 
     263              : /* Work around bug in HP-UX 11.23, which defines these macros
     264              :    incorrectly for preprocessor constants.  This workaround can likely
     265              :    be removed in 2023, as HPE has promised support for HP-UX 11.23
     266              :    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
     267              :    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
     268              : #ifdef __hpux
     269              : # undef UINT_LEAST8_MAX
     270              : # undef UINT_LEAST16_MAX
     271              : # define UINT_LEAST8_MAX 255
     272              : # define UINT_LEAST16_MAX 65535
     273              : #endif
     274              : 
     275              : #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
     276              : typedef __UINT_LEAST8_TYPE__ yytype_uint8;
     277              : #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
     278              :        && UINT_LEAST8_MAX <= INT_MAX)
     279              : typedef uint_least8_t yytype_uint8;
     280              : #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
     281              : typedef unsigned char yytype_uint8;
     282              : #else
     283              : typedef short yytype_uint8;
     284              : #endif
     285              : 
     286              : #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
     287              : typedef __UINT_LEAST16_TYPE__ yytype_uint16;
     288              : #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
     289              :        && UINT_LEAST16_MAX <= INT_MAX)
     290              : typedef uint_least16_t yytype_uint16;
     291              : #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
     292              : typedef unsigned short yytype_uint16;
     293              : #else
     294              : typedef int yytype_uint16;
     295              : #endif
     296              : 
     297              : #ifndef YYPTRDIFF_T
     298              : # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
     299              : #  define YYPTRDIFF_T __PTRDIFF_TYPE__
     300              : #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
     301              : # elif defined PTRDIFF_MAX
     302              : #  ifndef ptrdiff_t
     303              : #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
     304              : #  endif
     305              : #  define YYPTRDIFF_T ptrdiff_t
     306              : #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
     307              : # else
     308              : #  define YYPTRDIFF_T long
     309              : #  define YYPTRDIFF_MAXIMUM LONG_MAX
     310              : # endif
     311              : #endif
     312              : 
     313              : #ifndef YYSIZE_T
     314              : # ifdef __SIZE_TYPE__
     315              : #  define YYSIZE_T __SIZE_TYPE__
     316              : # elif defined size_t
     317              : #  define YYSIZE_T size_t
     318              : # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
     319              : #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
     320              : #  define YYSIZE_T size_t
     321              : # else
     322              : #  define YYSIZE_T unsigned
     323              : # endif
     324              : #endif
     325              : 
     326              : #define YYSIZE_MAXIMUM                                  \
     327              :   YY_CAST (YYPTRDIFF_T,                                 \
     328              :            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
     329              :             ? YYPTRDIFF_MAXIMUM                         \
     330              :             : YY_CAST (YYSIZE_T, -1)))
     331              : 
     332              : #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
     333              : 
     334              : 
     335              : /* Stored state numbers (used for stacks). */
     336              : typedef yytype_uint8 yy_state_t;
     337              : 
     338              : /* State numbers in computations.  */
     339              : typedef int yy_state_fast_t;
     340              : 
     341              : #ifndef YY_
     342              : # if defined YYENABLE_NLS && YYENABLE_NLS
     343              : #  if ENABLE_NLS
     344              : #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
     345              : #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
     346              : #  endif
     347              : # endif
     348              : # ifndef YY_
     349              : #  define YY_(Msgid) Msgid
     350              : # endif
     351              : #endif
     352              : 
     353              : 
     354              : #ifndef YY_ATTRIBUTE_PURE
     355              : # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
     356              : #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
     357              : # else
     358              : #  define YY_ATTRIBUTE_PURE
     359              : # endif
     360              : #endif
     361              : 
     362              : #ifndef YY_ATTRIBUTE_UNUSED
     363              : # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
     364              : #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
     365              : # else
     366              : #  define YY_ATTRIBUTE_UNUSED
     367              : # endif
     368              : #endif
     369              : 
     370              : /* Suppress unused-variable warnings by "using" E.  */
     371              : #if ! defined lint || defined __GNUC__
     372              : # define YY_USE(E) ((void) (E))
     373              : #else
     374              : # define YY_USE(E) /* empty */
     375              : #endif
     376              : 
     377              : /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
     378              : #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
     379              : # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
     380              : #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
     381              :     _Pragma ("GCC diagnostic push")                                     \
     382              :     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
     383              : # else
     384              : #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
     385              :     _Pragma ("GCC diagnostic push")                                     \
     386              :     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
     387              :     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
     388              : # endif
     389              : # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
     390              :     _Pragma ("GCC diagnostic pop")
     391              : #else
     392              : # define YY_INITIAL_VALUE(Value) Value
     393              : #endif
     394              : #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     395              : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     396              : # define YY_IGNORE_MAYBE_UNINITIALIZED_END
     397              : #endif
     398              : #ifndef YY_INITIAL_VALUE
     399              : # define YY_INITIAL_VALUE(Value) /* Nothing. */
     400              : #endif
     401              : 
     402              : #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
     403              : # define YY_IGNORE_USELESS_CAST_BEGIN                          \
     404              :     _Pragma ("GCC diagnostic push")                            \
     405              :     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
     406              : # define YY_IGNORE_USELESS_CAST_END            \
     407              :     _Pragma ("GCC diagnostic pop")
     408              : #endif
     409              : #ifndef YY_IGNORE_USELESS_CAST_BEGIN
     410              : # define YY_IGNORE_USELESS_CAST_BEGIN
     411              : # define YY_IGNORE_USELESS_CAST_END
     412              : #endif
     413              : 
     414              : 
     415              : #define YY_ASSERT(E) ((void) (0 && (E)))
     416              : 
     417              : #if 1
     418              : 
     419              : /* The parser invokes alloca or malloc; define the necessary symbols.  */
     420              : 
     421              : # ifdef YYSTACK_USE_ALLOCA
     422              : #  if YYSTACK_USE_ALLOCA
     423              : #   ifdef __GNUC__
     424              : #    define YYSTACK_ALLOC __builtin_alloca
     425              : #   elif defined __BUILTIN_VA_ARG_INCR
     426              : #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
     427              : #   elif defined _AIX
     428              : #    define YYSTACK_ALLOC __alloca
     429              : #   elif defined _MSC_VER
     430              : #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
     431              : #    define alloca _alloca
     432              : #   else
     433              : #    define YYSTACK_ALLOC alloca
     434              : #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
     435              : #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     436              :       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
     437              : #     ifndef EXIT_SUCCESS
     438              : #      define EXIT_SUCCESS 0
     439              : #     endif
     440              : #    endif
     441              : #   endif
     442              : #  endif
     443              : # endif
     444              : 
     445              : # ifdef YYSTACK_ALLOC
     446              :    /* Pacify GCC's 'empty if-body' warning.  */
     447              : #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
     448              : #  ifndef YYSTACK_ALLOC_MAXIMUM
     449              :     /* The OS might guarantee only one guard page at the bottom of the stack,
     450              :        and a page size can be as small as 4096 bytes.  So we cannot safely
     451              :        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
     452              :        to allow for a few compiler-allocated temporary stack slots.  */
     453              : #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
     454              : #  endif
     455              : # else
     456              : #  define YYSTACK_ALLOC YYMALLOC
     457              : #  define YYSTACK_FREE YYFREE
     458              : #  ifndef YYSTACK_ALLOC_MAXIMUM
     459              : #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
     460              : #  endif
     461              : #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
     462              :        && ! ((defined YYMALLOC || defined malloc) \
     463              :              && (defined YYFREE || defined free)))
     464              : #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     465              : #   ifndef EXIT_SUCCESS
     466              : #    define EXIT_SUCCESS 0
     467              : #   endif
     468              : #  endif
     469              : #  ifndef YYMALLOC
     470              : #   define YYMALLOC malloc
     471              : #   if ! defined malloc && ! defined EXIT_SUCCESS
     472              : void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
     473              : #   endif
     474              : #  endif
     475              : #  ifndef YYFREE
     476              : #   define YYFREE free
     477              : #   if ! defined free && ! defined EXIT_SUCCESS
     478              : void free (void *); /* INFRINGES ON USER NAME SPACE */
     479              : #   endif
     480              : #  endif
     481              : # endif
     482              : #endif /* 1 */
     483              : 
     484              : #if (! defined yyoverflow \
     485              :      && (! defined __cplusplus \
     486              :          || (defined PARI_LTYPE_IS_TRIVIAL && PARI_LTYPE_IS_TRIVIAL \
     487              :              && defined PARI_STYPE_IS_TRIVIAL && PARI_STYPE_IS_TRIVIAL)))
     488              : 
     489              : /* A type that is properly aligned for any stack member.  */
     490              : union yyalloc
     491              : {
     492              :   yy_state_t yyss_alloc;
     493              :   YYSTYPE yyvs_alloc;
     494              :   YYLTYPE yyls_alloc;
     495              : };
     496              : 
     497              : /* The size of the maximum gap between one aligned stack and the next.  */
     498              : # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
     499              : 
     500              : /* The size of an array large to enough to hold all stacks, each with
     501              :    N elements.  */
     502              : # define YYSTACK_BYTES(N) \
     503              :      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
     504              :              + YYSIZEOF (YYLTYPE)) \
     505              :       + 2 * YYSTACK_GAP_MAXIMUM)
     506              : 
     507              : # define YYCOPY_NEEDED 1
     508              : 
     509              : /* Relocate STACK from its old location to the new one.  The
     510              :    local variables YYSIZE and YYSTACKSIZE give the old and new number of
     511              :    elements in the stack, and YYPTR gives the new location of the
     512              :    stack.  Advance YYPTR to a properly aligned location for the next
     513              :    stack.  */
     514              : # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     515              :     do                                                                  \
     516              :       {                                                                 \
     517              :         YYPTRDIFF_T yynewbytes;                                         \
     518              :         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
     519              :         Stack = &yyptr->Stack_alloc;                                    \
     520              :         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
     521              :         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
     522              :       }                                                                 \
     523              :     while (0)
     524              : 
     525              : #endif
     526              : 
     527              : #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
     528              : /* Copy COUNT objects from SRC to DST.  The source and destination do
     529              :    not overlap.  */
     530              : # ifndef YYCOPY
     531              : #  if defined __GNUC__ && 1 < __GNUC__
     532              : #   define YYCOPY(Dst, Src, Count) \
     533              :       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
     534              : #  else
     535              : #   define YYCOPY(Dst, Src, Count)              \
     536              :       do                                        \
     537              :         {                                       \
     538              :           YYPTRDIFF_T yyi;                      \
     539              :           for (yyi = 0; yyi < (Count); yyi++)   \
     540              :             (Dst)[yyi] = (Src)[yyi];            \
     541              :         }                                       \
     542              :       while (0)
     543              : #  endif
     544              : # endif
     545              : #endif /* !YYCOPY_NEEDED */
     546              : 
     547              : /* YYFINAL -- State number of the termination state.  */
     548              : #define YYFINAL  48
     549              : /* YYLAST -- Last index in YYTABLE.  */
     550              : #define YYLAST   737
     551              : 
     552              : /* YYNTOKENS -- Number of terminals.  */
     553              : #define YYNTOKENS  62
     554              : /* YYNNTS -- Number of nonterminals.  */
     555              : #define YYNNTS  25
     556              : /* YYNRULES -- Number of rules.  */
     557              : #define YYNRULES  121
     558              : /* YYNSTATES -- Number of states.  */
     559              : #define YYNSTATES  206
     560              : 
     561              : /* YYMAXUTOK -- Last valid token kind.  */
     562              : #define YYMAXUTOK   291
     563              : 
     564              : 
     565              : /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
     566              :    as returned by yylex, with out-of-bounds checking.  */
     567              : #define YYTRANSLATE(YYX)                                \
     568              :   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
     569              :    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
     570              :    : YYSYMBOL_YYUNDEF)
     571              : 
     572              : /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
     573              :    as returned by yylex.  */
     574              : static const yytype_int8 yytranslate[] =
     575              : {
     576              :        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     577              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     578              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     579              :        2,     2,     2,    50,     2,    49,     2,    43,    38,    54,
     580              :       56,    60,    46,    41,    36,    42,    55,    45,     2,     2,
     581              :        2,     2,     2,     2,     2,     2,     2,     2,    57,    35,
     582              :       40,    37,    39,     2,     2,     2,     2,     2,     2,     2,
     583              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     584              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     585              :        2,    52,    44,    58,    48,     2,    59,     2,     2,     2,
     586              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     587              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     588              :        2,     2,     2,     2,    61,     2,    51,     2,     2,     2,
     589              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     590              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     591              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     592              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     593              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     594              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     595              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     596              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     597              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     598              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     599              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     600              :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     601              :        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
     602              :        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     603              :       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     604              :       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
     605              :       47,    53
     606              : };
     607              : 
     608              : #if PARI_DEBUG
     609              : /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
     610              : static const yytype_uint8 yyrline[] =
     611              : {
     612              :        0,    90,    90,    93,    94,    95,    96,    99,   100,   101,
     613              :      102,   105,   106,   109,   110,   113,   114,   115,   116,   117,
     614              :      118,   121,   122,   125,   126,   127,   128,   130,   131,   132,
     615              :      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
     616              :      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
     617              :      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
     618              :      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
     619              :      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
     620              :      183,   186,   187,   188,   191,   192,   194,   195,   198,   199,
     621              :      202,   203,   206,   207,   208,   209,   210,   213,   216,   219,
     622              :      220,   221,   222,   223,   224,   225,   226,   229,   232,   233,
     623              :      234,   235,   236,   236,   240,   241,   244,   247,   250,   252,
     624              :      254,   255
     625              : };
     626              : #endif
     627              : 
     628              : /** Accessing symbol of state STATE.  */
     629              : #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
     630              : 
     631              : #if 1
     632              : /* The user-facing name of the symbol whose (internal) number is
     633              :    YYSYMBOL.  No bounds checking.  */
     634              : static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
     635              : 
     636              : /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
     637              :    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     638              : static const char *const yytname[] =
     639              : {
     640              :   "\"end of file\"", "error", "\"invalid token\"", "\")->\"", "\"->\"",
     641              :   "\"..\"", "\"+=\"", "\"-=\"", "\"*=\"", "\"/=\"", "\"\\\\/=\"",
     642              :   "\"\\\\=\"", "\"%=\"", "\"&&\"", "\"||\"", "\"===\"", "\"==\"", "\"!=\"",
     643              :   "\">=\"", "\"<=\"", "\">>=\"", "\"<<=\"", "\">>\"", "\"<<\"",
     644              :   "\"\\\\/\"", "\"++\"", "\"--\"", "\"integer\"", "\"real number\"",
     645              :   "\"variable name\"", "\"character string\"", "SEQ", "DEFFUNC", "INT",
     646              :   "LVAL", "';'", "','", "'='", "'&'", "'>'", "'<'", "'+'", "'-'", "'%'",
     647              :   "'\\\\'", "'/'", "'*'", "SIGN", "'^'", "'#'", "'!'", "'~'", "'['",
     648              :   "DERIV", "'\\''", "'.'", "'('", "':'", "']'", "'`'", "')'", "'|'",
     649              :   "$accept", "sequence", "seq", "range", "matrix_index", "backticks",
     650              :   "history", "deriv", "expr", "lvalue", "exprno", "matrixeltsno",
     651              :   "matrixelts", "matrixlines", "matrix", "in", "eq", "inseq", "compr",
     652              :   "arg", "$@1", "listarg", "funcid", "memberid", "definition", YY_NULLPTR
     653              : };
     654              : 
     655              : static const char *
     656            0 : yysymbol_name (yysymbol_kind_t yysymbol)
     657              : {
     658            0 :   return yytname[yysymbol];
     659              : }
     660              : #endif
     661              : 
     662              : #define YYPACT_NINF (-115)
     663              : 
     664              : #define yypact_value_is_default(Yyn) \
     665              :   ((Yyn) == YYPACT_NINF)
     666              : 
     667              : #define YYTABLE_NINF (-116)
     668              : 
     669              : #define yytable_value_is_error(Yyn) \
     670              :   0
     671              : 
     672              : /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     673              :    STATE-NUM.  */
     674              : static const yytype_int16 yypact[] =
     675              : {
     676              :      681,   -38,  -115,   -27,  -115,   681,   681,    47,   681,   681,
     677              :      646,    43,  -115,   107,    24,    50,  -115,   521,   103,    56,
     678              :     -115,  -115,  -115,  -115,    66,   107,   158,   158,  -115,   -18,
     679              :     -115,    39,   -29,    62,    64,  -115,   181,    65,   -25,   -19,
     680              :     -115,    91,    91,    50,   337,   237,    31,     4,  -115,   681,
     681              :      681,   681,   681,   681,   681,   681,   681,   681,   681,   681,
     682              :      681,   681,   681,   681,   681,   681,   681,   681,   681,   681,
     683              :     -115,  -115,  -115,   664,  -115,    97,   107,   109,  -115,    71,
     684              :      681,   681,   681,   681,   681,   681,   681,   681,   681,   681,
     685              :     -115,  -115,   681,   110,  -115,   681,  -115,   -24,  -115,    39,
     686              :     -115,  -115,   681,    91,   681,   681,  -115,   681,  -115,  -115,
     687              :      -39,   -39,  -115,   293,  -115,   681,   107,   521,   564,   564,
     688              :      600,   600,   600,   600,   600,   158,   158,   158,   564,   600,
     689              :      600,   615,   615,   158,   158,   158,   158,   158,   681,   -16,
     690              :      262,   104,   -17,  -115,  -115,    50,   521,   521,   521,   521,
     691              :      521,   521,   521,   521,   521,   521,  -115,   521,   114,   385,
     692              :       90,    96,   108,    88,   521,  -115,   521,   116,   116,   106,
     693              :      681,    50,    34,   521,   664,  -115,   681,   681,  -115,   681,
     694              :     -115,   681,   112,    91,   681,    91,   681,  -115,  -115,   521,
     695              :      115,   521,    50,    50,   521,   681,  -115,   431,  -115,   476,
     696              :     -115,   521,    91,    91,  -115,  -115
     697              : };
     698              : 
     699              : /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
     700              :    Performed when YYTABLE does not specify something else to do.  Zero
     701              :    means the default is an error.  */
     702              : static const yytype_int8 yydefact[] =
     703              : {
     704              :        3,    23,    24,    81,    27,     0,     0,    15,     0,     0,
     705              :       87,     0,    25,     3,     0,     2,    29,     4,    32,    33,
     706              :       34,    31,    78,    35,     0,     3,    70,    71,    16,    18,
     707              :       13,    17,    50,    49,     0,    92,    88,     0,    86,     0,
     708              :       28,     0,     0,   108,     4,    32,     0,     0,     1,     5,
     709              :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     710              :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     711              :       76,    75,    73,     7,    21,     0,     3,     0,    77,    74,
     712              :        3,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     713              :       38,    39,     0,     0,    82,     0,    26,     0,    19,    20,
     714              :       14,    94,     0,     0,    85,    87,    95,    87,    96,    81,
     715              :      110,   111,    80,     7,   112,     3,     3,     6,    52,    51,
     716              :       54,    55,    56,    57,    59,    64,    63,    66,    53,    58,
     717              :       60,    62,    61,    65,    67,    68,    69,    72,     0,     0,
     718              :        8,   117,     0,    79,    22,   120,    47,    48,    40,    41,
     719              :       42,    43,    44,    46,    45,    37,    83,    36,   116,     0,
     720              :        0,    99,   103,     0,    84,    89,    88,    90,    91,     0,
     721              :        0,   121,     0,    10,     7,    12,     0,     3,    30,     3,
     722              :       93,     0,     0,     0,     0,     0,     0,   107,   109,   113,
     723              :        0,     9,   119,   118,    98,     0,   101,   100,   105,   104,
     724              :       11,    97,     0,     0,   102,   106
     725              : };
     726              : 
     727              : /* YYPGOTO[NTERM-NUM].  */
     728              : static const yytype_int16 yypgoto[] =
     729              : {
     730              :     -115,  -115,     6,    -8,    -7,   138,  -115,  -115,    -5,   -11,
     731              :     -115,  -115,   -32,  -115,  -115,  -115,  -115,  -114,  -115,    52,
     732              :     -115,   -10,  -115,  -115,  -115
     733              : };
     734              : 
     735              : /* YYDEFGOTO[NTERM-NUM].  */
     736              : static const yytype_uint8 yydefgoto[] =
     737              : {
     738              :        0,    14,    43,   139,    78,    31,    16,    79,    17,    18,
     739              :      165,    37,    38,    39,    19,   161,   162,   163,    20,    46,
     740              :      170,    47,    21,    22,    23
     741              : };
     742              : 
     743              : /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
     744              :    positive, shift that token.  If negative, reduce the rule whose
     745              :    number is the opposite.  If YYTABLE_NINF, syntax error.  */
     746              : static const yytype_int16 yytable[] =
     747              : {
     748              :       26,    27,    45,    32,    33,    36,    15,   115,    44,    98,
     749              :      105,    94,   116,    73,    45,    97,   107,    24,    93,   116,
     750              :      174,    71,    72,    73,    48,    74,    75,    76,    77,    25,
     751              :      110,   111,   114,   106,  -114,   114,   158,  -115,    94,   108,
     752              :      116,    30,   175,   178,   117,   118,   119,   120,   121,   122,
     753              :      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
     754              :      133,   134,   135,   136,   137,    45,   142,  -114,   140,   196,
     755              :     -115,   198,    40,   167,    28,   168,   146,   147,   148,   149,
     756              :      150,   151,   152,   153,   154,    49,   145,   155,   204,   205,
     757              :      157,  -114,   160,    95,  -115,    96,    29,   159,   100,   164,
     758              :      166,   104,   166,    94,    94,    45,    30,    80,   140,    81,
     759              :       82,    83,    84,    85,    86,    87,    74,    75,    76,    77,
     760              :      109,   171,   101,    88,    89,   144,   141,   181,    90,    91,
     761              :      182,   183,   184,   173,     1,     2,     3,     4,   143,   156,
     762              :       92,   177,    73,   185,   186,    41,   187,    93,     5,     6,
     763              :        7,   179,   -86,    94,   195,    73,     8,     9,    42,    10,
     764              :       93,    11,    12,    13,   188,   189,   190,    99,   172,   140,
     765              :        0,   191,   160,   200,   160,     0,   194,     0,     0,   197,
     766              :        0,   199,     0,   192,     0,   193,   102,     0,     0,     0,
     767              :      201,   160,   160,     0,    50,    51,    52,    53,    54,    55,
     768              :       56,     0,     0,    57,    58,    59,    69,    70,    71,    72,
     769              :       73,     0,    74,    75,    76,    77,     0,     0,     0,    60,
     770              :       61,    62,    63,    64,    65,    66,    67,    68,     0,    69,
     771              :       70,    71,    72,    73,     0,    74,    75,    76,    77,     0,
     772              :        0,    80,   103,    81,    82,    83,    84,    85,    86,    87,
     773              :        0,     0,     0,     0,     0,     0,     0,    88,    89,     0,
     774              :        0,     0,    90,    91,     0,     0,     0,   176,     0,     0,
     775              :        0,     0,     0,     0,    92,    50,    51,    52,    53,    54,
     776              :       55,    56,     0,     0,    57,    58,    59,     0,     0,   113,
     777              :        0,     0,     0,     0,    93,     0,     0,     0,   169,     0,
     778              :       60,    61,    62,    63,    64,    65,    66,    67,    68,     0,
     779              :       69,    70,    71,    72,    73,     0,    74,    75,    76,    77,
     780              :        1,     2,     3,     4,     0,     0,     0,     0,     0,     0,
     781              :        0,     0,     0,     0,     5,     6,     7,     0,     0,     0,
     782              :        0,   138,     8,     9,     0,    10,     0,    11,    12,    13,
     783              :       50,    51,    52,    53,    54,    55,    56,     0,     0,    57,
     784              :       58,    59,     0,     0,     0,     0,     0,     0,     0,     0,
     785              :        0,     0,     0,     0,     0,    60,    61,    62,    63,    64,
     786              :       65,    66,    67,    68,     0,    69,    70,    71,    72,    73,
     787              :        0,    74,    75,    76,    77,     0,     0,   112,    50,    51,
     788              :       52,    53,    54,    55,    56,     0,     0,    57,    58,    59,
     789              :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     790              :        0,     0,     0,    60,    61,    62,    63,    64,    65,    66,
     791              :       67,    68,     0,    69,    70,    71,    72,    73,     0,    74,
     792              :       75,    76,    77,   180,    50,    51,    52,    53,    54,    55,
     793              :       56,     0,     0,    57,    58,    59,     0,     0,     0,     0,
     794              :        0,     0,     0,     0,     0,     0,   202,     0,     0,    60,
     795              :       61,    62,    63,    64,    65,    66,    67,    68,     0,    69,
     796              :       70,    71,    72,    73,     0,    74,    75,    76,    77,    50,
     797              :       51,    52,    53,    54,    55,    56,     0,     0,    57,    58,
     798              :       59,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     799              :        0,   203,     0,     0,    60,    61,    62,    63,    64,    65,
     800              :       66,    67,    68,     0,    69,    70,    71,    72,    73,     0,
     801              :       74,    75,    76,    77,    50,    51,    52,    53,    54,    55,
     802              :       56,     0,     0,    57,    58,    59,     0,     0,     0,     0,
     803              :        0,     0,     0,     0,     0,     0,     0,     0,     0,    60,
     804              :       61,    62,    63,    64,    65,    66,    67,    68,     0,    69,
     805              :       70,    71,    72,    73,     0,    74,    75,    76,    77,    52,
     806              :       53,    54,    55,    56,     0,     0,    57,    58,    59,     0,
     807              :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     808              :        0,     0,     0,    61,    62,    63,    64,    65,    66,    67,
     809              :       68,     0,    69,    70,    71,    72,    73,     0,    74,    75,
     810              :       76,    77,    57,    58,    59,     0,     0,     0,     0,     0,
     811              :        0,     0,     0,     0,     0,     0,     0,    57,    58,    59,
     812              :        0,    63,    64,    65,    66,    67,    68,     0,    69,    70,
     813              :       71,    72,    73,     0,    74,    75,    76,    77,    65,    66,
     814              :       67,    68,     0,    69,    70,    71,    72,    73,     0,    74,
     815              :       75,    76,    77,     1,     2,     3,     4,     0,     0,     0,
     816              :        0,    34,     0,     0,     0,     0,     0,     5,     6,     7,
     817              :        0,     1,     2,     3,     4,     8,     9,     0,    10,     0,
     818              :       11,    12,    13,     0,    35,     5,     6,     7,     1,     2,
     819              :        3,     4,   138,     8,     9,     0,    10,     0,    11,    12,
     820              :       13,     0,     5,     6,     7,     0,     0,     0,     0,     0,
     821              :        8,     9,     0,    10,     0,    11,    12,    13
     822              : };
     823              : 
     824              : static const yytype_int16 yycheck[] =
     825              : {
     826              :        5,     6,    13,     8,     9,    10,     0,     3,    13,    27,
     827              :       35,    18,    36,    52,    25,    25,    35,    55,    57,    36,
     828              :       36,    50,    51,    52,     0,    54,    55,    56,    57,    56,
     829              :       41,    42,     1,    58,     3,     1,    60,     3,    45,    58,
     830              :       36,    59,    58,    60,    49,    50,    51,    52,    53,    54,
     831              :       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
     832              :       65,    66,    67,    68,    69,    76,    76,    36,    73,   183,
     833              :       36,   185,    29,   105,    27,   107,    81,    82,    83,    84,
     834              :       85,    86,    87,    88,    89,    35,    80,    92,   202,   203,
     835              :       95,    60,   103,    37,    60,    29,    49,   102,    59,   104,
     836              :      105,    36,   107,   110,   111,   116,    59,     4,   113,     6,
     837              :        7,     8,     9,    10,    11,    12,    54,    55,    56,    57,
     838              :       29,   115,    58,    20,    21,    54,    29,    37,    25,    26,
     839              :       40,    35,    36,   138,    27,    28,    29,    30,    29,    29,
     840              :       37,    37,    52,    35,    36,    38,    58,    57,    41,    42,
     841              :       43,    37,    36,   160,    42,    52,    49,    50,    51,    52,
     842              :       57,    54,    55,    56,    58,   170,   174,    29,   116,   174,
     843              :       -1,   176,   183,    58,   185,    -1,   181,    -1,    -1,   184,
     844              :       -1,   186,    -1,   177,    -1,   179,     5,    -1,    -1,    -1,
     845              :      195,   202,   203,    -1,    13,    14,    15,    16,    17,    18,
     846              :       19,    -1,    -1,    22,    23,    24,    48,    49,    50,    51,
     847              :       52,    -1,    54,    55,    56,    57,    -1,    -1,    -1,    38,
     848              :       39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
     849              :       49,    50,    51,    52,    -1,    54,    55,    56,    57,    -1,
     850              :       -1,     4,    61,     6,     7,     8,     9,    10,    11,    12,
     851              :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    -1,
     852              :       -1,    -1,    25,    26,    -1,    -1,    -1,     5,    -1,    -1,
     853              :       -1,    -1,    -1,    -1,    37,    13,    14,    15,    16,    17,
     854              :       18,    19,    -1,    -1,    22,    23,    24,    -1,    -1,    52,
     855              :       -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,     5,    -1,
     856              :       38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
     857              :       48,    49,    50,    51,    52,    -1,    54,    55,    56,    57,
     858              :       27,    28,    29,    30,    -1,    -1,    -1,    -1,    -1,    -1,
     859              :       -1,    -1,    -1,    -1,    41,    42,    43,    -1,    -1,    -1,
     860              :       -1,    48,    49,    50,    -1,    52,    -1,    54,    55,    56,
     861              :       13,    14,    15,    16,    17,    18,    19,    -1,    -1,    22,
     862              :       23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     863              :       -1,    -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,
     864              :       43,    44,    45,    46,    -1,    48,    49,    50,    51,    52,
     865              :       -1,    54,    55,    56,    57,    -1,    -1,    60,    13,    14,
     866              :       15,    16,    17,    18,    19,    -1,    -1,    22,    23,    24,
     867              :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     868              :       -1,    -1,    -1,    38,    39,    40,    41,    42,    43,    44,
     869              :       45,    46,    -1,    48,    49,    50,    51,    52,    -1,    54,
     870              :       55,    56,    57,    58,    13,    14,    15,    16,    17,    18,
     871              :       19,    -1,    -1,    22,    23,    24,    -1,    -1,    -1,    -1,
     872              :       -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,    -1,    38,
     873              :       39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
     874              :       49,    50,    51,    52,    -1,    54,    55,    56,    57,    13,
     875              :       14,    15,    16,    17,    18,    19,    -1,    -1,    22,    23,
     876              :       24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     877              :       -1,    35,    -1,    -1,    38,    39,    40,    41,    42,    43,
     878              :       44,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
     879              :       54,    55,    56,    57,    13,    14,    15,    16,    17,    18,
     880              :       19,    -1,    -1,    22,    23,    24,    -1,    -1,    -1,    -1,
     881              :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
     882              :       39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
     883              :       49,    50,    51,    52,    -1,    54,    55,    56,    57,    15,
     884              :       16,    17,    18,    19,    -1,    -1,    22,    23,    24,    -1,
     885              :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     886              :       -1,    -1,    -1,    39,    40,    41,    42,    43,    44,    45,
     887              :       46,    -1,    48,    49,    50,    51,    52,    -1,    54,    55,
     888              :       56,    57,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,
     889              :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    22,    23,    24,
     890              :       -1,    41,    42,    43,    44,    45,    46,    -1,    48,    49,
     891              :       50,    51,    52,    -1,    54,    55,    56,    57,    43,    44,
     892              :       45,    46,    -1,    48,    49,    50,    51,    52,    -1,    54,
     893              :       55,    56,    57,    27,    28,    29,    30,    -1,    -1,    -1,
     894              :       -1,    35,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,
     895              :       -1,    27,    28,    29,    30,    49,    50,    -1,    52,    -1,
     896              :       54,    55,    56,    -1,    58,    41,    42,    43,    27,    28,
     897              :       29,    30,    48,    49,    50,    -1,    52,    -1,    54,    55,
     898              :       56,    -1,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,
     899              :       49,    50,    -1,    52,    -1,    54,    55,    56
     900              : };
     901              : 
     902              : /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
     903              :    state STATE-NUM.  */
     904              : static const yytype_int8 yystos[] =
     905              : {
     906              :        0,    27,    28,    29,    30,    41,    42,    43,    49,    50,
     907              :       52,    54,    55,    56,    63,    64,    68,    70,    71,    76,
     908              :       80,    84,    85,    86,    55,    56,    70,    70,    27,    49,
     909              :       59,    67,    70,    70,    35,    58,    70,    73,    74,    75,
     910              :       29,    38,    51,    64,    70,    71,    81,    83,     0,    35,
     911              :       13,    14,    15,    16,    17,    18,    19,    22,    23,    24,
     912              :       38,    39,    40,    41,    42,    43,    44,    45,    46,    48,
     913              :       49,    50,    51,    52,    54,    55,    56,    57,    66,    69,
     914              :        4,     6,     7,     8,     9,    10,    11,    12,    20,    21,
     915              :       25,    26,    37,    57,    66,    37,    29,    83,    27,    67,
     916              :       59,    58,     5,    61,    36,    35,    58,    35,    58,    29,
     917              :       71,    71,    60,    52,     1,     3,    36,    70,    70,    70,
     918              :       70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
     919              :       70,    70,    70,    70,    70,    70,    70,    70,    48,    65,
     920              :       70,    29,    83,    29,    54,    64,    70,    70,    70,    70,
     921              :       70,    70,    70,    70,    70,    70,    29,    70,    60,    70,
     922              :       71,    77,    78,    79,    70,    72,    70,    74,    74,     5,
     923              :       82,    64,    81,    70,    36,    58,     5,    37,    60,    37,
     924              :       58,    37,    40,    35,    36,    35,    36,    58,    58,    70,
     925              :       65,    70,    64,    64,    70,    42,    79,    70,    79,    70,
     926              :       58,    70,    35,    35,    79,    79
     927              : };
     928              : 
     929              : /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
     930              : static const yytype_int8 yyr1[] =
     931              : {
     932              :        0,    62,    63,    64,    64,    64,    64,    65,    65,    65,
     933              :       65,    66,    66,    67,    67,    68,    68,    68,    68,    68,
     934              :       68,    69,    69,    70,    70,    70,    70,    70,    70,    70,
     935              :       70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
     936              :       70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
     937              :       70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
     938              :       70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
     939              :       70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
     940              :       70,    71,    71,    71,    72,    72,    73,    73,    74,    74,
     941              :       75,    75,    76,    76,    76,    76,    76,    77,    78,    79,
     942              :       79,    79,    79,    79,    79,    79,    79,    80,    81,    81,
     943              :       81,    81,    82,    81,    83,    83,    84,    85,    86,    86,
     944              :       86,    86
     945              : };
     946              : 
     947              : /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
     948              : static const yytype_int8 yyr2[] =
     949              : {
     950              :        0,     2,     1,     0,     1,     2,     3,     0,     1,     3,
     951              :        2,     5,     3,     1,     2,     1,     2,     2,     2,     3,
     952              :        3,     1,     2,     1,     1,     1,     3,     1,     2,     1,
     953              :        4,     1,     1,     1,     1,     1,     3,     3,     2,     2,
     954              :        3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
     955              :        2,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     956              :        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     957              :        2,     2,     3,     2,     2,     2,     2,     2,     1,     3,
     958              :        3,     1,     2,     3,     1,     0,     1,     0,     1,     3,
     959              :        3,     3,     2,     5,     3,     3,     3,     4,     3,     1,
     960              :        3,     3,     5,     1,     3,     3,     5,     5,     1,     4,
     961              :        2,     2,     0,     4,     1,     3,     4,     3,     6,     5,
     962              :        3,     4
     963              : };
     964              : 
     965              : 
     966              : enum { YYENOMEM = -2 };
     967              : 
     968              : #define yyerrok         (yyerrstatus = 0)
     969              : #define yyclearin       (yychar = PARI_EMPTY)
     970              : 
     971              : #define YYACCEPT        goto yyacceptlab
     972              : #define YYABORT         goto yyabortlab
     973              : #define YYERROR         goto yyerrorlab
     974              : #define YYNOMEM         goto yyexhaustedlab
     975              : 
     976              : 
     977              : #define YYRECOVERING()  (!!yyerrstatus)
     978              : 
     979              : #define YYBACKUP(Token, Value)                                    \
     980              :   do                                                              \
     981              :     if (yychar == PARI_EMPTY)                                        \
     982              :       {                                                           \
     983              :         yychar = (Token);                                         \
     984              :         yylval = (Value);                                         \
     985              :         YYPOPSTACK (yylen);                                       \
     986              :         yystate = *yyssp;                                         \
     987              :         goto yybackup;                                            \
     988              :       }                                                           \
     989              :     else                                                          \
     990              :       {                                                           \
     991              :         yyerror (&yylloc, lex, YY_("syntax error: cannot back up")); \
     992              :         YYERROR;                                                  \
     993              :       }                                                           \
     994              :   while (0)
     995              : 
     996              : /* Backward compatibility with an undocumented macro.
     997              :    Use PARI_error or PARI_UNDEF. */
     998              : #define YYERRCODE PARI_UNDEF
     999              : 
    1000              : /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    1001              :    If N is 0, then set CURRENT to the empty location which ends
    1002              :    the previous symbol: RHS[0] (always defined).  */
    1003              : 
    1004              : #ifndef YYLLOC_DEFAULT
    1005              : # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    1006              :     do                                                                  \
    1007              :       if (N)                                                            \
    1008              :         {                                                               \
    1009              :           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    1010              :           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    1011              :           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    1012              :           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    1013              :         }                                                               \
    1014              :       else                                                              \
    1015              :         {                                                               \
    1016              :           (Current).first_line   = (Current).last_line   =              \
    1017              :             YYRHSLOC (Rhs, 0).last_line;                                \
    1018              :           (Current).first_column = (Current).last_column =              \
    1019              :             YYRHSLOC (Rhs, 0).last_column;                              \
    1020              :         }                                                               \
    1021              :     while (0)
    1022              : #endif
    1023              : 
    1024              : #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    1025              : 
    1026              : 
    1027              : /* Enable debugging if requested.  */
    1028              : #if PARI_DEBUG
    1029              : 
    1030              : # ifndef YYFPRINTF
    1031              : #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
    1032              : #  define YYFPRINTF fprintf
    1033              : # endif
    1034              : 
    1035              : # define YYDPRINTF(Args)                        \
    1036              : do {                                            \
    1037              :   if (yydebug)                                  \
    1038              :     YYFPRINTF Args;                             \
    1039              : } while (0)
    1040              : 
    1041              : 
    1042              : /* YYLOCATION_PRINT -- Print the location on the stream.
    1043              :    This macro was not mandated originally: define only if we know
    1044              :    we won't break user code: when these are the locations we know.  */
    1045              : 
    1046              : # ifndef YYLOCATION_PRINT
    1047              : 
    1048              : #  if defined YY_LOCATION_PRINT
    1049              : 
    1050              :    /* Temporary convenience wrapper in case some people defined the
    1051              :       undocumented and private YY_LOCATION_PRINT macros.  */
    1052              : #   define YYLOCATION_PRINT(File, Loc)  YY_LOCATION_PRINT(File, *(Loc))
    1053              : 
    1054              : #  elif defined PARI_LTYPE_IS_TRIVIAL && PARI_LTYPE_IS_TRIVIAL
    1055              : 
    1056              : /* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
    1057              : 
    1058              : YY_ATTRIBUTE_UNUSED
    1059              : static int
    1060              : yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
    1061              : {
    1062              :   int res = 0;
    1063              :   int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
    1064              :   if (0 <= yylocp->first_line)
    1065              :     {
    1066              :       res += YYFPRINTF (yyo, "%d", yylocp->first_line);
    1067              :       if (0 <= yylocp->first_column)
    1068              :         res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
    1069              :     }
    1070              :   if (0 <= yylocp->last_line)
    1071              :     {
    1072              :       if (yylocp->first_line < yylocp->last_line)
    1073              :         {
    1074              :           res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
    1075              :           if (0 <= end_col)
    1076              :             res += YYFPRINTF (yyo, ".%d", end_col);
    1077              :         }
    1078              :       else if (0 <= end_col && yylocp->first_column < end_col)
    1079              :         res += YYFPRINTF (yyo, "-%d", end_col);
    1080              :     }
    1081              :   return res;
    1082              : }
    1083              : 
    1084              : #   define YYLOCATION_PRINT  yy_location_print_
    1085              : 
    1086              :     /* Temporary convenience wrapper in case some people defined the
    1087              :        undocumented and private YY_LOCATION_PRINT macros.  */
    1088              : #   define YY_LOCATION_PRINT(File, Loc)  YYLOCATION_PRINT(File, &(Loc))
    1089              : 
    1090              : #  else
    1091              : 
    1092              : #   define YYLOCATION_PRINT(File, Loc) ((void) 0)
    1093              :     /* Temporary convenience wrapper in case some people defined the
    1094              :        undocumented and private YY_LOCATION_PRINT macros.  */
    1095              : #   define YY_LOCATION_PRINT  YYLOCATION_PRINT
    1096              : 
    1097              : #  endif
    1098              : # endif /* !defined YYLOCATION_PRINT */
    1099              : 
    1100              : 
    1101              : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
    1102              : do {                                                                      \
    1103              :   if (yydebug)                                                            \
    1104              :     {                                                                     \
    1105              :       YYFPRINTF (stderr, "%s ", Title);                                   \
    1106              :       yy_symbol_print (stderr,                                            \
    1107              :                   Kind, Value, Location, lex); \
    1108              :       YYFPRINTF (stderr, "\n");                                           \
    1109              :     }                                                                     \
    1110              : } while (0)
    1111              : 
    1112              : 
    1113              : /*-----------------------------------.
    1114              : | Print this symbol's value on YYO.  |
    1115              : `-----------------------------------*/
    1116              : 
    1117              : static void
    1118              : yy_symbol_value_print (FILE *yyo,
    1119              :                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, char **lex)
    1120              : {
    1121              :   FILE *yyoutput = yyo;
    1122              :   YY_USE (yyoutput);
    1123              :   YY_USE (yylocationp);
    1124              :   YY_USE (lex);
    1125              :   if (!yyvaluep)
    1126              :     return;
    1127              :   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    1128              :   YY_USE (yykind);
    1129              :   YY_IGNORE_MAYBE_UNINITIALIZED_END
    1130              : }
    1131              : 
    1132              : 
    1133              : /*---------------------------.
    1134              : | Print this symbol on YYO.  |
    1135              : `---------------------------*/
    1136              : 
    1137              : static void
    1138              : yy_symbol_print (FILE *yyo,
    1139              :                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, char **lex)
    1140              : {
    1141              :   YYFPRINTF (yyo, "%s %s (",
    1142              :              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
    1143              : 
    1144              :   YYLOCATION_PRINT (yyo, yylocationp);
    1145              :   YYFPRINTF (yyo, ": ");
    1146              :   yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lex);
    1147              :   YYFPRINTF (yyo, ")");
    1148              : }
    1149              : 
    1150              : /*------------------------------------------------------------------.
    1151              : | yy_stack_print -- Print the state stack from its BOTTOM up to its |
    1152              : | TOP (included).                                                   |
    1153              : `------------------------------------------------------------------*/
    1154              : 
    1155              : static void
    1156              : yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
    1157              : {
    1158              :   YYFPRINTF (stderr, "Stack now");
    1159              :   for (; yybottom <= yytop; yybottom++)
    1160              :     {
    1161              :       int yybot = *yybottom;
    1162              :       YYFPRINTF (stderr, " %d", yybot);
    1163              :     }
    1164              :   YYFPRINTF (stderr, "\n");
    1165              : }
    1166              : 
    1167              : # define YY_STACK_PRINT(Bottom, Top)                            \
    1168              : do {                                                            \
    1169              :   if (yydebug)                                                  \
    1170              :     yy_stack_print ((Bottom), (Top));                           \
    1171              : } while (0)
    1172              : 
    1173              : 
    1174              : /*------------------------------------------------.
    1175              : | Report that the YYRULE is going to be reduced.  |
    1176              : `------------------------------------------------*/
    1177              : 
    1178              : static void
    1179              : yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
    1180              :                  int yyrule, char **lex)
    1181              : {
    1182              :   int yylno = yyrline[yyrule];
    1183              :   int yynrhs = yyr2[yyrule];
    1184              :   int yyi;
    1185              :   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
    1186              :              yyrule - 1, yylno);
    1187              :   /* The symbols being reduced.  */
    1188              :   for (yyi = 0; yyi < yynrhs; yyi++)
    1189              :     {
    1190              :       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    1191              :       yy_symbol_print (stderr,
    1192              :                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
    1193              :                        &yyvsp[(yyi + 1) - (yynrhs)],
    1194              :                        &(yylsp[(yyi + 1) - (yynrhs)]), lex);
    1195              :       YYFPRINTF (stderr, "\n");
    1196              :     }
    1197              : }
    1198              : 
    1199              : # define YY_REDUCE_PRINT(Rule)          \
    1200              : do {                                    \
    1201              :   if (yydebug)                          \
    1202              :     yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lex); \
    1203              : } while (0)
    1204              : 
    1205              : /* Nonzero means print parse trace.  It is left uninitialized so that
    1206              :    multiple parsers can coexist.  */
    1207              : int yydebug;
    1208              : #else /* !PARI_DEBUG */
    1209              : # define YYDPRINTF(Args) ((void) 0)
    1210              : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
    1211              : # define YY_STACK_PRINT(Bottom, Top)
    1212              : # define YY_REDUCE_PRINT(Rule)
    1213              : #endif /* !PARI_DEBUG */
    1214              : 
    1215              : 
    1216              : /* YYINITDEPTH -- initial size of the parser's stacks.  */
    1217              : #ifndef YYINITDEPTH
    1218              : # define YYINITDEPTH 200
    1219              : #endif
    1220              : 
    1221              : /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
    1222              :    if the built-in stack extension method is used).
    1223              : 
    1224              :    Do not make this value too large; the results are undefined if
    1225              :    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    1226              :    evaluated with infinite-precision integer arithmetic.  */
    1227              : 
    1228              : #ifndef YYMAXDEPTH
    1229              : # define YYMAXDEPTH 10000
    1230              : #endif
    1231              : 
    1232              : 
    1233              : /* Context of a parse error.  */
    1234              : typedef struct
    1235              : {
    1236              :   yy_state_t *yyssp;
    1237              :   yysymbol_kind_t yytoken;
    1238              :   YYLTYPE *yylloc;
    1239              : } yypcontext_t;
    1240              : 
    1241              : /* Put in YYARG at most YYARGN of the expected tokens given the
    1242              :    current YYCTX, and return the number of tokens stored in YYARG.  If
    1243              :    YYARG is null, return the number of expected tokens (guaranteed to
    1244              :    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
    1245              :    Return 0 if there are more than YYARGN expected tokens, yet fill
    1246              :    YYARG up to YYARGN. */
    1247              : static int
    1248          111 : yypcontext_expected_tokens (const yypcontext_t *yyctx,
    1249              :                             yysymbol_kind_t yyarg[], int yyargn)
    1250              : {
    1251              :   /* Actual size of YYARG. */
    1252          111 :   int yycount = 0;
    1253          111 :   int yyn = yypact[+*yyctx->yyssp];
    1254          111 :   if (!yypact_value_is_default (yyn))
    1255              :     {
    1256              :       /* Start YYX at -YYN if negative to avoid negative indexes in
    1257              :          YYCHECK.  In other words, skip the first -YYN actions for
    1258              :          this state because they are default actions.  */
    1259          111 :       int yyxbegin = yyn < 0 ? -yyn : 0;
    1260              :       /* Stay within bounds of both yycheck and yytname.  */
    1261          111 :       int yychecklim = YYLAST - yyn + 1;
    1262          111 :       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
    1263              :       int yyx;
    1264         6846 :       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
    1265         6742 :         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
    1266          451 :             && !yytable_value_is_error (yytable[yyx + yyn]))
    1267              :           {
    1268          347 :             if (!yyarg)
    1269            0 :               ++yycount;
    1270          347 :             else if (yycount == yyargn)
    1271            7 :               return 0;
    1272              :             else
    1273          340 :               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
    1274              :           }
    1275              :     }
    1276          104 :   if (yyarg && yycount == 0 && 0 < yyargn)
    1277            0 :     yyarg[0] = YYSYMBOL_YYEMPTY;
    1278          104 :   return yycount;
    1279              : }
    1280              : 
    1281              : 
    1282              : 
    1283              : 
    1284              : #ifndef yystrlen
    1285              : # if defined __GLIBC__ && defined _STRING_H
    1286              : #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
    1287              : # else
    1288              : /* Return the length of YYSTR.  */
    1289              : static YYPTRDIFF_T
    1290              : yystrlen (const char *yystr)
    1291              : {
    1292              :   YYPTRDIFF_T yylen;
    1293              :   for (yylen = 0; yystr[yylen]; yylen++)
    1294              :     continue;
    1295              :   return yylen;
    1296              : }
    1297              : # endif
    1298              : #endif
    1299              : 
    1300              : #ifndef yystpcpy
    1301              : # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
    1302              : #  define yystpcpy stpcpy
    1303              : # else
    1304              : /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    1305              :    YYDEST.  */
    1306              : static char *
    1307          236 : yystpcpy (char *yydest, const char *yysrc)
    1308          708 : {
    1309          236 :   char *yyd = yydest;
    1310          236 :   const char *yys = yysrc;
    1311              : 
    1312          944 :   while ((*yyd++ = *yys++) != '\0')
    1313          708 :     continue;
    1314              : 
    1315          236 :   return yyd - 1;
    1316              : }
    1317              : # endif
    1318              : #endif
    1319              : 
    1320              : #ifndef yytnamerr
    1321              : /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
    1322              :    quotes and backslashes, so that it's suitable for yyerror.  The
    1323              :    heuristic is that double-quoting is unnecessary unless the string
    1324              :    contains an apostrophe, a comma, or backslash (other than
    1325              :    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
    1326              :    null, do not copy; instead, return the length of what the result
    1327              :    would have been.  */
    1328              : static YYPTRDIFF_T
    1329          846 : yytnamerr (char *yyres, const char *yystr)
    1330              : {
    1331          846 :   if (*yystr == '"')
    1332              :     {
    1333          374 :       YYPTRDIFF_T yyn = 0;
    1334          374 :       char const *yyp = yystr;
    1335              :       for (;;)
    1336         3240 :         switch (*++yyp)
    1337              :           {
    1338            0 :           case '\'':
    1339              :           case ',':
    1340            0 :             goto do_not_strip_quotes;
    1341              : 
    1342            0 :           case '\\':
    1343            0 :             if (*++yyp != '\\')
    1344            0 :               goto do_not_strip_quotes;
    1345              :             else
    1346            0 :               goto append;
    1347              : 
    1348            0 :           append:
    1349         2866 :           default:
    1350         2866 :             if (yyres)
    1351         1433 :               yyres[yyn] = *yyp;
    1352         2866 :             yyn++;
    1353         2866 :             break;
    1354              : 
    1355          374 :           case '"':
    1356          374 :             if (yyres)
    1357          187 :               yyres[yyn] = '\0';
    1358          374 :             return yyn;
    1359              :           }
    1360            0 :     do_not_strip_quotes: ;
    1361              :     }
    1362              : 
    1363          472 :   if (yyres)
    1364          236 :     return yystpcpy (yyres, yystr) - yyres;
    1365              :   else
    1366          236 :     return yystrlen (yystr);
    1367              : }
    1368              : #endif
    1369              : 
    1370              : 
    1371              : static int
    1372          111 : yy_syntax_error_arguments (const yypcontext_t *yyctx,
    1373              :                            yysymbol_kind_t yyarg[], int yyargn)
    1374              : {
    1375              :   /* Actual size of YYARG. */
    1376          111 :   int yycount = 0;
    1377              :   /* There are many possibilities here to consider:
    1378              :      - If this state is a consistent state with a default action, then
    1379              :        the only way this function was invoked is if the default action
    1380              :        is an error action.  In that case, don't check for expected
    1381              :        tokens because there are none.
    1382              :      - The only way there can be no lookahead present (in yychar) is if
    1383              :        this state is a consistent state with a default action.  Thus,
    1384              :        detecting the absence of a lookahead is sufficient to determine
    1385              :        that there is no unexpected or expected token to report.  In that
    1386              :        case, just report a simple "syntax error".
    1387              :      - Don't assume there isn't a lookahead just because this state is a
    1388              :        consistent state with a default action.  There might have been a
    1389              :        previous inconsistent state, consistent state with a non-default
    1390              :        action, or user semantic action that manipulated yychar.
    1391              :      - Of course, the expected token list depends on states to have
    1392              :        correct lookahead information, and it depends on the parser not
    1393              :        to perform extra reductions after fetching a lookahead from the
    1394              :        scanner and before detecting a syntax error.  Thus, state merging
    1395              :        (from LALR or IELR) and default reductions corrupt the expected
    1396              :        token list.  However, the list is correct for canonical LR with
    1397              :        one exception: it will still contain any token that will not be
    1398              :        accepted due to an error action in a later state.
    1399              :   */
    1400          111 :   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
    1401              :     {
    1402              :       int yyn;
    1403          111 :       if (yyarg)
    1404          111 :         yyarg[yycount] = yyctx->yytoken;
    1405          111 :       ++yycount;
    1406          111 :       yyn = yypcontext_expected_tokens (yyctx,
    1407              :                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
    1408          111 :       if (yyn == YYENOMEM)
    1409            0 :         return YYENOMEM;
    1410              :       else
    1411          111 :         yycount += yyn;
    1412              :     }
    1413          111 :   return yycount;
    1414              : }
    1415              : 
    1416              : /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
    1417              :    about the unexpected token YYTOKEN for the state stack whose top is
    1418              :    YYSSP.
    1419              : 
    1420              :    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
    1421              :    not large enough to hold the message.  In that case, also set
    1422              :    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
    1423              :    required number of bytes is too large to store.  */
    1424              : static int
    1425          111 : yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
    1426              :                 const yypcontext_t *yyctx)
    1427              : {
    1428              :   enum { YYARGS_MAX = 5 };
    1429              :   /* Internationalized format string. */
    1430          111 :   const char *yyformat = YY_NULLPTR;
    1431              :   /* Arguments of yyformat: reported tokens (one for the "unexpected",
    1432              :      one per "expected"). */
    1433              :   yysymbol_kind_t yyarg[YYARGS_MAX];
    1434              :   /* Cumulated lengths of YYARG.  */
    1435          111 :   YYPTRDIFF_T yysize = 0;
    1436              : 
    1437              :   /* Actual size of YYARG. */
    1438          111 :   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
    1439          111 :   if (yycount == YYENOMEM)
    1440            0 :     return YYENOMEM;
    1441              : 
    1442          111 :   switch (yycount)
    1443              :     {
    1444              : #define YYCASE_(N, S)                       \
    1445              :       case N:                               \
    1446              :         yyformat = S;                       \
    1447              :         break
    1448            0 :     default: /* Avoid compiler warnings. */
    1449            0 :       YYCASE_(0, YY_("syntax error"));
    1450            7 :       YYCASE_(1, YY_("syntax error, unexpected %s"));
    1451            0 :       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
    1452            0 :       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
    1453          104 :       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
    1454            0 :       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
    1455              : #undef YYCASE_
    1456              :     }
    1457              : 
    1458              :   /* Compute error message size.  Don't count the "%s"s, but reserve
    1459              :      room for the terminator.  */
    1460          111 :   yysize = yystrlen (yyformat) - 2 * yycount + 1;
    1461              :   {
    1462              :     int yyi;
    1463          534 :     for (yyi = 0; yyi < yycount; ++yyi)
    1464              :       {
    1465          423 :         YYPTRDIFF_T yysize1
    1466          423 :           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
    1467          423 :         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
    1468          423 :           yysize = yysize1;
    1469              :         else
    1470            0 :           return YYENOMEM;
    1471              :       }
    1472              :   }
    1473              : 
    1474          111 :   if (*yymsg_alloc < yysize)
    1475              :     {
    1476            0 :       *yymsg_alloc = 2 * yysize;
    1477            0 :       if (! (yysize <= *yymsg_alloc
    1478              :              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
    1479            0 :         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
    1480            0 :       return -1;
    1481              :     }
    1482              : 
    1483              :   /* Avoid sprintf, as that infringes on the user's name space.
    1484              :      Don't have undefined behavior even if the translation
    1485              :      produced a string with the wrong number of "%s"s.  */
    1486              :   {
    1487          111 :     char *yyp = *yymsg;
    1488          111 :     int yyi = 0;
    1489         5389 :     while ((*yyp = *yyformat) != '\0')
    1490         5278 :       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
    1491              :         {
    1492          423 :           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
    1493          423 :           yyformat += 2;
    1494              :         }
    1495              :       else
    1496              :         {
    1497         4855 :           ++yyp;
    1498         4855 :           ++yyformat;
    1499              :         }
    1500              :   }
    1501          111 :   return 0;
    1502              : }
    1503              : 
    1504              : 
    1505              : /*-----------------------------------------------.
    1506              : | Release the memory associated to this symbol.  |
    1507              : `-----------------------------------------------*/
    1508              : 
    1509              : static void
    1510      1875223 : yydestruct (const char *yymsg,
    1511              :             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, char **lex)
    1512              : {
    1513              :   YY_USE (yyvaluep);
    1514              :   YY_USE (yylocationp);
    1515              :   YY_USE (lex);
    1516      1875223 :   if (!yymsg)
    1517            0 :     yymsg = "Deleting";
    1518              :   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
    1519              : 
    1520              :   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    1521      1875223 :   switch (yykind)
    1522              :     {
    1523            0 :     case YYSYMBOL_seq: /* seq  */
    1524              : #line 87 "../src/language/parse.y"
    1525              :             { pari_discarded++; }
    1526              : #line 1527 "../src/language/parse.c"
    1527            0 :         break;
    1528              : 
    1529            0 :     case YYSYMBOL_range: /* range  */
    1530              : #line 87 "../src/language/parse.y"
    1531              :             { pari_discarded++; }
    1532              : #line 1533 "../src/language/parse.c"
    1533            0 :         break;
    1534              : 
    1535            0 :     case YYSYMBOL_matrix_index: /* matrix_index  */
    1536              : #line 87 "../src/language/parse.y"
    1537              :             { pari_discarded++; }
    1538              : #line 1539 "../src/language/parse.c"
    1539            0 :         break;
    1540              : 
    1541            0 :     case YYSYMBOL_backticks: /* backticks  */
    1542              : #line 87 "../src/language/parse.y"
    1543              :             { pari_discarded++; }
    1544              : #line 1545 "../src/language/parse.c"
    1545            0 :         break;
    1546              : 
    1547            0 :     case YYSYMBOL_history: /* history  */
    1548              : #line 87 "../src/language/parse.y"
    1549              :             { pari_discarded++; }
    1550              : #line 1551 "../src/language/parse.c"
    1551            0 :         break;
    1552              : 
    1553            0 :     case YYSYMBOL_deriv: /* deriv  */
    1554              : #line 87 "../src/language/parse.y"
    1555              :             { pari_discarded++; }
    1556              : #line 1557 "../src/language/parse.c"
    1557            0 :         break;
    1558              : 
    1559            0 :     case YYSYMBOL_expr: /* expr  */
    1560              : #line 87 "../src/language/parse.y"
    1561              :             { pari_discarded++; }
    1562              : #line 1563 "../src/language/parse.c"
    1563            0 :         break;
    1564              : 
    1565            0 :     case YYSYMBOL_lvalue: /* lvalue  */
    1566              : #line 87 "../src/language/parse.y"
    1567              :             { pari_discarded++; }
    1568              : #line 1569 "../src/language/parse.c"
    1569            0 :         break;
    1570              : 
    1571            0 :     case YYSYMBOL_exprno: /* exprno  */
    1572              : #line 87 "../src/language/parse.y"
    1573              :             { pari_discarded++; }
    1574              : #line 1575 "../src/language/parse.c"
    1575            0 :         break;
    1576              : 
    1577            7 :     case YYSYMBOL_matrixeltsno: /* matrixeltsno  */
    1578              : #line 87 "../src/language/parse.y"
    1579              :             { pari_discarded++; }
    1580              : #line 1581 "../src/language/parse.c"
    1581            7 :         break;
    1582              : 
    1583            0 :     case YYSYMBOL_matrixelts: /* matrixelts  */
    1584              : #line 87 "../src/language/parse.y"
    1585              :             { pari_discarded++; }
    1586              : #line 1587 "../src/language/parse.c"
    1587            0 :         break;
    1588              : 
    1589            0 :     case YYSYMBOL_matrixlines: /* matrixlines  */
    1590              : #line 87 "../src/language/parse.y"
    1591              :             { pari_discarded++; }
    1592              : #line 1593 "../src/language/parse.c"
    1593            0 :         break;
    1594              : 
    1595            0 :     case YYSYMBOL_matrix: /* matrix  */
    1596              : #line 87 "../src/language/parse.y"
    1597              :             { pari_discarded++; }
    1598              : #line 1599 "../src/language/parse.c"
    1599            0 :         break;
    1600              : 
    1601            0 :     case YYSYMBOL_in: /* in  */
    1602              : #line 87 "../src/language/parse.y"
    1603              :             { pari_discarded++; }
    1604              : #line 1605 "../src/language/parse.c"
    1605            0 :         break;
    1606              : 
    1607            0 :     case YYSYMBOL_eq: /* eq  */
    1608              : #line 87 "../src/language/parse.y"
    1609              :             { pari_discarded++; }
    1610              : #line 1611 "../src/language/parse.c"
    1611            0 :         break;
    1612              : 
    1613            0 :     case YYSYMBOL_inseq: /* inseq  */
    1614              : #line 87 "../src/language/parse.y"
    1615              :             { pari_discarded++; }
    1616              : #line 1617 "../src/language/parse.c"
    1617            0 :         break;
    1618              : 
    1619            0 :     case YYSYMBOL_compr: /* compr  */
    1620              : #line 87 "../src/language/parse.y"
    1621              :             { pari_discarded++; }
    1622              : #line 1623 "../src/language/parse.c"
    1623            0 :         break;
    1624              : 
    1625            7 :     case YYSYMBOL_arg: /* arg  */
    1626              : #line 87 "../src/language/parse.y"
    1627              :             { pari_discarded++; }
    1628              : #line 1629 "../src/language/parse.c"
    1629            7 :         break;
    1630              : 
    1631           14 :     case YYSYMBOL_listarg: /* listarg  */
    1632              : #line 87 "../src/language/parse.y"
    1633              :             { pari_discarded++; }
    1634              : #line 1635 "../src/language/parse.c"
    1635           14 :         break;
    1636              : 
    1637            0 :     case YYSYMBOL_funcid: /* funcid  */
    1638              : #line 87 "../src/language/parse.y"
    1639              :             { pari_discarded++; }
    1640              : #line 1641 "../src/language/parse.c"
    1641            0 :         break;
    1642              : 
    1643            0 :     case YYSYMBOL_memberid: /* memberid  */
    1644              : #line 87 "../src/language/parse.y"
    1645              :             { pari_discarded++; }
    1646              : #line 1647 "../src/language/parse.c"
    1647            0 :         break;
    1648              : 
    1649            0 :     case YYSYMBOL_definition: /* definition  */
    1650              : #line 87 "../src/language/parse.y"
    1651              :             { pari_discarded++; }
    1652              : #line 1653 "../src/language/parse.c"
    1653            0 :         break;
    1654              : 
    1655      1875195 :       default:
    1656      1875195 :         break;
    1657              :     }
    1658              :   YY_IGNORE_MAYBE_UNINITIALIZED_END
    1659      1875223 : }
    1660              : 
    1661              : 
    1662              : 
    1663              : 
    1664              : 
    1665              : 
    1666              : /*----------.
    1667              : | yyparse.  |
    1668              : `----------*/
    1669              : 
    1670              : int
    1671       937503 : yyparse (char **lex)
    1672              : {
    1673              : /* Lookahead token kind.  */
    1674              : int yychar;
    1675              : 
    1676              : 
    1677              : /* The semantic value of the lookahead symbol.  */
    1678              : /* Default value used for initialization, for pacifying older GCCs
    1679              :    or non-GCC compilers.  */
    1680              : YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
    1681              : YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
    1682              : 
    1683              : /* Location data for the lookahead symbol.  */
    1684              : static YYLTYPE yyloc_default
    1685              : # if defined PARI_LTYPE_IS_TRIVIAL && PARI_LTYPE_IS_TRIVIAL
    1686              :   = { 1, 1, 1, 1 }
    1687              : # endif
    1688              : ;
    1689       937503 : YYLTYPE yylloc = yyloc_default;
    1690              : 
    1691              :     /* Number of syntax errors so far.  */
    1692       937503 :     int yynerrs = 0;
    1693              : 
    1694       937503 :     yy_state_fast_t yystate = 0;
    1695              :     /* Number of tokens to shift before error messages enabled.  */
    1696       937503 :     int yyerrstatus = 0;
    1697              : 
    1698              :     /* Refer to the stacks through separate pointers, to allow yyoverflow
    1699              :        to reallocate them elsewhere.  */
    1700              : 
    1701              :     /* Their size.  */
    1702       937503 :     YYPTRDIFF_T yystacksize = YYINITDEPTH;
    1703              : 
    1704              :     /* The state stack: array, bottom, top.  */
    1705              :     yy_state_t yyssa[YYINITDEPTH];
    1706       937503 :     yy_state_t *yyss = yyssa;
    1707       937503 :     yy_state_t *yyssp = yyss;
    1708              : 
    1709              :     /* The semantic value stack: array, bottom, top.  */
    1710              :     YYSTYPE yyvsa[YYINITDEPTH];
    1711       937503 :     YYSTYPE *yyvs = yyvsa;
    1712       937503 :     YYSTYPE *yyvsp = yyvs;
    1713              : 
    1714              :     /* The location stack: array, bottom, top.  */
    1715              :     YYLTYPE yylsa[YYINITDEPTH];
    1716       937503 :     YYLTYPE *yyls = yylsa;
    1717       937503 :     YYLTYPE *yylsp = yyls;
    1718              : 
    1719              :   int yyn;
    1720              :   /* The return value of yyparse.  */
    1721              :   int yyresult;
    1722              :   /* Lookahead symbol kind.  */
    1723       937503 :   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
    1724              :   /* The variables used to return semantic value and location from the
    1725              :      action routines.  */
    1726              :   YYSTYPE yyval;
    1727              :   YYLTYPE yyloc;
    1728              : 
    1729              :   /* The locations where the error started and ended.  */
    1730              :   YYLTYPE yyerror_range[3];
    1731              : 
    1732              :   /* Buffer for error messages, and its allocated size.  */
    1733              :   char yymsgbuf[128];
    1734       937503 :   char *yymsg = yymsgbuf;
    1735       937503 :   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
    1736              : 
    1737              : #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
    1738              : 
    1739              :   /* The number of symbols on the RHS of the reduced rule.
    1740              :      Keep to zero when no symbol should be popped.  */
    1741       937503 :   int yylen = 0;
    1742              : 
    1743              :   YYDPRINTF ((stderr, "Starting parse\n"));
    1744              : 
    1745       937503 :   yychar = PARI_EMPTY; /* Cause a token to be read.  */
    1746              : 
    1747              : 
    1748              : /* User initialization code.  */
    1749              : #line 33 "../src/language/parse.y"
    1750              : { yylloc.start=yylloc.end=*lex; }
    1751              : 
    1752              : #line 1753 "../src/language/parse.c"
    1753              : 
    1754       937503 :   yylsp[0] = yylloc;
    1755       937503 :   goto yysetstate;
    1756              : 
    1757              : 
    1758              : /*------------------------------------------------------------.
    1759              : | yynewstate -- push a new state, which is found in yystate.  |
    1760              : `------------------------------------------------------------*/
    1761    314154272 : yynewstate:
    1762              :   /* In all cases, when you get here, the value and location stacks
    1763              :      have just been pushed.  So pushing a state here evens the stacks.  */
    1764    314154272 :   yyssp++;
    1765              : 
    1766              : 
    1767              : /*--------------------------------------------------------------------.
    1768              : | yysetstate -- set current state (the top of the stack) to yystate.  |
    1769              : `--------------------------------------------------------------------*/
    1770    315091775 : yysetstate:
    1771              :   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
    1772              :   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
    1773              :   YY_IGNORE_USELESS_CAST_BEGIN
    1774    315091775 :   *yyssp = YY_CAST (yy_state_t, yystate);
    1775              :   YY_IGNORE_USELESS_CAST_END
    1776              :   YY_STACK_PRINT (yyss, yyssp);
    1777              : 
    1778    315091775 :   if (yyss + yystacksize - 1 <= yyssp)
    1779              : #if !defined yyoverflow && !defined YYSTACK_RELOCATE
    1780              :     YYNOMEM;
    1781              : #else
    1782              :     {
    1783              :       /* Get the current used size of the three stacks, in elements.  */
    1784            0 :       YYPTRDIFF_T yysize = yyssp - yyss + 1;
    1785              : 
    1786              : # if defined yyoverflow
    1787              :       {
    1788              :         /* Give user a chance to reallocate the stack.  Use copies of
    1789              :            these so that the &'s don't force the real ones into
    1790              :            memory.  */
    1791              :         yy_state_t *yyss1 = yyss;
    1792              :         YYSTYPE *yyvs1 = yyvs;
    1793              :         YYLTYPE *yyls1 = yyls;
    1794              : 
    1795              :         /* Each stack pointer address is followed by the size of the
    1796              :            data in use in that stack, in bytes.  This used to be a
    1797              :            conditional around just the two extra args, but that might
    1798              :            be undefined if yyoverflow is a macro.  */
    1799              :         yyoverflow (YY_("memory exhausted"),
    1800              :                     &yyss1, yysize * YYSIZEOF (*yyssp),
    1801              :                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
    1802              :                     &yyls1, yysize * YYSIZEOF (*yylsp),
    1803              :                     &yystacksize);
    1804              :         yyss = yyss1;
    1805              :         yyvs = yyvs1;
    1806              :         yyls = yyls1;
    1807              :       }
    1808              : # else /* defined YYSTACK_RELOCATE */
    1809              :       /* Extend the stack our own way.  */
    1810            0 :       if (YYMAXDEPTH <= yystacksize)
    1811            0 :         YYNOMEM;
    1812            0 :       yystacksize *= 2;
    1813            0 :       if (YYMAXDEPTH < yystacksize)
    1814            0 :         yystacksize = YYMAXDEPTH;
    1815              : 
    1816              :       {
    1817            0 :         yy_state_t *yyss1 = yyss;
    1818              :         union yyalloc *yyptr =
    1819            0 :           YY_CAST (union yyalloc *,
    1820              :                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
    1821            0 :         if (! yyptr)
    1822            0 :           YYNOMEM;
    1823            0 :         YYSTACK_RELOCATE (yyss_alloc, yyss);
    1824            0 :         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    1825            0 :         YYSTACK_RELOCATE (yyls_alloc, yyls);
    1826              : #  undef YYSTACK_RELOCATE
    1827            0 :         if (yyss1 != yyssa)
    1828            0 :           YYSTACK_FREE (yyss1);
    1829              :       }
    1830              : # endif
    1831              : 
    1832            0 :       yyssp = yyss + yysize - 1;
    1833            0 :       yyvsp = yyvs + yysize - 1;
    1834            0 :       yylsp = yyls + yysize - 1;
    1835              : 
    1836              :       YY_IGNORE_USELESS_CAST_BEGIN
    1837              :       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
    1838              :                   YY_CAST (long, yystacksize)));
    1839              :       YY_IGNORE_USELESS_CAST_END
    1840              : 
    1841            0 :       if (yyss + yystacksize - 1 <= yyssp)
    1842            0 :         YYABORT;
    1843              :     }
    1844              : #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
    1845              : 
    1846              : 
    1847    315091775 :   if (yystate == YYFINAL)
    1848       937496 :     YYACCEPT;
    1849              : 
    1850    314154279 :   goto yybackup;
    1851              : 
    1852              : 
    1853              : /*-----------.
    1854              : | yybackup.  |
    1855              : `-----------*/
    1856    314154279 : yybackup:
    1857              :   /* Do appropriate processing given the current state.  Read a
    1858              :      lookahead token if we need one and don't already have one.  */
    1859              : 
    1860              :   /* First try to decide what to do without reference to lookahead token.  */
    1861    314154279 :   yyn = yypact[yystate];
    1862    314154279 :   if (yypact_value_is_default (yyn))
    1863     54520985 :     goto yydefault;
    1864              : 
    1865              :   /* Not known => get a lookahead token if don't already have one.  */
    1866              : 
    1867              :   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
    1868    259633294 :   if (yychar == PARI_EMPTY)
    1869              :     {
    1870              :       YYDPRINTF ((stderr, "Reading a token\n"));
    1871    114187756 :       yychar = yylex (&yylval, &yylloc, lex);
    1872              :     }
    1873              : 
    1874    259633294 :   if (yychar <= PARI_EOF)
    1875              :     {
    1876      3727669 :       yychar = PARI_EOF;
    1877      3727669 :       yytoken = YYSYMBOL_YYEOF;
    1878              :       YYDPRINTF ((stderr, "Now at end of input.\n"));
    1879              :     }
    1880    255905625 :   else if (yychar == PARI_error)
    1881              :     {
    1882              :       /* The scanner already issued an error message, process directly
    1883              :          to error recovery.  But do not keep the error token as
    1884              :          lookahead, it is too special and may lead us to an endless
    1885              :          loop in error recovery. */
    1886            0 :       yychar = PARI_UNDEF;
    1887            0 :       yytoken = YYSYMBOL_YYerror;
    1888            0 :       yyerror_range[1] = yylloc;
    1889            0 :       goto yyerrlab1;
    1890              :     }
    1891              :   else
    1892              :     {
    1893    255905625 :       yytoken = YYTRANSLATE (yychar);
    1894              :       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    1895              :     }
    1896              : 
    1897              :   /* If the proper action on seeing token YYTOKEN is to reduce or to
    1898              :      detect an error, take that action.  */
    1899    259633294 :   yyn += yytoken;
    1900    259633294 :   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    1901    144858181 :     goto yydefault;
    1902    114775113 :   yyn = yytable[yyn];
    1903    114775113 :   if (yyn <= 0)
    1904              :     {
    1905              :       if (yytable_value_is_error (yyn))
    1906              :         goto yyerrlab;
    1907       587399 :       yyn = -yyn;
    1908       587399 :       goto yyreduce;
    1909              :     }
    1910              : 
    1911              :   /* Count tokens shifted since error; after three, turn off error
    1912              :      status.  */
    1913    114187714 :   if (yyerrstatus)
    1914          277 :     yyerrstatus--;
    1915              : 
    1916              :   /* Shift the lookahead token.  */
    1917              :   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
    1918    114187714 :   yystate = yyn;
    1919              :   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    1920    114187714 :   *++yyvsp = yylval;
    1921              :   YY_IGNORE_MAYBE_UNINITIALIZED_END
    1922    114187714 :   *++yylsp = yylloc;
    1923              : 
    1924              :   /* Discard the shifted token.  */
    1925    114187714 :   yychar = PARI_EMPTY;
    1926    114187714 :   goto yynewstate;
    1927              : 
    1928              : 
    1929              : /*-----------------------------------------------------------.
    1930              : | yydefault -- do the default action for the current state.  |
    1931              : `-----------------------------------------------------------*/
    1932    199379166 : yydefault:
    1933    199379166 :   yyn = yydefact[yystate];
    1934    199379166 :   if (yyn == 0)
    1935          160 :     goto yyerrlab;
    1936    199379006 :   goto yyreduce;
    1937              : 
    1938              : 
    1939              : /*-----------------------------.
    1940              : | yyreduce -- do a reduction.  |
    1941              : `-----------------------------*/
    1942    199966405 : yyreduce:
    1943              :   /* yyn is the number of a rule to reduce with.  */
    1944    199966405 :   yylen = yyr2[yyn];
    1945              : 
    1946              :   /* If YYLEN is nonzero, implement the default value of the action:
    1947              :      '$$ = $1'.
    1948              : 
    1949              :      Otherwise, the following line sets YYVAL to garbage.
    1950              :      This behavior is undocumented and Bison
    1951              :      users should not rely upon it.  Assigning to YYVAL
    1952              :      unconditionally makes the parser a bit smaller, and it avoids a
    1953              :      GCC warning that YYVAL may be used uninitialized.  */
    1954    199966405 :   yyval = yyvsp[1-yylen];
    1955              : 
    1956              :   /* Default location. */
    1957    199966405 :   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
    1958    199966405 :   yyerror_range[1] = yyloc;
    1959              :   YY_REDUCE_PRINT (yyn);
    1960    199966405 :   switch (yyn)
    1961              :     {
    1962       937496 :   case 2: /* sequence: seq  */
    1963              : #line 90 "../src/language/parse.y"
    1964              :                      {(yyval.val)=(yyvsp[0].val); (void) pari_nerrs;}
    1965              : #line 1966 "../src/language/parse.c"
    1966       937496 :     break;
    1967              : 
    1968        15186 :   case 3: /* seq: %empty  */
    1969              : #line 93 "../src/language/parse.y"
    1970              :                      {(yyval.val)=NOARG((yyloc));}
    1971              : #line 1972 "../src/language/parse.c"
    1972        15186 :     break;
    1973              : 
    1974      1330096 :   case 4: /* seq: expr  */
    1975              : #line 94 "../src/language/parse.y"
    1976              :                      {(yyval.val)=(yyvsp[0].val);}
    1977              : #line 1978 "../src/language/parse.c"
    1978      1330096 :     break;
    1979              : 
    1980        45591 :   case 5: /* seq: seq ';'  */
    1981              : #line 95 "../src/language/parse.y"
    1982              :                      {(yyval.val)=(yyvsp[-1].val); (yyloc)=(yylsp[-1]);}
    1983              : #line 1984 "../src/language/parse.c"
    1984        45591 :     break;
    1985              : 
    1986        33286 :   case 6: /* seq: seq ';' expr  */
    1987              : #line 96 "../src/language/parse.y"
    1988              :                      {(yyval.val)=newnode(Fseq,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    1989              : #line 1990 "../src/language/parse.c"
    1990        33286 :     break;
    1991              : 
    1992          952 :   case 7: /* range: %empty  */
    1993              : #line 99 "../src/language/parse.y"
    1994              :                       { (yyval.val)=newnode(Frange,NORANGE((yyloc)),NORANGE((yyloc)),&(yyloc)); }
    1995              : #line 1996 "../src/language/parse.c"
    1996          952 :     break;
    1997              : 
    1998        14567 :   case 8: /* range: expr  */
    1999              : #line 100 "../src/language/parse.y"
    2000              :                       { (yyval.val)=newnode(Frange,(yyvsp[0].val),NORANGE((yyloc)),&(yyloc)); }
    2001              : #line 2002 "../src/language/parse.c"
    2002        14567 :     break;
    2003              : 
    2004          756 :   case 9: /* range: expr ".." expr  */
    2005              : #line 101 "../src/language/parse.y"
    2006              :                       { (yyval.val)=newnode(Frange,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc)); }
    2007              : #line 2008 "../src/language/parse.c"
    2008          756 :     break;
    2009              : 
    2010           98 :   case 10: /* range: '^' expr  */
    2011              : #line 102 "../src/language/parse.y"
    2012              :                       { (yyval.val)=newnode(Frange,NORANGE((yyloc)),(yyvsp[0].val),&(yyloc)); }
    2013              : #line 2014 "../src/language/parse.c"
    2014           98 :     break;
    2015              : 
    2016         1756 :   case 11: /* matrix_index: '[' range ',' range ']'  */
    2017              : #line 105 "../src/language/parse.y"
    2018              :                                       {(yyval.val)=newnode(Fmatrix,(yyvsp[-3].val),(yyvsp[-1].val),&(yyloc));}
    2019              : #line 2020 "../src/language/parse.c"
    2020         1756 :     break;
    2021              : 
    2022        12861 :   case 12: /* matrix_index: '[' range ']'  */
    2023              : #line 106 "../src/language/parse.y"
    2024              :                                       {(yyval.val)=newnode(Fmatrix,(yyvsp[-1].val),-1,&(yyloc));}
    2025              : #line 2026 "../src/language/parse.c"
    2026        12861 :     break;
    2027              : 
    2028           35 :   case 13: /* backticks: '`'  */
    2029              : #line 109 "../src/language/parse.y"
    2030              :                {(yyval.val)=1;}
    2031              : #line 2032 "../src/language/parse.c"
    2032           35 :     break;
    2033              : 
    2034           84 :   case 14: /* backticks: backticks '`'  */
    2035              : #line 110 "../src/language/parse.y"
    2036              :                          {(yyval.val)=(yyvsp[-1].val)+1;}
    2037              : #line 2038 "../src/language/parse.c"
    2038           84 :     break;
    2039              : 
    2040           49 :   case 15: /* history: '%'  */
    2041              : #line 113 "../src/language/parse.y"
    2042              :                        {(yyval.val)=newopcall(OPhist,-1,-1,&(yyloc));}
    2043              : #line 2044 "../src/language/parse.c"
    2044           49 :     break;
    2045              : 
    2046           14 :   case 16: /* history: '%' "integer"  */
    2047              : #line 114 "../src/language/parse.y"
    2048              :                        {(yyval.val)=newopcall(OPhist,newintnode(&(yylsp[0])),-1,&(yyloc));}
    2049              : #line 2050 "../src/language/parse.c"
    2050           14 :     break;
    2051              : 
    2052           28 :   case 17: /* history: '%' backticks  */
    2053              : #line 115 "../src/language/parse.y"
    2054              :                        {(yyval.val)=newopcall(OPhist,newnode(Fsmall,-(yyvsp[0].val),-1,&(yyloc)),-1,&(yyloc));}
    2055              : #line 2056 "../src/language/parse.c"
    2056           28 :     break;
    2057              : 
    2058            7 :   case 18: /* history: '%' '#'  */
    2059              : #line 116 "../src/language/parse.y"
    2060              :                           {(yyval.val)=newopcall(OPhisttime,-1,-1,&(yyloc));}
    2061              : #line 2062 "../src/language/parse.c"
    2062            7 :     break;
    2063              : 
    2064            7 :   case 19: /* history: '%' '#' "integer"  */
    2065              : #line 117 "../src/language/parse.y"
    2066              :                           {(yyval.val)=newopcall(OPhisttime,newintnode(&(yylsp[0])),-1,&(yyloc));}
    2067              : #line 2068 "../src/language/parse.c"
    2068            7 :     break;
    2069              : 
    2070            7 :   case 20: /* history: '%' '#' backticks  */
    2071              : #line 118 "../src/language/parse.y"
    2072              :                           {(yyval.val)=newopcall(OPhisttime,newnode(Fsmall,-(yyvsp[0].val),-1,&(yyloc)),-1,&(yyloc));}
    2073              : #line 2074 "../src/language/parse.c"
    2074            7 :     break;
    2075              : 
    2076          175 :   case 21: /* deriv: '\''  */
    2077              : #line 121 "../src/language/parse.y"
    2078              :             {(yyval.val) = 1;}
    2079              : #line 2080 "../src/language/parse.c"
    2080          175 :     break;
    2081              : 
    2082           42 :   case 22: /* deriv: deriv '\''  */
    2083              : #line 122 "../src/language/parse.y"
    2084              :                   {(yyval.val) = (yyvsp[-1].val)+1;}
    2085              : #line 2086 "../src/language/parse.c"
    2086           42 :     break;
    2087              : 
    2088     31517468 :   case 23: /* expr: "integer"  */
    2089              : #line 125 "../src/language/parse.y"
    2090              :                           {(yyval.val)=newintnode(&(yylsp[0]));}
    2091              : #line 2092 "../src/language/parse.c"
    2092     31517468 :     break;
    2093              : 
    2094         6297 :   case 24: /* expr: "real number"  */
    2095              : #line 126 "../src/language/parse.y"
    2096              :                           {(yyval.val)=newconst(CSTreal,&(yyloc));}
    2097              : #line 2098 "../src/language/parse.c"
    2098         6297 :     break;
    2099              : 
    2100            0 :   case 25: /* expr: '.'  */
    2101              : #line 127 "../src/language/parse.y"
    2102              :                           {(yyval.val)=newconst(CSTreal,&(yyloc));}
    2103              : #line 2104 "../src/language/parse.c"
    2104            0 :     break;
    2105              : 
    2106            0 :   case 26: /* expr: "integer" '.' "variable name"  */
    2107              : #line 128 "../src/language/parse.y"
    2108              :                           {(yyval.val)=newnode(Ffunction,newconst(CSTmember,&(yylsp[0])),
    2109              :                                                 newintnode(&(yylsp[-2])),&(yyloc));}
    2110              : #line 2111 "../src/language/parse.c"
    2111            0 :     break;
    2112              : 
    2113      3822335 :   case 27: /* expr: "character string"  */
    2114              : #line 130 "../src/language/parse.y"
    2115              :                     {(yyval.val)=newconst(CSTstr,&(yyloc));}
    2116              : #line 2117 "../src/language/parse.c"
    2117      3822335 :     break;
    2118              : 
    2119         3818 :   case 28: /* expr: '\'' "variable name"  */
    2120              : #line 131 "../src/language/parse.y"
    2121              :                     {(yyval.val)=newconst(CSTquote,&(yyloc));}
    2122              : #line 2123 "../src/language/parse.c"
    2123         3818 :     break;
    2124              : 
    2125          112 :   case 29: /* expr: history  */
    2126              : #line 132 "../src/language/parse.y"
    2127              :                         {(yyval.val)=(yyvsp[0].val);}
    2128              : #line 2129 "../src/language/parse.c"
    2129          112 :     break;
    2130              : 
    2131          329 :   case 30: /* expr: expr '(' listarg ')'  */
    2132              : #line 133 "../src/language/parse.y"
    2133              :                             {(yyval.val)=newnode(Fcall,(yyvsp[-3].val),(yyvsp[-1].val),&(yyloc));}
    2134              : #line 2135 "../src/language/parse.c"
    2135          329 :     break;
    2136              : 
    2137       209880 :   case 31: /* expr: funcid  */
    2138              : #line 134 "../src/language/parse.y"
    2139              :                         {(yyval.val)=(yyvsp[0].val);}
    2140              : #line 2141 "../src/language/parse.c"
    2141       209880 :     break;
    2142              : 
    2143       304016 :   case 32: /* expr: lvalue  */
    2144              : #line 135 "../src/language/parse.y"
    2145              :                         {(yyval.val)=(yyvsp[0].val);}
    2146              : #line 2147 "../src/language/parse.c"
    2147       304016 :     break;
    2148              : 
    2149     15471306 :   case 33: /* expr: matrix  */
    2150              : #line 136 "../src/language/parse.y"
    2151              :                         {(yyval.val)=(yyvsp[0].val);}
    2152              : #line 2153 "../src/language/parse.c"
    2153     15471306 :     break;
    2154              : 
    2155          872 :   case 34: /* expr: compr  */
    2156              : #line 137 "../src/language/parse.y"
    2157              :                         {(yyval.val)=(yyvsp[0].val);}
    2158              : #line 2159 "../src/language/parse.c"
    2159          872 :     break;
    2160              : 
    2161         9386 :   case 35: /* expr: definition  */
    2162              : #line 138 "../src/language/parse.y"
    2163              :                         {(yyval.val)=(yyvsp[0].val);}
    2164              : #line 2165 "../src/language/parse.c"
    2165         9386 :     break;
    2166              : 
    2167         1246 :   case 36: /* expr: matrix '=' expr  */
    2168              : #line 139 "../src/language/parse.y"
    2169              :                       {(yyval.val)=newnode(Fassign,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2170              : #line 2171 "../src/language/parse.c"
    2171         1246 :     break;
    2172              : 
    2173        52456 :   case 37: /* expr: lvalue '=' expr  */
    2174              : #line 140 "../src/language/parse.y"
    2175              :                       {(yyval.val)=newnode(Fassign,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2176              : #line 2177 "../src/language/parse.c"
    2177        52456 :     break;
    2178              : 
    2179          190 :   case 38: /* expr: lvalue "++"  */
    2180              : #line 141 "../src/language/parse.y"
    2181              :                       {(yyval.val)=newopcall(OPpp,(yyvsp[-1].val),-1,&(yyloc));}
    2182              : #line 2183 "../src/language/parse.c"
    2183          190 :     break;
    2184              : 
    2185           28 :   case 39: /* expr: lvalue "--"  */
    2186              : #line 142 "../src/language/parse.y"
    2187              :                       {(yyval.val)=newopcall(OPss,(yyvsp[-1].val),-1,&(yyloc));}
    2188              : #line 2189 "../src/language/parse.c"
    2189           28 :     break;
    2190              : 
    2191          195 :   case 40: /* expr: lvalue "*=" expr  */
    2192              : #line 143 "../src/language/parse.y"
    2193              :                          {(yyval.val)=newopcall(OPme,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2194              : #line 2195 "../src/language/parse.c"
    2195          195 :     break;
    2196              : 
    2197           35 :   case 41: /* expr: lvalue "/=" expr  */
    2198              : #line 144 "../src/language/parse.y"
    2199              :                          {(yyval.val)=newopcall(OPde,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2200              : #line 2201 "../src/language/parse.c"
    2201           35 :     break;
    2202              : 
    2203            7 :   case 42: /* expr: lvalue "\\/=" expr  */
    2204              : #line 145 "../src/language/parse.y"
    2205              :                          {(yyval.val)=newopcall(OPdre,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2206              : #line 2207 "../src/language/parse.c"
    2207            7 :     break;
    2208              : 
    2209            7 :   case 43: /* expr: lvalue "\\=" expr  */
    2210              : #line 146 "../src/language/parse.y"
    2211              :                          {(yyval.val)=newopcall(OPeuce,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2212              : #line 2213 "../src/language/parse.c"
    2213            7 :     break;
    2214              : 
    2215            7 :   case 44: /* expr: lvalue "%=" expr  */
    2216              : #line 147 "../src/language/parse.y"
    2217              :                          {(yyval.val)=newopcall(OPmode,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2218              : #line 2219 "../src/language/parse.c"
    2219            7 :     break;
    2220              : 
    2221            7 :   case 45: /* expr: lvalue "<<=" expr  */
    2222              : #line 148 "../src/language/parse.y"
    2223              :                          {(yyval.val)=newopcall(OPsle,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2224              : #line 2225 "../src/language/parse.c"
    2225            7 :     break;
    2226              : 
    2227            7 :   case 46: /* expr: lvalue ">>=" expr  */
    2228              : #line 149 "../src/language/parse.y"
    2229              :                          {(yyval.val)=newopcall(OPsre,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2230              : #line 2231 "../src/language/parse.c"
    2231            7 :     break;
    2232              : 
    2233          229 :   case 47: /* expr: lvalue "+=" expr  */
    2234              : #line 150 "../src/language/parse.y"
    2235              :                          {(yyval.val)=newopcall(OPpe,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2236              : #line 2237 "../src/language/parse.c"
    2237          229 :     break;
    2238              : 
    2239           63 :   case 48: /* expr: lvalue "-=" expr  */
    2240              : #line 151 "../src/language/parse.y"
    2241              :                          {(yyval.val)=newopcall(OPse,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2242              : #line 2243 "../src/language/parse.c"
    2243           63 :     break;
    2244              : 
    2245          903 :   case 49: /* expr: '!' expr  */
    2246              : #line 152 "../src/language/parse.y"
    2247              :                        {(yyval.val)=newopcall(OPnb,(yyvsp[0].val),-1,&(yyloc));}
    2248              : #line 2249 "../src/language/parse.c"
    2249          903 :     break;
    2250              : 
    2251         3895 :   case 50: /* expr: '#' expr  */
    2252              : #line 153 "../src/language/parse.y"
    2253              :                        {(yyval.val)=newopcall(OPlength,(yyvsp[0].val),-1,&(yyloc));}
    2254              : #line 2255 "../src/language/parse.c"
    2255         3895 :     break;
    2256              : 
    2257          462 :   case 51: /* expr: expr "||" expr  */
    2258              : #line 154 "../src/language/parse.y"
    2259              :                        {(yyval.val)=newopcall(OPor,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2260              : #line 2261 "../src/language/parse.c"
    2261          462 :     break;
    2262              : 
    2263          812 :   case 52: /* expr: expr "&&" expr  */
    2264              : #line 155 "../src/language/parse.y"
    2265              :                        {(yyval.val)=newopcall(OPand,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2266              : #line 2267 "../src/language/parse.c"
    2267          812 :     break;
    2268              : 
    2269            0 :   case 53: /* expr: expr '&' expr  */
    2270              : #line 156 "../src/language/parse.y"
    2271              :                        {(yyval.val)=newopcall(OPand,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2272              : #line 2273 "../src/language/parse.c"
    2273            0 :     break;
    2274              : 
    2275          343 :   case 54: /* expr: expr "===" expr  */
    2276              : #line 157 "../src/language/parse.y"
    2277              :                        {(yyval.val)=newopcall(OPid,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2278              : #line 2279 "../src/language/parse.c"
    2279          343 :     break;
    2280              : 
    2281        11733 :   case 55: /* expr: expr "==" expr  */
    2282              : #line 158 "../src/language/parse.y"
    2283              :                        {(yyval.val)=newopcall(OPeq,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2284              : #line 2285 "../src/language/parse.c"
    2285        11733 :     break;
    2286              : 
    2287         2303 :   case 56: /* expr: expr "!=" expr  */
    2288              : #line 159 "../src/language/parse.y"
    2289              :                        {(yyval.val)=newopcall(OPne,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2290              : #line 2291 "../src/language/parse.c"
    2291         2303 :     break;
    2292              : 
    2293          125 :   case 57: /* expr: expr ">=" expr  */
    2294              : #line 160 "../src/language/parse.y"
    2295              :                        {(yyval.val)=newopcall(OPge,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2296              : #line 2297 "../src/language/parse.c"
    2297          125 :     break;
    2298              : 
    2299          490 :   case 58: /* expr: expr '>' expr  */
    2300              : #line 161 "../src/language/parse.y"
    2301              :                        {(yyval.val)=newopcall(OPg,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2302              : #line 2303 "../src/language/parse.c"
    2303          490 :     break;
    2304              : 
    2305          237 :   case 59: /* expr: expr "<=" expr  */
    2306              : #line 162 "../src/language/parse.y"
    2307              :                        {(yyval.val)=newopcall(OPle,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2308              : #line 2309 "../src/language/parse.c"
    2309          237 :     break;
    2310              : 
    2311         1348 :   case 60: /* expr: expr '<' expr  */
    2312              : #line 163 "../src/language/parse.y"
    2313              :                        {(yyval.val)=newopcall(OPl,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2314              : #line 2315 "../src/language/parse.c"
    2315         1348 :     break;
    2316              : 
    2317        30443 :   case 61: /* expr: expr '-' expr  */
    2318              : #line 164 "../src/language/parse.y"
    2319              :                        {(yyval.val)=newopcall(OPs,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2320              : #line 2321 "../src/language/parse.c"
    2321        30443 :     break;
    2322              : 
    2323        59336 :   case 62: /* expr: expr '+' expr  */
    2324              : #line 165 "../src/language/parse.y"
    2325              :                        {(yyval.val)=newopcall(OPp,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2326              : #line 2327 "../src/language/parse.c"
    2327        59336 :     break;
    2328              : 
    2329          147 :   case 63: /* expr: expr "<<" expr  */
    2330              : #line 166 "../src/language/parse.y"
    2331              :                        {(yyval.val)=newopcall(OPsl,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2332              : #line 2333 "../src/language/parse.c"
    2333          147 :     break;
    2334              : 
    2335           21 :   case 64: /* expr: expr ">>" expr  */
    2336              : #line 167 "../src/language/parse.y"
    2337              :                        {(yyval.val)=newopcall(OPsr,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2338              : #line 2339 "../src/language/parse.c"
    2339           21 :     break;
    2340              : 
    2341          728 :   case 65: /* expr: expr '%' expr  */
    2342              : #line 168 "../src/language/parse.y"
    2343              :                        {(yyval.val)=newopcall(OPmod,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2344              : #line 2345 "../src/language/parse.c"
    2345          728 :     break;
    2346              : 
    2347           28 :   case 66: /* expr: expr "\\/" expr  */
    2348              : #line 169 "../src/language/parse.y"
    2349              :                        {(yyval.val)=newopcall(OPdr,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2350              : #line 2351 "../src/language/parse.c"
    2351           28 :     break;
    2352              : 
    2353          217 :   case 67: /* expr: expr '\\' expr  */
    2354              : #line 170 "../src/language/parse.y"
    2355              :                        {(yyval.val)=newopcall(OPeuc,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2356              : #line 2357 "../src/language/parse.c"
    2357          217 :     break;
    2358              : 
    2359       905638 :   case 68: /* expr: expr '/' expr  */
    2360              : #line 171 "../src/language/parse.y"
    2361              :                        {(yyval.val)=newopcall(OPd,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2362              : #line 2363 "../src/language/parse.c"
    2363       905638 :     break;
    2364              : 
    2365        61271 :   case 69: /* expr: expr '*' expr  */
    2366              : #line 172 "../src/language/parse.y"
    2367              :                        {(yyval.val)=newopcall(OPm,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2368              : #line 2369 "../src/language/parse.c"
    2369        61271 :     break;
    2370              : 
    2371           84 :   case 70: /* expr: '+' expr  */
    2372              : #line 173 "../src/language/parse.y"
    2373              :                           {(yyval.val)=(yyvsp[0].val);}
    2374              : #line 2375 "../src/language/parse.c"
    2375           84 :     break;
    2376              : 
    2377      9400720 :   case 71: /* expr: '-' expr  */
    2378              : #line 174 "../src/language/parse.y"
    2379              :                           {(yyval.val)=newopcall(OPn,(yyvsp[0].val),-1,&(yyloc));}
    2380              : #line 2381 "../src/language/parse.c"
    2381      9400720 :     break;
    2382              : 
    2383        77652 :   case 72: /* expr: expr '^' expr  */
    2384              : #line 175 "../src/language/parse.y"
    2385              :                     {(yyval.val)=newopcall(OPpow,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2386              : #line 2387 "../src/language/parse.c"
    2387        77652 :     break;
    2388              : 
    2389         5089 :   case 73: /* expr: expr '~'  */
    2390              : #line 176 "../src/language/parse.y"
    2391              :                {(yyval.val)=newopcall(OPtrans,(yyvsp[-1].val),-1,&(yyloc));}
    2392              : #line 2393 "../src/language/parse.c"
    2393         5089 :     break;
    2394              : 
    2395          175 :   case 74: /* expr: expr deriv  */
    2396              : #line 177 "../src/language/parse.y"
    2397              :                              {(yyval.val)=newopcall(OPderivn,(yyvsp[-1].val), newnode(Fsmall,(yyvsp[0].val),-1,&(yyloc)),&(yyloc));}
    2398              : #line 2399 "../src/language/parse.c"
    2399          175 :     break;
    2400              : 
    2401          243 :   case 75: /* expr: expr '!'  */
    2402              : #line 178 "../src/language/parse.y"
    2403              :                 {(yyval.val)=newopcall(OPfact,(yyvsp[-1].val),-1,&(yyloc));}
    2404              : #line 2405 "../src/language/parse.c"
    2405          243 :     break;
    2406              : 
    2407           28 :   case 76: /* expr: expr '#'  */
    2408              : #line 179 "../src/language/parse.y"
    2409              :                 {(yyval.val)=newopcall(OPprim,(yyvsp[-1].val),-1,&(yyloc));}
    2410              : #line 2411 "../src/language/parse.c"
    2411           28 :     break;
    2412              : 
    2413         4618 :   case 77: /* expr: expr matrix_index  */
    2414              : #line 180 "../src/language/parse.y"
    2415              :                         {(yyval.val)=newnode(Fmatcoeff,(yyvsp[-1].val),(yyvsp[0].val),&(yyloc));}
    2416              : #line 2417 "../src/language/parse.c"
    2417         4618 :     break;
    2418              : 
    2419        12642 :   case 78: /* expr: memberid  */
    2420              : #line 181 "../src/language/parse.y"
    2421              :                {(yyval.val)=(yyvsp[0].val);}
    2422              : #line 2423 "../src/language/parse.c"
    2423        12642 :     break;
    2424              : 
    2425            0 :   case 79: /* expr: expr ':' "variable name"  */
    2426              : #line 182 "../src/language/parse.y"
    2427              :                         {(yyval.val)=newnode(Ftag,(yyvsp[-2].val),0,&(yyloc));}
    2428              : #line 2429 "../src/language/parse.c"
    2429            0 :     break;
    2430              : 
    2431        14289 :   case 80: /* expr: '(' expr ')'  */
    2432              : #line 183 "../src/language/parse.y"
    2433              :                    {(yyval.val)=(yyvsp[-1].val);}
    2434              : #line 2435 "../src/language/parse.c"
    2435        14289 :     break;
    2436              : 
    2437       361880 :   case 81: /* lvalue: "variable name"  */
    2438              : #line 186 "../src/language/parse.y"
    2439              :                             {(yyval.val)=newnode(Fentry,newconst(CSTentry,&(yylsp[0])),-1,&(yyloc));}
    2440              : #line 2441 "../src/language/parse.c"
    2441       361880 :     break;
    2442              : 
    2443         9999 :   case 82: /* lvalue: lvalue matrix_index  */
    2444              : #line 187 "../src/language/parse.y"
    2445              :                             {(yyval.val)=newnode(Fmatcoeff,(yyvsp[-1].val),(yyvsp[0].val),&(yyloc));}
    2446              : #line 2447 "../src/language/parse.c"
    2447         9999 :     break;
    2448              : 
    2449            0 :   case 83: /* lvalue: lvalue ':' "variable name"  */
    2450              : #line 188 "../src/language/parse.y"
    2451              :                             {(yyval.val)=newnode(Ftag,(yyvsp[-2].val),newconst(CSTentry,&(yylsp[-1])),&(yyloc));}
    2452              : #line 2453 "../src/language/parse.c"
    2453            0 :     break;
    2454              : 
    2455     34928908 :   case 84: /* exprno: expr  */
    2456              : #line 191 "../src/language/parse.y"
    2457              :              {(yyval.val)=(yyvsp[0].val);}
    2458              : #line 2459 "../src/language/parse.c"
    2459     34928908 :     break;
    2460              : 
    2461           42 :   case 85: /* exprno: %empty  */
    2462              : #line 192 "../src/language/parse.y"
    2463              :              {(yyval.val)=NOARG((yyloc));}
    2464              : #line 2465 "../src/language/parse.c"
    2465           42 :     break;
    2466              : 
    2467     34928950 :   case 86: /* matrixeltsno: matrixelts  */
    2468              : #line 194 "../src/language/parse.y"
    2469              :                          {(yyval.val)=(yyvsp[0].val);}
    2470              : #line 2471 "../src/language/parse.c"
    2471     34928950 :     break;
    2472              : 
    2473            7 :   case 87: /* matrixeltsno: %empty  */
    2474              : #line 195 "../src/language/parse.y"
    2475              :                    {(yyval.val)=NOARG((yyloc));}
    2476              : #line 2477 "../src/language/parse.c"
    2477            7 :     break;
    2478              : 
    2479     13879751 :   case 88: /* matrixelts: expr  */
    2480              : #line 198 "../src/language/parse.y"
    2481              :                  {(yyval.val)=(yyvsp[0].val);}
    2482              : #line 2483 "../src/language/parse.c"
    2483     13879751 :     break;
    2484              : 
    2485     34928950 :   case 89: /* matrixelts: matrixeltsno ',' exprno  */
    2486              : #line 199 "../src/language/parse.y"
    2487              :                                     {(yyval.val)=newnode(Fmatrixelts,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2488              : #line 2489 "../src/language/parse.c"
    2489     34928950 :     break;
    2490              : 
    2491         8686 :   case 90: /* matrixlines: matrixelts ';' matrixelts  */
    2492              : #line 202 "../src/language/parse.y"
    2493              :                                         {(yyval.val)=newnode(Fmatrixlines,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2494              : #line 2495 "../src/language/parse.c"
    2495         8686 :     break;
    2496              : 
    2497        20993 :   case 91: /* matrixlines: matrixlines ';' matrixelts  */
    2498              : #line 203 "../src/language/parse.y"
    2499              :                                         {(yyval.val)=newnode(Fmatrixlines,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2500              : #line 2501 "../src/language/parse.c"
    2501        20993 :     break;
    2502              : 
    2503      1620479 :   case 92: /* matrix: '[' ']'  */
    2504              : #line 206 "../src/language/parse.y"
    2505              :                             {(yyval.val)=newnode(Fvec,-1,-1,&(yyloc));}
    2506              : #line 2507 "../src/language/parse.c"
    2507      1620479 :     break;
    2508              : 
    2509         1000 :   case 93: /* matrix: '[' expr ".." expr ']'  */
    2510              : #line 207 "../src/language/parse.y"
    2511              :                                {(yyval.val)=newopcall(OPrange,(yyvsp[-3].val),(yyvsp[-1].val),&(yyloc));}
    2512              : #line 2513 "../src/language/parse.c"
    2513         1000 :     break;
    2514              : 
    2515         1001 :   case 94: /* matrix: '[' ';' ']'  */
    2516              : #line 208 "../src/language/parse.y"
    2517              :                             {(yyval.val)=newnode(Fmat,-1,-1,&(yyloc));}
    2518              : #line 2519 "../src/language/parse.c"
    2519         1001 :     break;
    2520              : 
    2521     13841386 :   case 95: /* matrix: '[' matrixelts ']'  */
    2522              : #line 209 "../src/language/parse.y"
    2523              :                             {(yyval.val)=newnode(Fvec,(yyvsp[-1].val),-1,&(yyloc));}
    2524              : #line 2525 "../src/language/parse.c"
    2525     13841386 :     break;
    2526              : 
    2527         8686 :   case 96: /* matrix: '[' matrixlines ']'  */
    2528              : #line 210 "../src/language/parse.y"
    2529              :                             {(yyval.val)=newnode(Fmat,(yyvsp[-1].val),-1,&(yyloc));}
    2530              : #line 2531 "../src/language/parse.c"
    2531         8686 :     break;
    2532              : 
    2533          970 :   case 97: /* in: lvalue '<' '-' expr  */
    2534              : #line 213 "../src/language/parse.y"
    2535              :                         {(yyval.val)=newnode(Flistarg,(yyvsp[0].val),(yyvsp[-3].val),&(yyloc));}
    2536              : #line 2537 "../src/language/parse.c"
    2537          970 :     break;
    2538              : 
    2539            7 :   case 98: /* eq: lvalue '=' expr  */
    2540              : #line 216 "../src/language/parse.y"
    2541              :                     {(yyval.val)=newnode(Flistarg,(yyvsp[0].val),(yyvsp[-2].val),&(yyloc));}
    2542              : #line 2543 "../src/language/parse.c"
    2543            7 :     break;
    2544              : 
    2545          697 :   case 99: /* inseq: in  */
    2546              : #line 219 "../src/language/parse.y"
    2547              :                              {(yyval.val)=newopcall(OPcompr,(yyvsp[0].val),-2,&(yyloc));}
    2548              : #line 2549 "../src/language/parse.c"
    2549          697 :     break;
    2550              : 
    2551          168 :   case 100: /* inseq: in ',' expr  */
    2552              : #line 220 "../src/language/parse.y"
    2553              :                              {(yyval.val)=newopcall3(OPcompr,(yyvsp[-2].val),-2,(yyvsp[0].val),&(yyloc));}
    2554              : #line 2555 "../src/language/parse.c"
    2555          168 :     break;
    2556              : 
    2557           91 :   case 101: /* inseq: in ';' inseq  */
    2558              : #line 221 "../src/language/parse.y"
    2559              :                              {(yyval.val)=newopcall(OPcomprc,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2560              : #line 2561 "../src/language/parse.c"
    2561           91 :     break;
    2562              : 
    2563           14 :   case 102: /* inseq: in ',' expr ';' inseq  */
    2564              : #line 222 "../src/language/parse.y"
    2565              :                              {(yyval.val)=newopcall3(OPcomprc,(yyvsp[-4].val),(yyvsp[0].val),(yyvsp[-2].val),&(yyloc));}
    2566              : #line 2567 "../src/language/parse.c"
    2567           14 :     break;
    2568              : 
    2569            0 :   case 103: /* inseq: eq  */
    2570              : #line 223 "../src/language/parse.y"
    2571              :                              {(yyval.val)=newopcall(OPcompreq,(yyvsp[0].val),-2,&(yyloc));}
    2572              : #line 2573 "../src/language/parse.c"
    2573            0 :     break;
    2574              : 
    2575            7 :   case 104: /* inseq: eq ',' expr  */
    2576              : #line 224 "../src/language/parse.y"
    2577              :                              {(yyval.val)=newopcall3(OPcompreq,(yyvsp[-2].val),-2,(yyvsp[0].val),&(yyloc));}
    2578              : #line 2579 "../src/language/parse.c"
    2579            7 :     break;
    2580              : 
    2581            0 :   case 105: /* inseq: eq ';' inseq  */
    2582              : #line 225 "../src/language/parse.y"
    2583              :                              {(yyval.val)=newopcall(OPcompreqc,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2584              : #line 2585 "../src/language/parse.c"
    2585            0 :     break;
    2586              : 
    2587            0 :   case 106: /* inseq: eq ',' expr ';' inseq  */
    2588              : #line 226 "../src/language/parse.y"
    2589              :                              {(yyval.val)=newopcall3(OPcompreqc,(yyvsp[-4].val),(yyvsp[0].val),(yyvsp[-2].val),&(yyloc));}
    2590              : #line 2591 "../src/language/parse.c"
    2591            0 :     break;
    2592              : 
    2593          872 :   case 107: /* compr: '[' expr '|' inseq ']'  */
    2594              : #line 229 "../src/language/parse.y"
    2595              :                               {(yyval.val)=addcurrexpr((yyvsp[-1].val),(yyvsp[-3].val),&(yyloc));}
    2596              : #line 2597 "../src/language/parse.c"
    2597          872 :     break;
    2598              : 
    2599       398400 :   case 108: /* arg: seq  */
    2600              : #line 232 "../src/language/parse.y"
    2601              :                 {(yyval.val)=(yyvsp[0].val);}
    2602              : #line 2603 "../src/language/parse.c"
    2603       398400 :     break;
    2604              : 
    2605           21 :   case 109: /* arg: lvalue '[' ".." ']'  */
    2606              : #line 233 "../src/language/parse.y"
    2607              :                          {(yyval.val)=newnode(Fvararg,(yyvsp[-3].val),-1,&(yyloc));}
    2608              : #line 2609 "../src/language/parse.c"
    2609           21 :     break;
    2610              : 
    2611         1540 :   case 110: /* arg: '&' lvalue  */
    2612              : #line 234 "../src/language/parse.y"
    2613              :                 {(yyval.val)=newnode(Frefarg,(yyvsp[0].val),-1,&(yyloc));}
    2614              : #line 2615 "../src/language/parse.c"
    2615         1540 :     break;
    2616              : 
    2617          686 :   case 111: /* arg: '~' lvalue  */
    2618              : #line 235 "../src/language/parse.y"
    2619              :                 {(yyval.val)=newnode(Findarg,(yyvsp[0].val),-1,&(yyloc));}
    2620              : #line 2621 "../src/language/parse.c"
    2621          686 :     break;
    2622              : 
    2623          153 :   case 112: /* $@1: %empty  */
    2624              : #line 236 "../src/language/parse.y"
    2625              :                 {if (!pari_once) { yyerrok; } pari_once=1;}
    2626              : #line 2627 "../src/language/parse.c"
    2627          153 :     break;
    2628              : 
    2629          104 :   case 113: /* arg: arg error $@1 expr  */
    2630              : #line 237 "../src/language/parse.y"
    2631              :                      {pari_once=0; (yyval.val)=newopcall(OPcat,(yyvsp[-3].val),(yyvsp[0].val),&(yyloc));}
    2632              : #line 2633 "../src/language/parse.c"
    2633          104 :     break;
    2634              : 
    2635       218186 :   case 114: /* listarg: arg  */
    2636              : #line 240 "../src/language/parse.y"
    2637              :              {(yyval.val)=(yyvsp[0].val);}
    2638              : #line 2639 "../src/language/parse.c"
    2639       218186 :     break;
    2640              : 
    2641       182454 :   case 115: /* listarg: listarg ',' arg  */
    2642              : #line 241 "../src/language/parse.y"
    2643              :                          {(yyval.val)=newnode(Flistarg,(yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2644              : #line 2645 "../src/language/parse.c"
    2645       182454 :     break;
    2646              : 
    2647       209880 :   case 116: /* funcid: "variable name" '(' listarg ')'  */
    2648              : #line 244 "../src/language/parse.y"
    2649              :                                {(yyval.val)=newnode(Ffunction,newconst(CSTentry,&(yylsp[-3])),(yyvsp[-1].val),&(yyloc));}
    2650              : #line 2651 "../src/language/parse.c"
    2651       209880 :     break;
    2652              : 
    2653        12642 :   case 117: /* memberid: expr '.' "variable name"  */
    2654              : #line 247 "../src/language/parse.y"
    2655              :                           {(yyval.val)=newnode(Ffunction,newconst(CSTmember,&(yylsp[0])),(yyvsp[-2].val),&(yyloc));}
    2656              : #line 2657 "../src/language/parse.c"
    2657        12642 :     break;
    2658              : 
    2659         3842 :   case 118: /* definition: "variable name" '(' listarg ')' '=' seq  */
    2660              : #line 251 "../src/language/parse.y"
    2661              :                                    {(yyval.val)=newfunc(CSTentry,&(yylsp[-5]),(yyvsp[-3].val),(yyvsp[0].val),&(yyloc));}
    2662              : #line 2663 "../src/language/parse.c"
    2663         3842 :     break;
    2664              : 
    2665           14 :   case 119: /* definition: expr '.' "variable name" '=' seq  */
    2666              : #line 253 "../src/language/parse.y"
    2667              :                                    {(yyval.val)=newfunc(CSTmember,&(yylsp[-2]),newnode(Findarg,(yyvsp[-4].val),-1,&(yylsp[-4])),(yyvsp[0].val),&(yyloc));}
    2668              : #line 2669 "../src/language/parse.c"
    2669           14 :     break;
    2670              : 
    2671         1409 :   case 120: /* definition: lvalue "->" seq  */
    2672              : #line 254 "../src/language/parse.y"
    2673              :                                          {(yyval.val)=newnode(Flambda, (yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2674              : #line 2675 "../src/language/parse.c"
    2675         1409 :     break;
    2676              : 
    2677         4121 :   case 121: /* definition: '(' listarg ")->" seq  */
    2678              : #line 255 "../src/language/parse.y"
    2679              :                                          {(yyval.val)=newnode(Flambda, (yyvsp[-2].val),(yyvsp[0].val),&(yyloc));}
    2680              : #line 2681 "../src/language/parse.c"
    2681         4121 :     break;
    2682              : 
    2683              : 
    2684              : #line 2685 "../src/language/parse.c"
    2685              : 
    2686            0 :       default: break;
    2687              :     }
    2688              :   /* User semantic actions sometimes alter yychar, and that requires
    2689              :      that yytoken be updated with the new translation.  We take the
    2690              :      approach of translating immediately before every use of yytoken.
    2691              :      One alternative is translating here after every semantic action,
    2692              :      but that translation would be missed if the semantic action invokes
    2693              :      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
    2694              :      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
    2695              :      incorrect destructor might then be invoked immediately.  In the
    2696              :      case of YYERROR or YYBACKUP, subsequent parser actions might lead
    2697              :      to an incorrect destructor call or verbose syntax error message
    2698              :      before the lookahead is translated.  */
    2699              :   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
    2700              : 
    2701    199966405 :   YYPOPSTACK (yylen);
    2702    199966405 :   yylen = 0;
    2703              : 
    2704    199966405 :   *++yyvsp = yyval;
    2705    199966405 :   *++yylsp = yyloc;
    2706              : 
    2707              :   /* Now 'shift' the result of the reduction.  Determine what state
    2708              :      that goes to, based on the state we popped back to and the rule
    2709              :      number reduced by.  */
    2710              :   {
    2711    199966405 :     const int yylhs = yyr1[yyn] - YYNTOKENS;
    2712    199966405 :     const int yyi = yypgoto[yylhs] + *yyssp;
    2713     63875215 :     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
    2714     62575572 :                ? yytable[yyi]
    2715    263841620 :                : yydefgoto[yylhs]);
    2716              :   }
    2717              : 
    2718    199966405 :   goto yynewstate;
    2719              : 
    2720              : 
    2721              : /*--------------------------------------.
    2722              : | yyerrlab -- here on detecting error.  |
    2723              : `--------------------------------------*/
    2724          160 : yyerrlab:
    2725              :   /* Make sure we have latest lookahead translation.  See comments at
    2726              :      user semantic actions for why this is necessary.  */
    2727          160 :   yytoken = yychar == PARI_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
    2728              :   /* If not already recovering from an error, report this error.  */
    2729          160 :   if (!yyerrstatus)
    2730              :     {
    2731          111 :       ++yynerrs;
    2732              :       {
    2733          111 :         yypcontext_t yyctx
    2734              :           = {yyssp, yytoken, &yylloc};
    2735          111 :         char const *yymsgp = YY_("syntax error");
    2736              :         int yysyntax_error_status;
    2737          111 :         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
    2738          111 :         if (yysyntax_error_status == 0)
    2739          111 :           yymsgp = yymsg;
    2740            0 :         else if (yysyntax_error_status == -1)
    2741              :           {
    2742            0 :             if (yymsg != yymsgbuf)
    2743            0 :               YYSTACK_FREE (yymsg);
    2744            0 :             yymsg = YY_CAST (char *,
    2745              :                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
    2746            0 :             if (yymsg)
    2747              :               {
    2748              :                 yysyntax_error_status
    2749            0 :                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
    2750            0 :                 yymsgp = yymsg;
    2751              :               }
    2752              :             else
    2753              :               {
    2754            0 :                 yymsg = yymsgbuf;
    2755            0 :                 yymsg_alloc = sizeof yymsgbuf;
    2756            0 :                 yysyntax_error_status = YYENOMEM;
    2757              :               }
    2758              :           }
    2759          111 :         yyerror (&yylloc, lex, yymsgp);
    2760          111 :         if (yysyntax_error_status == YYENOMEM)
    2761            0 :           YYNOMEM;
    2762              :       }
    2763              :     }
    2764              : 
    2765          160 :   yyerror_range[1] = yylloc;
    2766          160 :   if (yyerrstatus == 3)
    2767              :     {
    2768              :       /* If just tried and failed to reuse lookahead token after an
    2769              :          error, discard it.  */
    2770              : 
    2771           42 :       if (yychar <= PARI_EOF)
    2772              :         {
    2773              :           /* Return failure if at end of input.  */
    2774            7 :           if (yychar == PARI_EOF)
    2775            7 :             YYABORT;
    2776              :         }
    2777              :       else
    2778              :         {
    2779           35 :           yydestruct ("Error: discarding",
    2780              :                       yytoken, &yylval, &yylloc, lex);
    2781           35 :           yychar = PARI_EMPTY;
    2782              :         }
    2783              :     }
    2784              : 
    2785              :   /* Else will try to reuse lookahead token after shifting the error
    2786              :      token.  */
    2787          153 :   goto yyerrlab1;
    2788              : 
    2789              : 
    2790              : /*---------------------------------------------------.
    2791              : | yyerrorlab -- error raised explicitly by YYERROR.  |
    2792              : `---------------------------------------------------*/
    2793              : yyerrorlab:
    2794              :   /* Pacify compilers when the user code never invokes YYERROR and the
    2795              :      label yyerrorlab therefore never appears in user code.  */
    2796              :   if (0)
    2797              :     YYERROR;
    2798              :   ++yynerrs;
    2799              : 
    2800              :   /* Do not reclaim the symbols of the rule whose action triggered
    2801              :      this YYERROR.  */
    2802              :   YYPOPSTACK (yylen);
    2803              :   yylen = 0;
    2804              :   YY_STACK_PRINT (yyss, yyssp);
    2805              :   yystate = *yyssp;
    2806              :   goto yyerrlab1;
    2807              : 
    2808              : 
    2809              : /*-------------------------------------------------------------.
    2810              : | yyerrlab1 -- common code for both syntax error and YYERROR.  |
    2811              : `-------------------------------------------------------------*/
    2812          153 : yyerrlab1:
    2813          153 :   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    2814              : 
    2815              :   /* Pop stack until we find a state that shifts the error token.  */
    2816              :   for (;;)
    2817              :     {
    2818          237 :       yyn = yypact[yystate];
    2819          237 :       if (!yypact_value_is_default (yyn))
    2820              :         {
    2821          195 :           yyn += YYSYMBOL_YYerror;
    2822          195 :           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
    2823              :             {
    2824          153 :               yyn = yytable[yyn];
    2825          153 :               if (0 < yyn)
    2826          153 :                 break;
    2827              :             }
    2828              :         }
    2829              : 
    2830              :       /* Pop the current state because it cannot handle the error token.  */
    2831           84 :       if (yyssp == yyss)
    2832            0 :         YYABORT;
    2833              : 
    2834           84 :       yyerror_range[1] = *yylsp;
    2835           84 :       yydestruct ("Error: popping",
    2836           84 :                   YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lex);
    2837           84 :       YYPOPSTACK (1);
    2838           84 :       yystate = *yyssp;
    2839              :       YY_STACK_PRINT (yyss, yyssp);
    2840              :     }
    2841              : 
    2842              :   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    2843          153 :   *++yyvsp = yylval;
    2844              :   YY_IGNORE_MAYBE_UNINITIALIZED_END
    2845              : 
    2846          153 :   yyerror_range[2] = yylloc;
    2847          153 :   ++yylsp;
    2848          153 :   YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
    2849              : 
    2850              :   /* Shift the error token.  */
    2851              :   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
    2852              : 
    2853          153 :   yystate = yyn;
    2854          153 :   goto yynewstate;
    2855              : 
    2856              : 
    2857              : /*-------------------------------------.
    2858              : | yyacceptlab -- YYACCEPT comes here.  |
    2859              : `-------------------------------------*/
    2860       937496 : yyacceptlab:
    2861       937496 :   yyresult = 0;
    2862       937496 :   goto yyreturnlab;
    2863              : 
    2864              : 
    2865              : /*-----------------------------------.
    2866              : | yyabortlab -- YYABORT comes here.  |
    2867              : `-----------------------------------*/
    2868            7 : yyabortlab:
    2869            7 :   yyresult = 1;
    2870            7 :   goto yyreturnlab;
    2871              : 
    2872              : 
    2873              : /*-----------------------------------------------------------.
    2874              : | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
    2875              : `-----------------------------------------------------------*/
    2876            0 : yyexhaustedlab:
    2877            0 :   yyerror (&yylloc, lex, YY_("memory exhausted"));
    2878            0 :   yyresult = 2;
    2879            0 :   goto yyreturnlab;
    2880              : 
    2881              : 
    2882              : /*----------------------------------------------------------.
    2883              : | yyreturnlab -- parsing is finished, clean up and return.  |
    2884              : `----------------------------------------------------------*/
    2885       937503 : yyreturnlab:
    2886       937503 :   if (yychar != PARI_EMPTY)
    2887              :     {
    2888              :       /* Make sure we have latest lookahead translation.  See comments at
    2889              :          user semantic actions for why this is necessary.  */
    2890            7 :       yytoken = YYTRANSLATE (yychar);
    2891            7 :       yydestruct ("Cleanup: discarding lookahead",
    2892              :                   yytoken, &yylval, &yylloc, lex);
    2893              :     }
    2894              :   /* Do not reclaim the symbols of the rule whose action triggered
    2895              :      this YYABORT or YYACCEPT.  */
    2896       937503 :   YYPOPSTACK (yylen);
    2897              :   YY_STACK_PRINT (yyss, yyssp);
    2898      2812600 :   while (yyssp != yyss)
    2899              :     {
    2900      1875097 :       yydestruct ("Cleanup: popping",
    2901      1875097 :                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lex);
    2902      1875097 :       YYPOPSTACK (1);
    2903              :     }
    2904              : #ifndef yyoverflow
    2905       937503 :   if (yyss != yyssa)
    2906            0 :     YYSTACK_FREE (yyss);
    2907              : #endif
    2908       937503 :   if (yymsg != yymsgbuf)
    2909            0 :     YYSTACK_FREE (yymsg);
    2910       937503 :   return yyresult;
    2911              : }
    2912              : 
    2913              : #line 258 "../src/language/parse.y"
    2914              : 
        

Generated by: LCOV version 2.0-1