Changeset a5a8a1 in git


Ignore:
Timestamp:
Jun 6, 2011, 12:05:51 PM (12 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '91fdef05f09f54b8d58d92a472e9c4a43aa4656f')
Children:
8cae101f1cd4eb08cf93bb18d27343afa20fb82f
Parents:
d80a1affe5140fcac28532ccf3a3ad97b41ee6ee
Message:
trac 343

git-svn-id: file:///usr/local/Singular/svn/trunk@14256 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Singular/grammar.cc

    rd80a1a ra5a8a1  
    1 /* A Bison parser, made by GNU Bison 2.3.  */
    2 
    3 /* Skeleton implementation for Bison's Yacc-like parsers in C
    4 
    5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    6    Free Software Foundation, Inc.
     1/* A Bison parser, made by GNU Bison 1.875d.  */
     2
     3/* Skeleton parser for Yacc-like parsing with Bison,
     4   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    75
    86   This program is free software; you can redistribute it and/or modify
     
    1816   You should have received a copy of the GNU General Public License
    1917   along with this program; if not, write to the Free Software
    20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
    21    Boston, MA 02110-1301, USA.  */
    22 
    23 /* As a special exception, you may create a larger work that contains
    24    part or all of the Bison parser skeleton and distribute that work
    25    under terms of your choice, so long as that work isn't itself a
    26    parser generator using the skeleton or a modified version thereof
    27    as a parser skeleton.  Alternatively, if you modify or redistribute
    28    the parser skeleton itself, you may (at your option) remove this
    29    special exception, which will cause the skeleton and the resulting
    30    Bison output files to be licensed under the GNU General Public
    31    License without this special exception.
    32 
    33    This special exception was added by the Free Software Foundation in
    34    version 2.2 of Bison.  */
    35 
    36 /* C LALR(1) parser skeleton written by Richard Stallman, by
    37    simplifying the original so-called "semantic" parser.  */
     18   Foundation, Inc., 59 Temple Place - Suite 330,
     19   Boston, MA 02111-1307, USA.  */
     20
     21/* As a special exception, when this file is copied by Bison into a
     22   Bison output file, you may use that output file without restriction.
     23   This special exception was added by the Free Software Foundation
     24   in version 1.24 of Bison.  */
     25
     26/* Written by Richard Stallman by simplifying the original so called
     27   ``semantic'' parser.  */
    3828
    3929/* All symbols defined below should begin with yy or YY, to avoid
     
    4636/* Identify Bison output.  */
    4737#define YYBISON 1
    48 
    49 /* Bison version.  */
    50 #define YYBISON_VERSION "2.3"
    5138
    5239/* Skeleton name.  */
     
    193180   };
    194181#endif
    195 /* Tokens.  */
    196182#define DOTDOT 258
    197183#define EQUAL_EQUAL 259
     
    508494#endif
    509495
    510 /* Enabling the token table.  */
    511 #ifndef YYTOKEN_TABLE
    512 # define YYTOKEN_TABLE 0
    513 #endif
    514 
    515 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
     496#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
    516497typedef int YYSTYPE;
    517498# define yystype YYSTYPE /* obsolescent; will be withdrawn */
     
    525506
    526507
    527 /* Line 216 of yacc.c.  */
    528 #line 529 "grammar.cc"
    529 
    530 #ifdef short
    531 # undef short
    532 #endif
    533 
    534 #ifdef YYTYPE_UINT8
    535 typedef YYTYPE_UINT8 yytype_uint8;
    536 #else
    537 typedef unsigned char yytype_uint8;
    538 #endif
    539 
    540 #ifdef YYTYPE_INT8
    541 typedef YYTYPE_INT8 yytype_int8;
    542 #elif (defined __STDC__ || defined __C99__FUNC__ \
    543      || defined __cplusplus || defined _MSC_VER)
    544 typedef signed char yytype_int8;
    545 #else
    546 typedef short int yytype_int8;
    547 #endif
    548 
    549 #ifdef YYTYPE_UINT16
    550 typedef YYTYPE_UINT16 yytype_uint16;
    551 #else
    552 typedef unsigned short int yytype_uint16;
    553 #endif
    554 
    555 #ifdef YYTYPE_INT16
    556 typedef YYTYPE_INT16 yytype_int16;
    557 #else
    558 typedef short int yytype_int16;
    559 #endif
    560 
    561 #ifndef YYSIZE_T
    562 # ifdef __SIZE_TYPE__
    563 #  define YYSIZE_T __SIZE_TYPE__
    564 # elif defined size_t
    565 #  define YYSIZE_T size_t
    566 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    567      || defined __cplusplus || defined _MSC_VER)
    568 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    569 #  define YYSIZE_T size_t
    570 # else
    571 #  define YYSIZE_T unsigned int
     508/* Line 214 of yacc.c.  */
     509#line 510 "grammar.cc"
     510
     511#if ! defined (yyoverflow) || YYERROR_VERBOSE
     512
     513# ifndef YYFREE
     514#  define YYFREE free
    572515# endif
    573 #endif
    574 
    575 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    576 
    577 #ifndef YY_
    578 # if YYENABLE_NLS
    579 #  if ENABLE_NLS
    580 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    581 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
    582 #  endif
     516# ifndef YYMALLOC
     517#  define YYMALLOC malloc
    583518# endif
    584 # ifndef YY_
    585 #  define YY_(msgid) msgid
    586 # endif
    587 #endif
    588 
    589 /* Suppress unused-variable warnings by "using" E.  */
    590 #if ! defined lint || defined __GNUC__
    591 # define YYUSE(e) ((void) (e))
    592 #else
    593 # define YYUSE(e) /* empty */
    594 #endif
    595 
    596 /* Identity function, used to suppress warnings about constant conditions.  */
    597 #ifndef lint
    598 # define YYID(n) (n)
    599 #else
    600 #if (defined __STDC__ || defined __C99__FUNC__ \
    601      || defined __cplusplus || defined _MSC_VER)
    602 static int
    603 YYID (int i)
    604 #else
    605 static int
    606 YYID (i)
    607     int i;
    608 #endif
    609 {
    610   return i;
    611 }
    612 #endif
    613 
    614 #if ! defined yyoverflow || YYERROR_VERBOSE
    615519
    616520/* The parser invokes alloca or malloc; define the necessary symbols.  */
     
    618522# ifdef YYSTACK_USE_ALLOCA
    619523#  if YYSTACK_USE_ALLOCA
     524#   define YYSTACK_ALLOC alloca
     525#  endif
     526# else
     527#  if defined (alloca) || defined (_ALLOCA_H)
     528#   define YYSTACK_ALLOC alloca
     529#  else
    620530#   ifdef __GNUC__
    621531#    define YYSTACK_ALLOC __builtin_alloca
    622 #   elif defined __BUILTIN_VA_ARG_INCR
    623 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
    624 #   elif defined _AIX
    625 #    define YYSTACK_ALLOC __alloca
    626 #   elif defined _MSC_VER
    627 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
    628 #    define alloca _alloca
    629 #   else
    630 #    define YYSTACK_ALLOC alloca
    631 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    632      || defined __cplusplus || defined _MSC_VER)
    633 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    634 #     ifndef _STDLIB_H
    635 #      define _STDLIB_H 1
    636 #     endif
    637 #    endif
    638532#   endif
    639533#  endif
     
    641535
    642536# ifdef YYSTACK_ALLOC
    643    /* Pacify GCC's `empty if-body' warning.  */
    644 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    645 #  ifndef YYSTACK_ALLOC_MAXIMUM
    646     /* The OS might guarantee only one guard page at the bottom of the stack,
    647        and a page size can be as small as 4096 bytes.  So we cannot safely
    648        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    649        to allow for a few compiler-allocated temporary stack slots.  */
    650 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
     537   /* Pacify GCC's `empty if-body' warning. */
     538#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
     539# else
     540#  if defined (__STDC__) || defined (__cplusplus)
     541#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     542#   define YYSIZE_T size_t
    651543#  endif
    652 # else
    653544#  define YYSTACK_ALLOC YYMALLOC
    654545#  define YYSTACK_FREE YYFREE
    655 #  ifndef YYSTACK_ALLOC_MAXIMUM
    656 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    657 #  endif
    658 #  if (defined __cplusplus && ! defined _STDLIB_H \
    659        && ! ((defined YYMALLOC || defined malloc) \
    660              && (defined YYFREE || defined free)))
    661 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    662 #   ifndef _STDLIB_H
    663 #    define _STDLIB_H 1
    664 #   endif
    665 #  endif
    666 #  ifndef YYMALLOC
    667 #   define YYMALLOC malloc
    668 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    669      || defined __cplusplus || defined _MSC_VER)
    670 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    671 #   endif
    672 #  endif
    673 #  ifndef YYFREE
    674 #   define YYFREE free
    675 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    676      || defined __cplusplus || defined _MSC_VER)
    677 void free (void *); /* INFRINGES ON USER NAME SPACE */
    678 #   endif
    679 #  endif
    680546# endif
    681 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
    682 
    683 
    684 #if (! defined yyoverflow \
    685      && (! defined __cplusplus \
    686          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     547#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
     548
     549
     550#if (! defined (yyoverflow) \
     551     && (! defined (__cplusplus) \
     552         || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
    687553
    688554/* A type that is properly aligned for any stack member.  */
    689555union yyalloc
    690556{
    691   yytype_int16 yyss;
     557  short int yyss;
    692558  YYSTYPE yyvs;
    693559  };
     
    699565   N elements.  */
    700566# define YYSTACK_BYTES(N) \
    701      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
     567     ((N) * (sizeof (short int) + sizeof (YYSTYPE))                     \
    702568      + YYSTACK_GAP_MAXIMUM)
    703569
     
    705571   not overlap.  */
    706572# ifndef YYCOPY
    707 #  if defined __GNUC__ && 1 < __GNUC__
     573#  if defined (__GNUC__) && 1 < __GNUC__
    708574#   define YYCOPY(To, From, Count) \
    709575      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     
    712578      do                                        \
    713579        {                                       \
    714           YYSIZE_T yyi;                         \
     580          register YYSIZE_T yyi;                \
    715581          for (yyi = 0; yyi < (Count); yyi++)   \
    716582            (To)[yyi] = (From)[yyi];            \
    717583        }                                       \
    718       while (YYID (0))
     584      while (0)
    719585#  endif
    720586# endif
     
    734600        yyptr += yynewbytes / sizeof (*yyptr);                          \
    735601      }                                                                 \
    736     while (YYID (0))
     602    while (0)
    737603
    738604#endif
    739605
    740 /* YYFINAL -- State number of the termination state.  */
     606#if defined (__STDC__) || defined (__cplusplus)
     607   typedef signed char yysigned_char;
     608#else
     609   typedef short int yysigned_char;
     610#endif
     611
     612/* YYFINAL -- State number of the termination state. */
    741613#define YYFINAL  2
    742614/* YYLAST -- Last index in YYTABLE.  */
    743615#define YYLAST   1957
    744616
    745 /* YYNTOKENS -- Number of terminals.  */
     617/* YYNTOKENS -- Number of terminals. */
    746618#define YYNTOKENS  145
    747 /* YYNNTS -- Number of nonterminals.  */
     619/* YYNNTS -- Number of nonterminals. */
    748620#define YYNNTS  44
    749 /* YYNRULES -- Number of rules.  */
     621/* YYNRULES -- Number of rules. */
    750622#define YYNRULES  169
    751 /* YYNRULES -- Number of states.  */
     623/* YYNRULES -- Number of states. */
    752624#define YYNSTATES  375
    753625
     
    756628#define YYMAXUTOK   381
    757629
    758 #define YYTRANSLATE(YYX)                                                \
     630#define YYTRANSLATE(YYX)                                                \
    759631  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    760632
    761633/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    762 static const yytype_uint8 yytranslate[] =
     634static const unsigned char yytranslate[] =
    763635{
    764636       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    806678/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    807679   YYRHS.  */
    808 static const yytype_uint16 yyprhs[] =
     680static const unsigned short int yyprhs[] =
    809681{
    810682       0,     0,     3,     4,     7,     9,    12,    15,    17,    19,
     
    827699};
    828700
    829 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    830 static const yytype_int16 yyrhs[] =
     701/* YYRHS -- A `-1'-separated list of the rules' RHS. */
     702static const short int yyrhs[] =
    831703{
    832704     146,     0,    -1,    -1,   146,   147,    -1,   148,    -1,   150,
     
    901773
    902774/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    903 static const yytype_uint16 yyrline[] =
     775static const unsigned short int yyrline[] =
    904776{
    905777       0,   357,   357,   359,   393,   394,   396,   398,   402,   407,
     
    918790    1175,  1179,  1184,  1188,  1192,  1196,  1200,  1204,  1209,  1215,
    919791    1221,  1227,  1233,  1239,  1245,  1251,  1263,  1270,  1274,  1312,
    920     1322,  1335,  1335,  1338,  1410,  1416,  1445,  1458,  1475,  1484,
    921     1489,  1497,  1509,  1528,  1539,  1559,  1583,  1589,  1601,  1608
     792    1322,  1335,  1335,  1338,  1410,  1419,  1448,  1461,  1478,  1487,
     793    1492,  1500,  1512,  1531,  1542,  1562,  1586,  1592,  1604,  1611
    922794};
    923795#endif
    924796
    925 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    926 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    927    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     797#if YYDEBUG || YYERROR_VERBOSE
     798/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
     799   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
    928800static const char *const yytname[] =
    929801{
     
    968840/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    969841   token YYLEX-NUM.  */
    970 static const yytype_uint16 yytoknum[] =
     842static const unsigned short int yytoknum[] =
    971843{
    972844       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     
    989861
    990862/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    991 static const yytype_uint8 yyr1[] =
     863static const unsigned char yyr1[] =
    992864{
    993865       0,   145,   146,   146,   147,   147,   147,   147,   147,   147,
     
    1011883
    1012884/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1013 static const yytype_uint8 yyr2[] =
     885static const unsigned char yyr2[] =
    1014886{
    1015887       0,     2,     0,     2,     1,     2,     2,     1,     1,     1,
     
    1035907   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    1036908   means the default is an error.  */
    1037 static const yytype_uint8 yydefact[] =
     909static const unsigned char yydefact[] =
    1038910{
    1039911       2,     0,     1,     0,     0,     0,     0,   147,    98,     0,
     
    1077949};
    1078950
    1079 /* YYDEFGOTO[NTERM-NUM].  */
    1080 static const yytype_int16 yydefgoto[] =
     951/* YYDEFGOTO[NTERM-NUM]. */
     952static const short int yydefgoto[] =
    1081953{
    1082954      -1,     1,    53,    54,    55,    56,    57,    58,   142,    60,
     
    1090962   STATE-NUM.  */
    1091963#define YYPACT_NINF -327
    1092 static const yytype_int16 yypact[] =
     964static const short int yypact[] =
    1093965{
    1094966    -327,   283,  -327,   -79,  1263,   957,  1010,  -126,  -327,  1747,
     
    11331005
    11341006/* YYPGOTO[NTERM-NUM].  */
    1135 static const yytype_int16 yypgoto[] =
     1007static const short int yypgoto[] =
    11361008{
    11371009    -327,  -327,  -327,  -327,  -327,  -327,  -327,    72,    -1,    18,
     
    11471019   If YYTABLE_NINF, syntax error.  */
    11481020#define YYTABLE_NINF -1
    1149 static const yytype_int16 yytable[] =
     1021static const short int yytable[] =
    11501022{
    11511023      59,   119,   120,   303,   304,   305,   345,     8,    65,   306,
     
    13471219};
    13481220
    1349 static const yytype_int16 yycheck[] =
     1221static const short int yycheck[] =
    13501222{
    13511223       1,   108,   109,    13,    14,    15,   111,    17,     1,    19,
     
    15491421/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    15501422   symbol of state STATE-NUM.  */
    1551 static const yytype_uint8 yystos[] =
     1423static const unsigned char yystos[] =
    15521424{
    15531425       0,   146,     0,     1,     8,    13,    14,    15,    17,    19,
     
    15911463};
    15921464
     1465#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
     1466# define YYSIZE_T __SIZE_TYPE__
     1467#endif
     1468#if ! defined (YYSIZE_T) && defined (size_t)
     1469# define YYSIZE_T size_t
     1470#endif
     1471#if ! defined (YYSIZE_T)
     1472# if defined (__STDC__) || defined (__cplusplus)
     1473#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
     1474#  define YYSIZE_T size_t
     1475# endif
     1476#endif
     1477#if ! defined (YYSIZE_T)
     1478# define YYSIZE_T unsigned int
     1479#endif
     1480
    15931481#define yyerrok         (yyerrstatus = 0)
    15941482#define yyclearin       (yychar = YYEMPTY)
     
    16161504      yylval = (Value);                                         \
    16171505      yytoken = YYTRANSLATE (yychar);                           \
    1618       YYPOPSTACK (1);                                           \
     1506      YYPOPSTACK;                                               \
    16191507      goto yybackup;                                            \
    16201508    }                                                           \
    16211509  else                                                          \
    1622     {                                                           \
    1623       yyerror (YY_("syntax error: cannot back up")); \
     1510    {                                                           \
     1511      yyerror ("syntax error: cannot back up");\
    16241512      YYERROR;                                                  \
    16251513    }                                                           \
    1626 while (YYID (0))
    1627 
     1514while (0)
    16281515
    16291516#define YYTERROR        1
    16301517#define YYERRCODE       256
    16311518
    1632 
    1633 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    1634    If N is 0, then set CURRENT to the empty location which ends
    1635    the previous symbol: RHS[0] (always defined).  */
    1636 
    1637 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
     1519/* YYLLOC_DEFAULT -- Compute the default location (before the actions
     1520   are run).  */
     1521
    16381522#ifndef YYLLOC_DEFAULT
    1639 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    1640     do                                                                  \
    1641       if (YYID (N))                                                    \
    1642         {                                                               \
    1643           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    1644           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    1645           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    1646           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    1647         }                                                               \
    1648       else                                                              \
    1649         {                                                               \
    1650           (Current).first_line   = (Current).last_line   =              \
    1651             YYRHSLOC (Rhs, 0).last_line;                                \
    1652           (Current).first_column = (Current).last_column =              \
    1653             YYRHSLOC (Rhs, 0).last_column;                              \
    1654         }                                                               \
    1655     while (YYID (0))
     1523# define YYLLOC_DEFAULT(Current, Rhs, N)                \
     1524   ((Current).first_line   = (Rhs)[1].first_line,       \
     1525    (Current).first_column = (Rhs)[1].first_column,     \
     1526    (Current).last_line    = (Rhs)[N].last_line,        \
     1527    (Current).last_column  = (Rhs)[N].last_column)
    16561528#endif
    1657 
    1658 
    1659 /* YY_LOCATION_PRINT -- Print the location on the stream.
    1660    This macro was not mandated originally: define only if we know
    1661    we won't break user code: when these are the locations we know.  */
    1662 
    1663 #ifndef YY_LOCATION_PRINT
    1664 # if YYLTYPE_IS_TRIVIAL
    1665 #  define YY_LOCATION_PRINT(File, Loc)                  \
    1666      fprintf (File, "%d.%d-%d.%d",                      \
    1667               (Loc).first_line, (Loc).first_column,     \
    1668               (Loc).last_line,  (Loc).last_column)
    1669 # else
    1670 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    1671 # endif
    1672 #endif
    1673 
    16741529
    16751530/* YYLEX -- calling `yylex' with the right arguments.  */
     
    16931548  if (yydebug)                                  \
    16941549    YYFPRINTF Args;                             \
    1695 } while (YYID (0))
    1696 
    1697 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    1698 do {                                                                      \
    1699   if (yydebug)                                                            \
    1700     {                                                                     \
    1701       YYFPRINTF (stderr, "%s ", Title);                                   \
    1702       yy_symbol_print (stderr,                                            \
    1703                   Type, Value); \
    1704       YYFPRINTF (stderr, "\n");                                           \
    1705     }                                                                     \
    1706 } while (YYID (0))
    1707 
    1708 
    1709 /*--------------------------------.
    1710 | Print this symbol on YYOUTPUT.  |
    1711 `--------------------------------*/
    1712 
    1713 /*ARGSUSED*/
    1714 #if (defined __STDC__ || defined __C99__FUNC__ \
    1715      || defined __cplusplus || defined _MSC_VER)
    1716 static void
    1717 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    1718 #else
    1719 static void
    1720 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    1721     FILE *yyoutput;
    1722     int yytype;
    1723     YYSTYPE const * const yyvaluep;
    1724 #endif
    1725 {
    1726   if (!yyvaluep)
    1727     return;
    1728 # ifdef YYPRINT
    1729   if (yytype < YYNTOKENS)
    1730     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    1731 # else
    1732   YYUSE (yyoutput);
    1733 # endif
    1734   switch (yytype)
    1735     {
    1736       default:
    1737         break;
    1738     }
    1739 }
    1740 
    1741 
    1742 /*--------------------------------.
    1743 | Print this symbol on YYOUTPUT.  |
    1744 `--------------------------------*/
    1745 
    1746 #if (defined __STDC__ || defined __C99__FUNC__ \
    1747      || defined __cplusplus || defined _MSC_VER)
    1748 static void
    1749 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    1750 #else
    1751 static void
    1752 yy_symbol_print (yyoutput, yytype, yyvaluep)
    1753     FILE *yyoutput;
    1754     int yytype;
    1755     YYSTYPE const * const yyvaluep;
    1756 #endif
    1757 {
    1758   if (yytype < YYNTOKENS)
    1759     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    1760   else
    1761     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    1762 
    1763   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
    1764   YYFPRINTF (yyoutput, ")");
    1765 }
     1550} while (0)
     1551
     1552# define YYDSYMPRINT(Args)                      \
     1553do {                                            \
     1554  if (yydebug)                                  \
     1555    yysymprint Args;                            \
     1556} while (0)
     1557
     1558# define YYDSYMPRINTF(Title, Token, Value, Location)            \
     1559do {                                                            \
     1560  if (yydebug)                                                  \
     1561    {                                                           \
     1562      YYFPRINTF (stderr, "%s ", Title);                         \
     1563      yysymprint (stderr,                                       \
     1564                  Token, Value);        \
     1565      YYFPRINTF (stderr, "\n");                                 \
     1566    }                                                           \
     1567} while (0)
    17661568
    17671569/*------------------------------------------------------------------.
     
    17701572`------------------------------------------------------------------*/
    17711573
    1772 #if (defined __STDC__ || defined __C99__FUNC__ \
    1773      || defined __cplusplus || defined _MSC_VER)
     1574#if defined (__STDC__) || defined (__cplusplus)
    17741575static void
    1775 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
     1576yy_stack_print (short int *bottom, short int *top)
    17761577#else
    17771578static void
    17781579yy_stack_print (bottom, top)
    1779     yytype_int16 *bottom;
    1780     yytype_int16 *top;
     1580    short int *bottom;
     1581    short int *top;
    17811582#endif
    17821583{
    17831584  YYFPRINTF (stderr, "Stack now");
    1784   for (; bottom <= top; ++bottom)
     1585  for (/* Nothing. */; bottom <= top; ++bottom)
    17851586    YYFPRINTF (stderr, " %d", *bottom);
    17861587  YYFPRINTF (stderr, "\n");
     
    17911592  if (yydebug)                                                  \
    17921593    yy_stack_print ((Bottom), (Top));                           \
    1793 } while (YYID (0))
     1594} while (0)
    17941595
    17951596
     
    17981599`------------------------------------------------*/
    17991600
    1800 #if (defined __STDC__ || defined __C99__FUNC__ \
    1801      || defined __cplusplus || defined _MSC_VER)
     1601#if defined (__STDC__) || defined (__cplusplus)
    18021602static void
    1803 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
     1603yy_reduce_print (int yyrule)
    18041604#else
    18051605static void
    1806 yy_reduce_print (yyvsp, yyrule)
    1807     YYSTYPE *yyvsp;
     1606yy_reduce_print (yyrule)
    18081607    int yyrule;
    18091608#endif
    18101609{
    1811   int yynrhs = yyr2[yyrule];
    18121610  int yyi;
    1813   unsigned long int yylno = yyrline[yyrule];
    1814   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    1815              yyrule - 1, yylno);
    1816   /* The symbols being reduced.  */
    1817   for (yyi = 0; yyi < yynrhs; yyi++)
    1818     {
    1819       fprintf (stderr, "   $%d = ", yyi + 1);
    1820       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    1821                        &(yyvsp[(yyi + 1) - (yynrhs)])
    1822                                        );
    1823       fprintf (stderr, "\n");
    1824     }
     1611  unsigned int yylno = yyrline[yyrule];
     1612  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
     1613             yyrule - 1, yylno);
     1614  /* Print the symbols being reduced, and their result.  */
     1615  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
     1616    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
     1617  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
    18251618}
    18261619
     
    18281621do {                                    \
    18291622  if (yydebug)                          \
    1830     yy_reduce_print (yyvsp, Rule); \
    1831 } while (YYID (0))
     1623    yy_reduce_print (Rule);             \
     1624} while (0)
    18321625
    18331626/* Nonzero means print parse trace.  It is left uninitialized so that
     
    18361629#else /* !YYDEBUG */
    18371630# define YYDPRINTF(Args)
    1838 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
     1631# define YYDSYMPRINT(Args)
     1632# define YYDSYMPRINTF(Title, Token, Value, Location)
    18391633# define YY_STACK_PRINT(Bottom, Top)
    18401634# define YY_REDUCE_PRINT(Rule)
     
    18511645
    18521646   Do not make this value too large; the results are undefined if
    1853    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
     1647   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
    18541648   evaluated with infinite-precision integer arithmetic.  */
     1649
     1650#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
     1651# undef YYMAXDEPTH
     1652#endif
    18551653
    18561654#ifndef YYMAXDEPTH
     
    18641662
    18651663# ifndef yystrlen
    1866 #  if defined __GLIBC__ && defined _STRING_H
     1664#  if defined (__GLIBC__) && defined (_STRING_H)
    18671665#   define yystrlen strlen
    18681666#  else
    18691667/* Return the length of YYSTR.  */
    1870 #if (defined __STDC__ || defined __C99__FUNC__ \
    1871      || defined __cplusplus || defined _MSC_VER)
    18721668static YYSIZE_T
     1669#   if defined (__STDC__) || defined (__cplusplus)
    18731670yystrlen (const char *yystr)
    1874 #else
    1875 static YYSIZE_T
     1671#   else
    18761672yystrlen (yystr)
    1877     const char *yystr;
    1878 #endif
     1673     const char *yystr;
     1674#   endif
    18791675{
    1880   YYSIZE_T yylen;
    1881   for (yylen = 0; yystr[yylen]; yylen++)
     1676  register const char *yys = yystr;
     1677
     1678  while (*yys++ != '\0')
    18821679    continue;
    1883   return yylen;
     1680
     1681  return yys - yystr - 1;
    18841682}
    18851683#  endif
     
    18871685
    18881686# ifndef yystpcpy
    1889 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
     1687#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
    18901688#   define yystpcpy stpcpy
    18911689#  else
    18921690/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    18931691   YYDEST.  */
    1894 #if (defined __STDC__ || defined __C99__FUNC__ \
    1895      || defined __cplusplus || defined _MSC_VER)
    18961692static char *
     1693#   if defined (__STDC__) || defined (__cplusplus)
    18971694yystpcpy (char *yydest, const char *yysrc)
    1898 #else
    1899 static char *
     1695#   else
    19001696yystpcpy (yydest, yysrc)
    1901     char *yydest;
    1902     const char *yysrc;
    1903 #endif
     1697     char *yydest;
     1698     const char *yysrc;
     1699#   endif
    19041700{
    1905   char *yyd = yydest;
    1906   const char *yys = yysrc;
     1701  register char *yyd = yydest;
     1702  register const char *yys = yysrc;
    19071703
    19081704  while ((*yyd++ = *yys++) != '\0')
     
    19141710# endif
    19151711
    1916 # ifndef yytnamerr
    1917 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
    1918    quotes and backslashes, so that it's suitable for yyerror.  The
    1919    heuristic is that double-quoting is unnecessary unless the string
    1920    contains an apostrophe, a comma, or backslash (other than
    1921    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
    1922    null, do not copy; instead, return the length of what the result
    1923    would have been.  */
    1924 static YYSIZE_T
    1925 yytnamerr (char *yyres, const char *yystr)
    1926 {
    1927   if (*yystr == '"')
    1928     {
    1929       YYSIZE_T yyn = 0;
    1930       char const *yyp = yystr;
    1931 
    1932       for (;;)
    1933         switch (*++yyp)
    1934           {
    1935           case '\'':
    1936           case ',':
    1937             goto do_not_strip_quotes;
    1938 
    1939           case '\\':
    1940             if (*++yyp != '\\')
    1941               goto do_not_strip_quotes;
    1942             /* Fall through.  */
    1943           default:
    1944             if (yyres)
    1945               yyres[yyn] = *yyp;
    1946             yyn++;
    1947             break;
    1948 
    1949           case '"':
    1950             if (yyres)
    1951               yyres[yyn] = '\0';
    1952             return yyn;
    1953           }
    1954     do_not_strip_quotes: ;
    1955     }
    1956 
    1957   if (! yyres)
    1958     return yystrlen (yystr);
    1959 
    1960   return yystpcpy (yyres, yystr) - yyres;
    1961 }
    1962 # endif
    1963 
    1964 /* Copy into YYRESULT an error message about the unexpected token
    1965    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
    1966    including the terminating null byte.  If YYRESULT is null, do not
    1967    copy anything; just return the number of bytes that would be
    1968    copied.  As a special case, return 0 if an ordinary "syntax error"
    1969    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
    1970    size calculation.  */
    1971 static YYSIZE_T
    1972 yysyntax_error (char *yyresult, int yystate, int yychar)
    1973 {
    1974   int yyn = yypact[yystate];
    1975 
    1976   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    1977     return 0;
    1978   else
    1979     {
    1980       int yytype = YYTRANSLATE (yychar);
    1981       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
    1982       YYSIZE_T yysize = yysize0;
    1983       YYSIZE_T yysize1;
    1984       int yysize_overflow = 0;
    1985       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    1986       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
    1987       int yyx;
    1988 
    1989 # if 0
    1990       /* This is so xgettext sees the translatable formats that are
    1991          constructed on the fly.  */
    1992       YY_("syntax error, unexpected %s");
    1993       YY_("syntax error, unexpected %s, expecting %s");
    1994       YY_("syntax error, unexpected %s, expecting %s or %s");
    1995       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
    1996       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
    1997 # endif
    1998       char *yyfmt;
    1999       char const *yyf;
    2000       static char const yyunexpected[] = "syntax error, unexpected %s";
    2001       static char const yyexpecting[] = ", expecting %s";
    2002       static char const yyor[] = " or %s";
    2003       char yyformat[sizeof yyunexpected
    2004                     + sizeof yyexpecting - 1
    2005                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
    2006                        * (sizeof yyor - 1))];
    2007       char const *yyprefix = yyexpecting;
    2008 
    2009       /* Start YYX at -YYN if negative to avoid negative indexes in
    2010          YYCHECK.  */
    2011       int yyxbegin = yyn < 0 ? -yyn : 0;
    2012 
    2013       /* Stay within bounds of both yycheck and yytname.  */
    2014       int yychecklim = YYLAST - yyn + 1;
    2015       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
    2016       int yycount = 1;
    2017 
    2018       yyarg[0] = yytname[yytype];
    2019       yyfmt = yystpcpy (yyformat, yyunexpected);
    2020 
    2021       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
    2022         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
    2023           {
    2024             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
    2025               {
    2026                 yycount = 1;
    2027                 yysize = yysize0;
    2028                 yyformat[sizeof yyunexpected - 1] = '\0';
    2029                 break;
    2030               }
    2031             yyarg[yycount++] = yytname[yyx];
    2032             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    2033             yysize_overflow |= (yysize1 < yysize);
    2034             yysize = yysize1;
    2035             yyfmt = yystpcpy (yyfmt, yyprefix);
    2036             yyprefix = yyor;
    2037           }
    2038 
    2039       yyf = YY_(yyformat);
    2040       yysize1 = yysize + yystrlen (yyf);
    2041       yysize_overflow |= (yysize1 < yysize);
    2042       yysize = yysize1;
    2043 
    2044       if (yysize_overflow)
    2045         return YYSIZE_MAXIMUM;
    2046 
    2047       if (yyresult)
    2048         {
    2049           /* Avoid sprintf, as that infringes on the user's name space.
    2050              Don't have undefined behavior even if the translation
    2051              produced a string with the wrong number of "%s"s.  */
    2052           char *yyp = yyresult;
    2053           int yyi = 0;
    2054           while ((*yyp = *yyf) != '\0')
    2055             {
    2056               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
    2057                 {
    2058                   yyp += yytnamerr (yyp, yyarg[yyi++]);
    2059                   yyf += 2;
    2060                 }
    2061               else
    2062                 {
    2063                   yyp++;
    2064                   yyf++;
    2065                 }
    2066             }
    2067         }
    2068       return yysize;
    2069     }
    2070 }
    2071 #endif /* YYERROR_VERBOSE */
    2072 
    2073 
    2074 
    2075 /*-----------------------------------------------.
    2076 | Release the memory associated to this symbol.  |
    2077 `-----------------------------------------------*/
    2078 
    2079 /*ARGSUSED*/
    2080 #if (defined __STDC__ || defined __C99__FUNC__ \
    2081      || defined __cplusplus || defined _MSC_VER)
     1712#endif /* !YYERROR_VERBOSE */
     1713
     1714
     1715
     1716
     1717#if YYDEBUG
     1718/*--------------------------------.
     1719| Print this symbol on YYOUTPUT.  |
     1720`--------------------------------*/
     1721
     1722#if defined (__STDC__) || defined (__cplusplus)
    20821723static void
    2083 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
     1724yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
    20841725#else
    20851726static void
    2086 yydestruct (yymsg, yytype, yyvaluep)
    2087     const char *yymsg;
     1727yysymprint (yyoutput, yytype, yyvaluep)
     1728    FILE *yyoutput;
    20881729    int yytype;
    20891730    YYSTYPE *yyvaluep;
    20901731#endif
    20911732{
    2092   YYUSE (yyvaluep);
    2093 
    2094   if (!yymsg)
    2095     yymsg = "Deleting";
    2096   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
     1733  /* Pacify ``unused variable'' warnings.  */
     1734  (void) yyvaluep;
     1735
     1736  if (yytype < YYNTOKENS)
     1737    {
     1738      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
     1739# ifdef YYPRINT
     1740      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
     1741# endif
     1742    }
     1743  else
     1744    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    20971745
    20981746  switch (yytype)
    20991747    {
    2100 
    21011748      default:
    2102         break;
     1749        break;
     1750    }
     1751  YYFPRINTF (yyoutput, ")");
     1752}
     1753
     1754#endif /* ! YYDEBUG */
     1755/*-----------------------------------------------.
     1756| Release the memory associated to this symbol.  |
     1757`-----------------------------------------------*/
     1758
     1759#if defined (__STDC__) || defined (__cplusplus)
     1760static void
     1761yydestruct (int yytype, YYSTYPE *yyvaluep)
     1762#else
     1763static void
     1764yydestruct (yytype, yyvaluep)
     1765    int yytype;
     1766    YYSTYPE *yyvaluep;
     1767#endif
     1768{
     1769  /* Pacify ``unused variable'' warnings.  */
     1770  (void) yyvaluep;
     1771
     1772  switch (yytype)
     1773    {
     1774
     1775      default:
     1776        break;
    21031777    }
    21041778}
     
    21091783
    21101784#ifdef YYPARSE_PARAM
    2111 #if defined __STDC__ || defined __cplusplus
     1785# if defined (__STDC__) || defined (__cplusplus)
    21121786int yyparse (void *YYPARSE_PARAM);
    2113 #else
     1787# else
    21141788int yyparse ();
    2115 #endif
     1789# endif
    21161790#else /* ! YYPARSE_PARAM */
    2117 #if defined __STDC__ || defined __cplusplus
     1791#if defined (__STDC__) || defined (__cplusplus)
    21181792int yyparse (void);
    21191793#else
     
    21321806
    21331807#ifdef YYPARSE_PARAM
    2134 #if (defined __STDC__ || defined __C99__FUNC__ \
    2135      || defined __cplusplus || defined _MSC_VER)
    2136 int
    2137 yyparse (void *YYPARSE_PARAM)
    2138 #else
    2139 int
    2140 yyparse (YYPARSE_PARAM)
    2141     void *YYPARSE_PARAM;
    2142 #endif
     1808# if defined (__STDC__) || defined (__cplusplus)
     1809int yyparse (void *YYPARSE_PARAM)
     1810# else
     1811int yyparse (YYPARSE_PARAM)
     1812  void *YYPARSE_PARAM;
     1813# endif
    21431814#else /* ! YYPARSE_PARAM */
    2144 #if (defined __STDC__ || defined __C99__FUNC__ \
    2145      || defined __cplusplus || defined _MSC_VER)
     1815#if defined (__STDC__) || defined (__cplusplus)
    21461816int
    21471817yyparse (void)
     
    21531823#endif
    21541824{
    2155   /* The look-ahead symbol.  */
     1825  /* The lookahead symbol.  */
    21561826int yychar;
    21571827
    2158 /* The semantic value of the look-ahead symbol.  */
     1828/* The semantic value of the lookahead symbol.  */
    21591829YYSTYPE yylval;
    21601830
     
    21621832int yynerrs;
    21631833
    2164   int yystate;
    2165   int yyn;
     1834  register int yystate;
     1835  register int yyn;
    21661836  int yyresult;
    21671837  /* Number of tokens to shift before error messages enabled.  */
    21681838  int yyerrstatus;
    2169   /* Look-ahead token as an internal (translated) token number.  */
     1839  /* Lookahead token as an internal (translated) token number.  */
    21701840  int yytoken = 0;
    2171 #if YYERROR_VERBOSE
    2172   /* Buffer for error messages, and its allocated size.  */
    2173   char yymsgbuf[128];
    2174   char *yymsg = yymsgbuf;
    2175   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
    2176 #endif
    21771841
    21781842  /* Three stacks and their tools:
     
    21851849
    21861850  /* The state stack.  */
    2187   yytype_int16 yyssa[YYINITDEPTH];
    2188   yytype_int16 *yyss = yyssa;
    2189   yytype_int16 *yyssp;
     1851  short int yyssa[YYINITDEPTH];
     1852  short int *yyss = yyssa;
     1853  register short int *yyssp;
    21901854
    21911855  /* The semantic value stack.  */
    21921856  YYSTYPE yyvsa[YYINITDEPTH];
    21931857  YYSTYPE *yyvs = yyvsa;
    2194   YYSTYPE *yyvsp;
    2195 
    2196 
    2197 
    2198 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
     1858  register YYSTYPE *yyvsp;
     1859
     1860
     1861
     1862#define YYPOPSTACK   (yyvsp--, yyssp--)
    21991863
    22001864  YYSIZE_T yystacksize = YYINITDEPTH;
     
    22051869
    22061870
    2207   /* The number of symbols on the RHS of the reduced rule.
    2208      Keep to zero when no symbol should be popped.  */
    2209   int yylen = 0;
     1871  /* When reducing, the number of symbols on the RHS of the reduced
     1872     rule.  */
     1873  int yylen;
    22101874
    22111875  YYDPRINTF ((stderr, "Starting parse\n"));
     
    22231887  yyssp = yyss;
    22241888  yyvsp = yyvs;
     1889
    22251890
    22261891  goto yysetstate;
     
    22311896 yynewstate:
    22321897  /* In all cases, when you get here, the value and location stacks
    2233      have just been pushed.  So pushing a state here evens the stacks.  */
     1898     have just been pushed. so pushing a state here evens the stacks.
     1899     */
    22341900  yyssp++;
    22351901
     
    22441910#ifdef yyoverflow
    22451911      {
    2246         /* Give user a chance to reallocate the stack.  Use copies of
     1912        /* Give user a chance to reallocate the stack. Use copies of
    22471913           these so that the &'s don't force the real ones into
    22481914           memory.  */
    22491915        YYSTYPE *yyvs1 = yyvs;
    2250         yytype_int16 *yyss1 = yyss;
     1916        short int *yyss1 = yyss;
    22511917
    22521918
     
    22551921           conditional around just the two extra args, but that might
    22561922           be undefined if yyoverflow is a macro.  */
    2257         yyoverflow (YY_("memory exhausted"),
     1923        yyoverflow ("parser stack overflow",
    22581924                    &yyss1, yysize * sizeof (*yyssp),
    22591925                    &yyvs1, yysize * sizeof (*yyvsp),
     
    22661932#else /* no yyoverflow */
    22671933# ifndef YYSTACK_RELOCATE
    2268       goto yyexhaustedlab;
     1934      goto yyoverflowlab;
    22691935# else
    22701936      /* Extend the stack our own way.  */
    22711937      if (YYMAXDEPTH <= yystacksize)
    2272         goto yyexhaustedlab;
     1938        goto yyoverflowlab;
    22731939      yystacksize *= 2;
    22741940      if (YYMAXDEPTH < yystacksize)
     
    22761942
    22771943      {
    2278         yytype_int16 *yyss1 = yyss;
     1944        short int *yyss1 = yyss;
    22791945        union yyalloc *yyptr =
    22801946          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    22811947        if (! yyptr)
    2282           goto yyexhaustedlab;
     1948          goto yyoverflowlab;
    22831949        YYSTACK_RELOCATE (yyss);
    22841950        YYSTACK_RELOCATE (yyvs);
     
    23111977yybackup:
    23121978
    2313   /* Do appropriate processing given the current state.  Read a
    2314      look-ahead token if we need one and don't already have one.  */
    2315 
    2316   /* First try to decide what to do without reference to look-ahead token.  */
     1979/* Do appropriate processing given the current state.  */
     1980/* Read a lookahead token if we need one and don't already have one.  */
     1981/* yyresume: */
     1982
     1983  /* First try to decide what to do without reference to lookahead token.  */
     1984
    23171985  yyn = yypact[yystate];
    23181986  if (yyn == YYPACT_NINF)
    23191987    goto yydefault;
    23201988
    2321   /* Not known => get a look-ahead token if don't already have one.  */
    2322 
    2323   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
     1989  /* Not known => get a lookahead token if don't already have one.  */
     1990
     1991  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
    23241992  if (yychar == YYEMPTY)
    23251993    {
     
    23362004    {
    23372005      yytoken = YYTRANSLATE (yychar);
    2338       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
     2006      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
    23392007    }
    23402008
     
    23562024    YYACCEPT;
    23572025
     2026  /* Shift the lookahead token.  */
     2027  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
     2028
     2029  /* Discard the token being shifted unless it is eof.  */
     2030  if (yychar != YYEOF)
     2031    yychar = YYEMPTY;
     2032
     2033  *++yyvsp = yylval;
     2034
     2035
    23582036  /* Count tokens shifted since error; after three, turn off error
    23592037     status.  */
     
    23612039    yyerrstatus--;
    23622040
    2363   /* Shift the look-ahead token.  */
    2364   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
    2365 
    2366   /* Discard the shifted token unless it is eof.  */
    2367   if (yychar != YYEOF)
    2368     yychar = YYEMPTY;
    2369 
    23702041  yystate = yyn;
    2371   *++yyvsp = yylval;
    2372 
    23732042  goto yynewstate;
    23742043
     
    24462115  case 6:
    24472116#line 397 "grammar.y"
    2448     { (yyvsp[(1) - (2)].lv).CleanUp(); currentVoice->ifsw=0;;}
     2117    { yyvsp[-1].lv.CleanUp(); currentVoice->ifsw=0;;}
    24492118    break;
    24502119
     
    24802149            {
    24812150/*  bison failed here*/
    2482               if ((inerror!=3) && ((yyvsp[(1) - (2)]).i<UMINUS) && ((yyvsp[(1) - (2)]).i>' '))
     2151              if ((inerror!=3) && (yyvsp[-1].i<UMINUS) && (yyvsp[-1].i>' '))
    24832152              {
    24842153                // 1: yyerror called
     
    24862155                // 3: error rule put token+\n
    24872156                inerror=3;
    2488                 Print(" error at token `%s`\n",iiTwoOps((yyvsp[(1) - (2)]).i));
     2157                Print(" error at token `%s`\n",iiTwoOps(yyvsp[-1].i));
    24892158              }
    24902159/**/
     
    25282197  case 19:
    25292198#line 471 "grammar.y"
    2530     { omFree((ADDRESS)(yyvsp[(2) - (2)].name)); ;}
     2199    { omFree((ADDRESS)yyvsp[0].name); ;}
    25312200    break;
    25322201
     
    25342203#line 486 "grammar.y"
    25352204    {
    2536             if(iiAssign(&(yyvsp[(1) - (2)].lv),&(yyvsp[(2) - (2)].lv))) YYERROR;
     2205            if(iiAssign(&yyvsp[-1].lv,&yyvsp[0].lv)) YYERROR;
    25372206          ;}
    25382207    break;
     
    25422211    {
    25432212            if (currRing==NULL) MYYERROR("no ring active");
    2544             syMake(&(yyval.lv),omStrDup((yyvsp[(1) - (1)].name)));
     2213            syMake(&yyval.lv,omStrDup(yyvsp[0].name));
    25452214          ;}
    25462215    break;
     
    25492218#line 498 "grammar.y"
    25502219    {
    2551             syMake(&(yyval.lv),(yyvsp[(1) - (1)].name));
     2220            syMake(&yyval.lv,yyvsp[0].name);
    25522221          ;}
    25532222    break;
     
    25562225#line 502 "grammar.y"
    25572226    {
    2558             if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), COLONCOLON, &(yyvsp[(3) - (3)].lv))) YYERROR;
     2227            if(iiExprArith2(&yyval.lv, &yyvsp[-2].lv, COLONCOLON, &yyvsp[0].lv)) YYERROR;
    25592228          ;}
    25602229    break;
     
    25632232#line 506 "grammar.y"
    25642233    {
    2565             if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR;
     2234            if(iiExprArith2(&yyval.lv, &yyvsp[-2].lv, '.', &yyvsp[0].lv)) YYERROR;
    25662235          ;}
    25672236    break;
     
    25702239#line 510 "grammar.y"
    25712240    {
    2572             if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR;
     2241            if(iiExprArith1(&yyval.lv,&yyvsp[-2].lv,'(')) YYERROR;
    25732242          ;}
    25742243    break;
     
    25772246#line 514 "grammar.y"
    25782247    {
    2579             if ((yyvsp[(1) - (4)].lv).rtyp==UNKNOWN)
     2248            if (yyvsp[-3].lv.rtyp==UNKNOWN)
    25802249            { // for x(i)(j)
    2581               if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'(',&(yyvsp[(3) - (4)].lv))) YYERROR;
     2250              if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,'(',&yyvsp[-1].lv)) YYERROR;
    25822251            }
    25832252            else
    25842253            {
    2585               (yyvsp[(1) - (4)].lv).next=(leftv)omAllocBin(sleftv_bin);
    2586               memcpy((yyvsp[(1) - (4)].lv).next,&(yyvsp[(3) - (4)].lv),sizeof(sleftv));
    2587               if(iiExprArithM(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'(')) YYERROR;
     2254              yyvsp[-3].lv.next=(leftv)omAllocBin(sleftv_bin);
     2255              memcpy(yyvsp[-3].lv.next,&yyvsp[-1].lv,sizeof(sleftv));
     2256              if(iiExprArithM(&yyval.lv,&yyvsp[-3].lv,'(')) YYERROR;
    25882257            }
    25892258          ;}
     
    25952264            if (currRingHdl==NULL) MYYERROR("no ring active");
    25962265            int j = 0;
    2597             memset(&(yyval.lv),0,sizeof(sleftv));
    2598             (yyval.lv).rtyp=VECTOR_CMD;
    2599             leftv v = &(yyvsp[(2) - (3)].lv);
     2266            memset(&yyval.lv,0,sizeof(sleftv));
     2267            yyval.lv.rtyp=VECTOR_CMD;
     2268            leftv v = &yyvsp[-1].lv;
    26002269            while (v!=NULL)
    26012270            {
     
    26062275              if((i==0) || (iiConvert(t /*v->Typ()*/,POLY_CMD,i,v,&tmp)))
    26072276              {
    2608                 pDelete((poly *)&(yyval.lv).data);
    2609                 (yyvsp[(2) - (3)].lv).CleanUp();
     2277                pDelete((poly *)&yyval.lv.data);
     2278                yyvsp[-1].lv.CleanUp();
    26102279                MYYERROR("expected '[poly,...'");
    26112280              }
    26122281              poly p = (poly)tmp.CopyD(POLY_CMD);
    26132282              pSetCompP(p,++j);
    2614               (yyval.lv).data = (void *)pAdd((poly)(yyval.lv).data,p);
     2283              yyval.lv.data = (void *)pAdd((poly)yyval.lv.data,p);
    26152284              v->next=tmp.next;tmp.next=NULL;
    26162285              tmp.CleanUp();
    26172286              v=v->next;
    26182287            }
    2619             (yyvsp[(2) - (3)].lv).CleanUp();
     2288            yyvsp[-1].lv.CleanUp();
    26202289          ;}
    26212290    break;
     
    26242293#line 555 "grammar.y"
    26252294    {
    2626             memset(&(yyval.lv),0,sizeof((yyval.lv)));
    2627             int i = atoi((yyvsp[(1) - (1)].name));
     2295            memset(&yyval.lv,0,sizeof(yyval.lv));
     2296            int i = atoi(yyvsp[0].name);
    26282297            /*remember not to omFree($1)
    26292298            *because it is a part of the scanner buffer*/
    2630             (yyval.lv).rtyp  = INT_CMD;
    2631             (yyval.lv).data = (void *)(long)i;
     2299            yyval.lv.rtyp  = INT_CMD;
     2300            yyval.lv.data = (void *)(long)i;
    26322301
    26332302            /* check: out of range input */
    2634             int l = strlen((yyvsp[(1) - (1)].name))+2;
     2303            int l = strlen(yyvsp[0].name)+2;
    26352304            number n;
    26362305            if (l >= MAX_INT_LEN)
     
    26382307              char tmp[MAX_INT_LEN+5];
    26392308              sprintf(tmp,"%d",i);
    2640               if (strcmp(tmp,(yyvsp[(1) - (1)].name))!=0)
     2309              if (strcmp(tmp,yyvsp[0].name)!=0)
    26412310              {
    2642                 nlRead((yyvsp[(1) - (1)].name),&n);
    2643                 (yyval.lv).rtyp=BIGINT_CMD;
    2644                 (yyval.lv).data = n;
     2311                nlRead(yyvsp[0].name,&n);
     2312                yyval.lv.rtyp=BIGINT_CMD;
     2313                yyval.lv.data = n;
    26452314              }
    26462315            }
     
    26512320#line 579 "grammar.y"
    26522321    {
    2653             memset(&(yyval.lv),0,sizeof((yyval.lv)));
    2654             (yyval.lv).rtyp = (yyvsp[(1) - (1)].i);
    2655             (yyval.lv).data = (yyval.lv).Data();
     2322            memset(&yyval.lv,0,sizeof(yyval.lv));
     2323            yyval.lv.rtyp = yyvsp[0].i;
     2324            yyval.lv.data = yyval.lv.Data();
    26562325          ;}
    26572326    break;
     
    26602329#line 585 "grammar.y"
    26612330    {
    2662             memset(&(yyval.lv),0,sizeof((yyval.lv)));
    2663             (yyval.lv).rtyp  = STRING_CMD;
    2664             (yyval.lv).data = (yyvsp[(1) - (1)].name);
     2331            memset(&yyval.lv,0,sizeof(yyval.lv));
     2332            yyval.lv.rtyp  = STRING_CMD;
     2333            yyval.lv.data = yyvsp[0].name;
    26652334          ;}
    26662335    break;
     
    26692338#line 591 "grammar.y"
    26702339    {
    2671             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2340            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    26722341          ;}
    26732342    break;
     
    26762345#line 598 "grammar.y"
    26772346    {
    2678             leftv v = &(yyvsp[(1) - (3)].lv);
     2347            leftv v = &yyvsp[-2].lv;
    26792348            while (v->next!=NULL)
    26802349            {
     
    26822351            }
    26832352            v->next = (leftv)omAllocBin(sleftv_bin);
    2684             memcpy(v->next,&((yyvsp[(3) - (3)].lv)),sizeof(sleftv));
    2685             (yyval.lv) = (yyvsp[(1) - (3)].lv);
     2353            memcpy(v->next,&(yyvsp[0].lv),sizeof(sleftv));
     2354            yyval.lv = yyvsp[-2].lv;
    26862355          ;}
    26872356    break;
     
    26902359#line 609 "grammar.y"
    26912360    {
    2692             (yyval.lv) = (yyvsp[(1) - (1)].lv);
     2361            yyval.lv = yyvsp[0].lv;
    26932362          ;}
    26942363    break;
     
    26982367    {
    26992368            /*if ($1.typ == eunknown) YYERROR;*/
    2700             (yyval.lv) = (yyvsp[(1) - (1)].lv);
     2369            yyval.lv = yyvsp[0].lv;
    27012370          ;}
    27022371    break;
     
    27042373  case 44:
    27052374#line 619 "grammar.y"
    2706     { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}
     2375    { yyval.lv = yyvsp[0].lv; ;}
    27072376    break;
    27082377
    27092378  case 45:
    27102379#line 620 "grammar.y"
    2711     { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;}
     2380    { yyval.lv = yyvsp[-1].lv; ;}
    27122381    break;
    27132382
     
    27152384#line 622 "grammar.y"
    27162385    {
    2717             if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR;
     2386            if(iiExprArith3(&yyval.lv,'[',&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    27182387          ;}
    27192388    break;
     
    27222391#line 626 "grammar.y"
    27232392    {
    2724             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR;
     2393            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,'[',&yyvsp[-1].lv)) YYERROR;
    27252394          ;}
    27262395    break;
     
    27292398#line 630 "grammar.y"
    27302399    {
    2731             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2400            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    27322401          ;}
    27332402    break;
     
    27362405#line 634 "grammar.y"
    27372406    {
    2738             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2407            if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    27392408          ;}
    27402409    break;
     
    27432412#line 638 "grammar.y"
    27442413    {
    2745             if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     2414            if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
    27462415          ;}
    27472416    break;
     
    27502419#line 642 "grammar.y"
    27512420    {
    2752             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2421            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    27532422          ;}
    27542423    break;
     
    27572426#line 646 "grammar.y"
    27582427    {
    2759             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2428            if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    27602429          ;}
    27612430    break;
     
    27642433#line 650 "grammar.y"
    27652434    {
    2766             if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     2435            if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
    27672436          ;}
    27682437    break;
     
    27712440#line 654 "grammar.y"
    27722441    {
    2773             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2442            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    27742443          ;}
    27752444    break;
     
    27782447#line 658 "grammar.y"
    27792448    {
    2780             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     2449            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
    27812450          ;}
    27822451    break;
     
    27852454#line 662 "grammar.y"
    27862455    {
    2787             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     2456            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    27882457          ;}
    27892458    break;
     
    27922461#line 666 "grammar.y"
    27932462    {
    2794             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     2463            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
    27952464          ;}
    27962465    break;
     
    27992468#line 670 "grammar.y"
    28002469    {
    2801             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     2470            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    28022471          ;}
    28032472    break;
     
    28062475#line 674 "grammar.y"
    28072476    {
    2808             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2477            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    28092478          ;}
    28102479    break;
     
    28132482#line 678 "grammar.y"
    28142483    {
    2815             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2484            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    28162485          ;}
    28172486    break;
     
    28202489#line 682 "grammar.y"
    28212490    {
    2822             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     2491            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
    28232492          ;}
    28242493    break;
     
    28272496#line 686 "grammar.y"
    28282497    {
    2829             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2498            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    28302499          ;}
    28312500    break;
     
    28342503#line 690 "grammar.y"
    28352504    {
    2836             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     2505            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
    28372506          ;}
    28382507    break;
     
    28412510#line 694 "grammar.y"
    28422511    {
    2843             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     2512            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    28442513          ;}
    28452514    break;
     
    28482517#line 698 "grammar.y"
    28492518    {
    2850             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     2519            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    28512520          ;}
    28522521    break;
     
    28552524#line 702 "grammar.y"
    28562525    {
    2857             if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     2526            if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
    28582527          ;}
    28592528    break;
     
    28622531#line 706 "grammar.y"
    28632532    {
    2864             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2533            if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
    28652534          ;}
    28662535    break;
     
    28692538#line 710 "grammar.y"
    28702539    {
    2871             if(iiExprArith3(&(yyval.lv),MATRIX_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     2540            if(iiExprArith3(&yyval.lv,MATRIX_CMD,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    28722541          ;}
    28732542    break;
     
    28762545#line 714 "grammar.y"
    28772546    {
    2878             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),MATRIX_CMD)) YYERROR;
     2547            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,MATRIX_CMD)) YYERROR;
    28792548          ;}
    28802549    break;
     
    28832552#line 718 "grammar.y"
    28842553    {
    2885             if(iiExprArith3(&(yyval.lv),INTMAT_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     2554            if(iiExprArith3(&yyval.lv,INTMAT_CMD,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    28862555          ;}
    28872556    break;
     
    28902559#line 722 "grammar.y"
    28912560    {
    2892             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),INTMAT_CMD)) YYERROR;
     2561            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,INTMAT_CMD)) YYERROR;
    28932562          ;}
    28942563    break;
     
    28972566#line 726 "grammar.y"
    28982567    {
    2899             if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     2568            if(iiExprArith3(&yyval.lv,RING_CMD,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    29002569          ;}
    29012570    break;
     
    29042573#line 730 "grammar.y"
    29052574    {
    2906             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR;
     2575            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,RING_CMD)) YYERROR;
    29072576          ;}
    29082577    break;
     
    29112580#line 734 "grammar.y"
    29122581    {
    2913             (yyval.lv)=(yyvsp[(2) - (3)].lv);
     2582            yyval.lv=yyvsp[-1].lv;
    29142583          ;}
    29152584    break;
     
    29212590            siq++;
    29222591            if (siq>0)
    2923             { if (iiExprArith2(&(yyval.lv),&(yyvsp[(2) - (5)].lv),'=',&(yyvsp[(4) - (5)].lv))) YYERROR; }
     2592            { if (iiExprArith2(&yyval.lv,&yyvsp[-3].lv,'=',&yyvsp[-1].lv)) YYERROR; }
    29242593            else
    29252594            #endif
    29262595            {
    2927               memset(&(yyval.lv),0,sizeof((yyval.lv)));
    2928               (yyval.lv).rtyp=NONE;
    2929               if (iiAssign(&(yyvsp[(2) - (5)].lv),&(yyvsp[(4) - (5)].lv))) YYERROR;
     2596              memset(&yyval.lv,0,sizeof(yyval.lv));
     2597              yyval.lv.rtyp=NONE;
     2598              if (iiAssign(&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
    29302599            }
    29312600            #ifdef SIQ
     
    29482617    {
    29492618            #ifdef SIQ
    2950             if (siq<=0) (yyvsp[(4) - (5)].lv).Eval();
     2619            if (siq<=0) yyvsp[-1].lv.Eval();
    29512620            #endif
    2952             (yyval.lv)=(yyvsp[(4) - (5)].lv);
     2621            yyval.lv=yyvsp[-1].lv;
    29532622            #ifdef SIQ
    29542623            siq++;
     
    29782647#line 790 "grammar.y"
    29792648    {
    2980             if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR;
     2649            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,PLUSPLUS)) YYERROR;
    29812650          ;}
    29822651    break;
     
    29852654#line 794 "grammar.y"
    29862655    {
    2987             if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR;
     2656            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,MINUSMINUS)) YYERROR;
    29882657          ;}
    29892658    break;
     
    29922661#line 798 "grammar.y"
    29932662    {
    2994             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR;
     2663            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,'+',&yyvsp[0].lv)) YYERROR;
    29952664          ;}
    29962665    break;
     
    29992668#line 802 "grammar.y"
    30002669    {
    3001             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR;
     2670            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,'-',&yyvsp[0].lv)) YYERROR;
    30022671          ;}
    30032672    break;
     
    30062675#line 806 "grammar.y"
    30072676    {
    3008             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     2677            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,yyvsp[-1].i,&yyvsp[0].lv)) YYERROR;
    30092678          ;}
    30102679    break;
     
    30132682#line 810 "grammar.y"
    30142683    {
    3015             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR;
     2684            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,'^',&yyvsp[0].lv)) YYERROR;
    30162685          ;}
    30172686    break;
     
    30202689#line 814 "grammar.y"
    30212690    {
    3022             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     2691            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,yyvsp[-1].i,&yyvsp[0].lv)) YYERROR;
    30232692          ;}
    30242693    break;
     
    30272696#line 818 "grammar.y"
    30282697    {
    3029             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     2698            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,yyvsp[-1].i,&yyvsp[0].lv)) YYERROR;
    30302699          ;}
    30312700    break;
     
    30342703#line 822 "grammar.y"
    30352704    {
    3036             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     2705            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,NOTEQUAL,&yyvsp[0].lv)) YYERROR;
    30372706          ;}
    30382707    break;
     
    30412710#line 826 "grammar.y"
    30422711    {
    3043             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     2712            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,EQUAL_EQUAL,&yyvsp[0].lv)) YYERROR;
    30442713          ;}
    30452714    break;
     
    30482717#line 830 "grammar.y"
    30492718    {
    3050             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR;
     2719            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,DOTDOT,&yyvsp[0].lv)) YYERROR;
    30512720          ;}
    30522721    break;
     
    30552724#line 834 "grammar.y"
    30562725    {
    3057             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR;
     2726            if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,':',&yyvsp[0].lv)) YYERROR;
    30582727          ;}
    30592728    break;
     
    30622731#line 838 "grammar.y"
    30632732    {
    3064             memset(&(yyval.lv),0,sizeof((yyval.lv)));
    3065             int i; TESTSETINT((yyvsp[(2) - (2)].lv),i);
    3066             (yyval.lv).rtyp  = INT_CMD;
    3067             (yyval.lv).data = (void *)(long)(i == 0 ? 1 : 0);
     2733            memset(&yyval.lv,0,sizeof(yyval.lv));
     2734            int i; TESTSETINT(yyvsp[0].lv,i);
     2735            yyval.lv.rtyp  = INT_CMD;
     2736            yyval.lv.data = (void *)(long)(i == 0 ? 1 : 0);
    30682737          ;}
    30692738    break;
     
    30722741#line 845 "grammar.y"
    30732742    {
    3074             if(iiExprArith1(&(yyval.lv),&(yyvsp[(2) - (2)].lv),'-')) YYERROR;
     2743            if(iiExprArith1(&yyval.lv,&yyvsp[0].lv,'-')) YYERROR;
    30752744          ;}
    30762745    break;
     
    30782747  case 94:
    30792748#line 851 "grammar.y"
    3080     { (yyval.lv) = (yyvsp[(1) - (2)].lv); ;}
     2749    { yyval.lv = yyvsp[-1].lv; ;}
    30812750    break;
    30822751
     
    30842753#line 853 "grammar.y"
    30852754    {
    3086             if ((yyvsp[(1) - (2)].lv).rtyp==0)
     2755            if (yyvsp[-1].lv.rtyp==0)
    30872756            {
    3088               Werror("`%s` is undefined",(yyvsp[(1) - (2)].lv).Fullname());
     2757              Werror("`%s` is undefined",yyvsp[-1].lv.Fullname());
    30892758              YYERROR;
    30902759            }
    3091             else if (((yyvsp[(1) - (2)].lv).rtyp==MODUL_CMD)
     2760            else if ((yyvsp[-1].lv.rtyp==MODUL_CMD)
    30922761            // matrix m; m[2]=...
    3093             && ((yyvsp[(1) - (2)].lv).e!=NULL) && ((yyvsp[(1) - (2)].lv).e->next==NULL))
     2762            && (yyvsp[-1].lv.e!=NULL) && (yyvsp[-1].lv.e->next==NULL))
    30942763            {
    30952764              MYYERROR("matrix must have 2 indices");
    30962765            }
    3097             (yyval.lv) = (yyvsp[(1) - (2)].lv);
     2766            yyval.lv = yyvsp[-1].lv;
    30982767          ;}
    30992768    break;
     
    31022771#line 873 "grammar.y"
    31032772    {
    3104             if ((yyvsp[(2) - (3)].lv).Typ()!=STRING_CMD)
     2773            if (yyvsp[-1].lv.Typ()!=STRING_CMD)
    31052774            {
    31062775              MYYERROR("string expression expected");
    31072776            }
    3108             (yyval.name) = (char *)(yyvsp[(2) - (3)].lv).CopyD(STRING_CMD);
    3109             (yyvsp[(2) - (3)].lv).CleanUp();
     2777            yyval.name = (char *)yyvsp[-1].lv.CopyD(STRING_CMD);
     2778            yyvsp[-1].lv.CleanUp();
    31102779          ;}
    31112780    break;
     
    31142783#line 890 "grammar.y"
    31152784    {
    3116             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     2785            if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
    31172786              YYERROR;
    31182787          ;}
     
    31222791#line 895 "grammar.y"
    31232792    {
    3124             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     2793            if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
    31252794              YYERROR;
    31262795          ;}
     
    31302799#line 900 "grammar.y"
    31312800    {
    3132             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     2801            if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(currRing->idroot), TRUE)) YYERROR;
    31332802          ;}
    31342803    break;
     
    31372806#line 904 "grammar.y"
    31382807    {
    3139             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     2808            if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(currRing->idroot), TRUE)) YYERROR;
    31402809          ;}
    31412810    break;
     
    31442813#line 908 "grammar.y"
    31452814    {
    3146             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (8)].lv),myynest,(yyvsp[(1) - (8)].i),&(currRing->idroot), TRUE)) YYERROR;
    3147             int r; TESTSETINT((yyvsp[(4) - (8)].lv),r);
    3148             int c; TESTSETINT((yyvsp[(7) - (8)].lv),c);
     2815            if (iiDeclCommand(&yyval.lv,&yyvsp[-6].lv,myynest,yyvsp[-7].i,&(currRing->idroot), TRUE)) YYERROR;
     2816            int r; TESTSETINT(yyvsp[-4].lv,r);
     2817            int c; TESTSETINT(yyvsp[-1].lv,c);
    31492818            if (r < 1)
    31502819              MYYERROR("rows must be greater than 0");
    31512820            if (c < 0)
    31522821              MYYERROR("cols must be greater than -1");
    3153             leftv v=&(yyval.lv);
     2822            leftv v=&yyval.lv;
    31542823            //while (v->next!=NULL) { v=v->next; }
    31552824            idhdl h=(idhdl)v->data;
     
    31632832#line 924 "grammar.y"
    31642833    {
    3165             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     2834            if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(currRing->idroot), TRUE)) YYERROR;
    31662835          ;}
    31672836    break;
     
    31702839#line 928 "grammar.y"
    31712840    {
    3172             int r; TESTSETINT((yyvsp[(4) - (8)].lv),r);
    3173             int c; TESTSETINT((yyvsp[(7) - (8)].lv),c);
     2841            int r; TESTSETINT(yyvsp[-4].lv,r);
     2842            int c; TESTSETINT(yyvsp[-1].lv,c);
    31742843            if (r < 1)
    31752844              MYYERROR("rows must be greater than 0");
    31762845            if (c < 0)
    31772846              MYYERROR("cols must be greater than -1");
    3178             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (8)].lv),myynest,(yyvsp[(1) - (8)].i),&((yyvsp[(2) - (8)].lv).req_packhdl->idroot)))
     2847            if (iiDeclCommand(&yyval.lv,&yyvsp[-6].lv,myynest,yyvsp[-7].i,&(yyvsp[-6].lv.req_packhdl->idroot)))
    31792848              YYERROR;
    3180             leftv v=&(yyval.lv);
     2849            leftv v=&yyval.lv;
    31812850            idhdl h=(idhdl)v->data;
    31822851            delete IDINTVEC(h);
     
    31892858#line 944 "grammar.y"
    31902859    {
    3191             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     2860            if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
    31922861              YYERROR;
    3193             leftv v=&(yyval.lv);
     2862            leftv v=&yyval.lv;
    31942863            idhdl h;
    31952864            do
     
    32062875#line 958 "grammar.y"
    32072876    {
    3208             int t=(yyvsp[(1) - (3)].lv).Typ();
     2877            int t=yyvsp[-2].lv.Typ();
    32092878            sleftv r;
    32102879            memset(&r,0,sizeof(sleftv));
    32112880            if ((BEGIN_RING<t) && (t<END_RING))
    32122881            {
    3213               if (iiDeclCommand(&r,&(yyvsp[(3) - (3)].lv),myynest,t,&(currRing->idroot), TRUE))
     2882              if (iiDeclCommand(&r,&yyvsp[0].lv,myynest,t,&(currRing->idroot), TRUE))
    32142883                YYERROR;
    32152884            }
    32162885            else
    32172886            {
    3218               if (iiDeclCommand(&r,&(yyvsp[(3) - (3)].lv),myynest,t,&((yyvsp[(3) - (3)].lv).req_packhdl->idroot)))
     2887              if (iiDeclCommand(&r,&yyvsp[0].lv,myynest,t,&(yyvsp[0].lv.req_packhdl->idroot)))
    32192888                YYERROR;
    32202889            }
    3221             leftv v=&(yyvsp[(1) - (3)].lv);
     2890            leftv v=&yyvsp[-2].lv;
    32222891            while (v->next!=NULL) v=v->next;
    32232892            v->next=(leftv)omAllocBin(sleftv_bin);
    32242893            memcpy(v->next,&r,sizeof(sleftv));
    3225             (yyval.lv)=(yyvsp[(1) - (3)].lv);
     2894            yyval.lv=yyvsp[-2].lv;
    32262895          ;}
    32272896    break;
     
    32302899#line 979 "grammar.y"
    32312900    {
    3232             if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     2901            if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
    32332902              YYERROR;
    32342903          ;}
     
    32382907#line 992 "grammar.y"
    32392908    {
    3240             leftv v = &(yyvsp[(2) - (5)].lv);
     2909            leftv v = &yyvsp[-3].lv;
    32412910            while (v->next!=NULL)
    32422911            {
     
    32442913            }
    32452914            v->next = (leftv)omAllocBin(sleftv_bin);
    3246             memcpy(v->next,&((yyvsp[(4) - (5)].lv)),sizeof(sleftv));
    3247             (yyval.lv) = (yyvsp[(2) - (5)].lv);
     2915            memcpy(v->next,&(yyvsp[-1].lv),sizeof(sleftv));
     2916            yyval.lv = yyvsp[-3].lv;
    32482917          ;}
    32492918    break;
     
    32532922    {
    32542923          // let rInit take care of any errors
    3255           (yyval.i)=rOrderName((yyvsp[(1) - (1)].name));
     2924          yyval.i=rOrderName(yyvsp[0].name);
    32562925        ;}
    32572926    break;
     
    32602929#line 1014 "grammar.y"
    32612930    {
    3262             memset(&(yyval.lv),0,sizeof((yyval.lv)));
     2931            memset(&yyval.lv,0,sizeof(yyval.lv));
    32632932            intvec *iv = new intvec(2);
    32642933            (*iv)[0] = 1;
    3265             (*iv)[1] = (yyvsp[(1) - (1)].i);
    3266             (yyval.lv).rtyp = INTVEC_CMD;
    3267             (yyval.lv).data = (void *)iv;
     2934            (*iv)[1] = yyvsp[0].i;
     2935            yyval.lv.rtyp = INTVEC_CMD;
     2936            yyval.lv.data = (void *)iv;
    32682937          ;}
    32692938    break;
     
    32722941#line 1023 "grammar.y"
    32732942    {
    3274             memset(&(yyval.lv),0,sizeof((yyval.lv)));
    3275             leftv sl = &(yyvsp[(3) - (4)].lv);
     2943            memset(&yyval.lv,0,sizeof(yyval.lv));
     2944            leftv sl = &yyvsp[-1].lv;
    32762945            int slLength;
    32772946            {
     
    32802949              intvec *iv = new intvec(l);
    32812950              (*iv)[0] = slLength;
    3282               (*iv)[1] = (yyvsp[(1) - (4)].i);
     2951              (*iv)[1] = yyvsp[-3].i;
    32832952
    32842953              int i = 2;
     
    33022971                {
    33032972                  delete iv;
    3304                   (yyvsp[(3) - (4)].lv).CleanUp();
     2973                  yyvsp[-1].lv.CleanUp();
    33052974                  MYYERROR("wrong type in ordering");
    33062975                }
    33072976                sl = sl->next;
    33082977              }
    3309               (yyval.lv).rtyp = INTVEC_CMD;
    3310               (yyval.lv).data = (void *)iv;
     2978              yyval.lv.rtyp = INTVEC_CMD;
     2979              yyval.lv.data = (void *)iv;
    33112980            }
    3312             (yyvsp[(3) - (4)].lv).CleanUp();
     2981            yyvsp[-1].lv.CleanUp();
    33132982          ;}
    33142983    break;
     
    33172986#line 1069 "grammar.y"
    33182987    {
    3319             (yyval.lv) = (yyvsp[(1) - (3)].lv);
    3320             (yyval.lv).next = (sleftv *)omAllocBin(sleftv_bin);
    3321             memcpy((yyval.lv).next,&(yyvsp[(3) - (3)].lv),sizeof(sleftv));
     2988            yyval.lv = yyvsp[-2].lv;
     2989            yyval.lv.next = (sleftv *)omAllocBin(sleftv_bin);
     2990            memcpy(yyval.lv.next,&yyvsp[0].lv,sizeof(sleftv));
    33222991          ;}
    33232992    break;
     
    33262995#line 1079 "grammar.y"
    33272996    {
    3328             (yyval.lv) = (yyvsp[(2) - (3)].lv);
     2997            yyval.lv = yyvsp[-1].lv;
    33292998          ;}
    33302999    break;
     
    33393008  case 121:
    33403009#line 1097 "grammar.y"
    3341     { if ((yyvsp[(1) - (2)].i) != '<') YYERROR;
    3342             if((feFilePending=feFopen((yyvsp[(2) - (2)].name),"r",NULL,TRUE))==NULL) YYERROR; ;}
     3010    { if (yyvsp[-1].i != '<') YYERROR;
     3011            if((feFilePending=feFopen(yyvsp[0].name,"r",NULL,TRUE))==NULL) YYERROR; ;}
    33433012    break;
    33443013
    33453014  case 122:
    33463015#line 1100 "grammar.y"
    3347     { newFile((yyvsp[(2) - (4)].name),feFilePending); ;}
     3016    { newFile(yyvsp[-2].name,feFilePending); ;}
    33483017    break;
    33493018
     
    33513020#line 1105 "grammar.y"
    33523021    {
    3353             feHelp((yyvsp[(2) - (3)].name));
    3354             omFree((ADDRESS)(yyvsp[(2) - (3)].name));
     3022            feHelp(yyvsp[-1].name);
     3023            omFree((ADDRESS)yyvsp[-1].name);
    33553024          ;}
    33563025    break;
     
    33663035#line 1117 "grammar.y"
    33673036    {
    3368             singular_example((yyvsp[(2) - (3)].name));
    3369             omFree((ADDRESS)(yyvsp[(2) - (3)].name));
     3037            singular_example(yyvsp[-1].name);
     3038            omFree((ADDRESS)yyvsp[-1].name);
    33703039          ;}
    33713040    break;
     
    33743043#line 1125 "grammar.y"
    33753044    {
    3376           if (basePack!=(yyvsp[(2) - (2)].lv).req_packhdl)
     3045          if (basePack!=yyvsp[0].lv.req_packhdl)
    33773046          {
    3378             if(iiExport(&(yyvsp[(2) - (2)].lv),0,currPackHdl)) YYERROR;
     3047            if(iiExport(&yyvsp[0].lv,0,currPackHdl)) YYERROR;
    33793048          }
    33803049          else
    3381             if (iiExport(&(yyvsp[(2) - (2)].lv),0)) YYERROR;
     3050            if (iiExport(&yyvsp[0].lv,0)) YYERROR;
    33823051        ;}
    33833052    break;
     
    33863055#line 1137 "grammar.y"
    33873056    {
    3388           leftv v=&(yyvsp[(2) - (2)].lv);
     3057          leftv v=&yyvsp[0].lv;
    33893058          if (v->rtyp!=IDHDL)
    33903059          {
     
    34053074#line 1153 "grammar.y"
    34063075    {
    3407           leftv v=&(yyvsp[(3) - (3)].lv);
     3076          leftv v=&yyvsp[0].lv;
    34083077          if (v->rtyp!=IDHDL)
    34093078          {
     
    34243093#line 1172 "grammar.y"
    34253094    {
    3426             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     3095            list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
    34273096          ;}
    34283097    break;
     
    34313100#line 1176 "grammar.y"
    34323101    {
    3433             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     3102            list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
    34343103          ;}
    34353104    break;
     
    34383107#line 1180 "grammar.y"
    34393108    {
    3440             if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD;
    3441             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     3109            if (yyvsp[-1].i==QRING_CMD) yyvsp[-1].i=RING_CMD;
     3110            list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
    34423111          ;}
    34433112    break;
     
    34463115#line 1185 "grammar.y"
    34473116    {
    3448             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     3117            list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
    34493118          ;}
    34503119    break;
     
    34813150#line 1205 "grammar.y"
    34823151    {
    3483             list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE);
    3484             (yyvsp[(3) - (4)].lv).CleanUp();
     3152            list_cmd(0,yyvsp[-1].lv.Fullname(),"// ",TRUE);
     3153            yyvsp[-1].lv.CleanUp();
    34853154          ;}
    34863155    break;
     
    34893158#line 1210 "grammar.y"
    34903159    {
    3491             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3492               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3493             (yyvsp[(3) - (6)].lv).CleanUp();
     3160            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3161              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3162            yyvsp[-3].lv.CleanUp();
    34943163          ;}
    34953164    break;
     
    34983167#line 1216 "grammar.y"
    34993168    {
    3500             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3501               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3502             (yyvsp[(3) - (6)].lv).CleanUp();
     3169            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3170              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3171            yyvsp[-3].lv.CleanUp();
    35033172          ;}
    35043173    break;
     
    35073176#line 1222 "grammar.y"
    35083177    {
    3509             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3510               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3511             (yyvsp[(3) - (6)].lv).CleanUp();
     3178            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3179              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3180            yyvsp[-3].lv.CleanUp();
    35123181          ;}
    35133182    break;
     
    35163185#line 1228 "grammar.y"
    35173186    {
    3518             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3519               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3520             (yyvsp[(3) - (6)].lv).CleanUp();
     3187            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3188              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3189            yyvsp[-3].lv.CleanUp();
    35213190          ;}
    35223191    break;
     
    35253194#line 1234 "grammar.y"
    35263195    {
    3527             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3528               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3529             (yyvsp[(3) - (6)].lv).CleanUp();
     3196            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3197              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3198            yyvsp[-3].lv.CleanUp();
    35303199          ;}
    35313200    break;
     
    35343203#line 1240 "grammar.y"
    35353204    {
    3536             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3537               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3538             (yyvsp[(3) - (6)].lv).CleanUp();
     3205            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3206              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3207            yyvsp[-3].lv.CleanUp();
    35393208          ;}
    35403209    break;
     
    35433212#line 1246 "grammar.y"
    35443213    {
    3545             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3546               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3547             (yyvsp[(3) - (6)].lv).CleanUp();
     3214            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3215              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3216            yyvsp[-3].lv.CleanUp();
    35483217          ;}
    35493218    break;
     
    35523221#line 1252 "grammar.y"
    35533222    {
    3554             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
    3555               list_cmd((yyvsp[(5) - (6)].i),NULL,"// ",TRUE);
    3556             (yyvsp[(3) - (6)].lv).CleanUp();
     3223            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
     3224              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
     3225            yyvsp[-3].lv.CleanUp();
    35573226          ;}
    35583227    break;
     
    35733242#line 1279 "grammar.y"
    35743243    {
    3575             const char *ring_name = (yyvsp[(2) - (8)].lv).name;
     3244            const char *ring_name = yyvsp[-6].lv.name;
    35763245            ring b=
    3577             rInit(&(yyvsp[(4) - (8)].lv),            /* characteristik and list of parameters*/
    3578                   &(yyvsp[(6) - (8)].lv),            /* names of ringvariables */
    3579                   &(yyvsp[(8) - (8)].lv));            /* ordering */
     3246            rInit(&yyvsp[-4].lv,            /* characteristik and list of parameters*/
     3247                  &yyvsp[-2].lv,            /* names of ringvariables */
     3248                  &yyvsp[0].lv);            /* ordering */
    35803249            idhdl newRingHdl=NULL;
    35813250
     
    35833252            {
    35843253                newRingHdl=enterid(ring_name, myynest, RING_CMD,
    3585                                    &((yyvsp[(2) - (8)].lv).req_packhdl->idroot));
    3586               (yyvsp[(2) - (8)].lv).CleanUp();
     3254                                   &(yyvsp[-6].lv.req_packhdl->idroot));
     3255              yyvsp[-6].lv.CleanUp();
    35873256              if (newRingHdl!=NULL)
    35883257              {
     
    36103279#line 1313 "grammar.y"
    36113280    {
    3612             const char *ring_name = (yyvsp[(2) - (2)].lv).name;
     3281            const char *ring_name = yyvsp[0].lv.name;
    36133282            if (!inerror) rDefault(ring_name);
    36143283            yyInRingConstruction = FALSE;
    3615             (yyvsp[(2) - (2)].lv).CleanUp();
     3284            yyvsp[0].lv.CleanUp();
    36163285          ;}
    36173286    break;
     
    36203289#line 1323 "grammar.y"
    36213290    {
    3622             if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(iiLibCmd((yyvsp[(2) - (2)].name),TRUE,TRUE,TRUE)))
     3291            if ((yyvsp[-1].i!=LIB_CMD)||(iiLibCmd(yyvsp[0].name,TRUE,TRUE,TRUE)))
    36233292            //if ($1==LIB_CMD)
    36243293            //{
     
    36343303#line 1339 "grammar.y"
    36353304    {
    3636             if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0))
     3305            if ((yyvsp[-1].i==KEEPRING_CMD) && (myynest==0))
    36373306               MYYERROR("only inside a proc allowed");
    3638             const char * n=(yyvsp[(2) - (2)].lv).Name();
    3639             if ((((yyvsp[(2) - (2)].lv).Typ()==RING_CMD)||((yyvsp[(2) - (2)].lv).Typ()==QRING_CMD))
    3640             && ((yyvsp[(2) - (2)].lv).rtyp==IDHDL))
     3307            const char * n=yyvsp[0].lv.Name();
     3308            if (((yyvsp[0].lv.Typ()==RING_CMD)||(yyvsp[0].lv.Typ()==QRING_CMD))
     3309            && (yyvsp[0].lv.rtyp==IDHDL))
    36413310            {
    3642               idhdl h=(idhdl)(yyvsp[(2) - (2)].lv).data;
    3643               if ((yyvsp[(2) - (2)].lv).e!=NULL) h=rFindHdl((ring)(yyvsp[(2) - (2)].lv).Data(),NULL, NULL);
     3311              idhdl h=(idhdl)yyvsp[0].lv.data;
     3312              if (yyvsp[0].lv.e!=NULL) h=rFindHdl((ring)yyvsp[0].lv.Data(),NULL, NULL);
    36443313              //Print("setring %s lev %d (ptr:%x)\n",IDID(h),IDLEV(h),IDRING(h));
    3645               if ((yyvsp[(1) - (2)].i)==KEEPRING_CMD)
     3314              if (yyvsp[-1].i==KEEPRING_CMD)
    36463315              {
    36473316                if (h!=NULL)
     
    36493318                  if (IDLEV(h)!=0)
    36503319                  {
    3651                     if (iiExport(&(yyvsp[(2) - (2)].lv),myynest-1)) YYERROR;
     3320                    if (iiExport(&yyvsp[0].lv,myynest-1)) YYERROR;
    36523321#if 1
    36533322                    idhdl p=IDRING(h)->idroot;
     
    36813350                {
    36823351                  Werror("%s is no identifier",n);
    3683                   (yyvsp[(2) - (2)].lv).CleanUp();
     3352                  yyvsp[0].lv.CleanUp();
    36843353                  YYERROR;
    36853354                }
     
    36893358              {
    36903359                Werror("cannot find the name of the basering %s",n);
    3691                 (yyvsp[(2) - (2)].lv).CleanUp();
     3360                yyvsp[0].lv.CleanUp();
    36923361                YYERROR;
    36933362              }
    3694               (yyvsp[(2) - (2)].lv).CleanUp();
     3363              yyvsp[0].lv.CleanUp();
    36953364            }
    36963365            else
    36973366            {
    36983367              Werror("%s is no name of a ring/qring",n);
    3699               (yyvsp[(2) - (2)].lv).CleanUp();
     3368              yyvsp[0].lv.CleanUp();
    37003369              YYERROR;
    37013370            }
     
    37063375#line 1411 "grammar.y"
    37073376    {
    3708             if ((yyvsp[(2) - (2)].lv).rtyp!=IDHDL) MYYERROR("identifier expected");
    3709             idhdl h = (idhdl)(yyvsp[(2) - (2)].lv).data;
    3710             type_cmd(h);
     3377            if ((yyvsp[0].lv.e!=NULL)||(yyvsp[0].lv.rtyp!=IDHDL)) yyvsp[0].lv.Print();
     3378            else
     3379            {
     3380              idhdl h = (idhdl)yyvsp[0].lv.data;
     3381              type_cmd(h);
     3382            }
    37113383          ;}
    37123384    break;
    37133385
    37143386  case 155:
    3715 #line 1417 "grammar.y"
     3387#line 1420 "grammar.y"
    37163388    {
    37173389            //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp);
    37183390            #ifdef SIQ
    3719             if ((yyvsp[(1) - (1)].lv).rtyp!=COMMAND)
     3391            if (yyvsp[0].lv.rtyp!=COMMAND)
    37203392            {
    37213393            #endif
    3722               if ((yyvsp[(1) - (1)].lv).Typ()==UNKNOWN)
     3394              if (yyvsp[0].lv.Typ()==UNKNOWN)
    37233395              {
    3724                 if ((yyvsp[(1) - (1)].lv).name!=NULL)
     3396                if (yyvsp[0].lv.name!=NULL)
    37253397                {
    3726                   Werror("`%s` is undefined",(yyvsp[(1) - (1)].lv).name);
    3727                   omFree((ADDRESS)(yyvsp[(1) - (1)].lv).name);
     3398                  Werror("`%s` is undefined",yyvsp[0].lv.name);
     3399                  omFree((ADDRESS)yyvsp[0].lv.name);
    37283400                }
    37293401                YYERROR;
     
    37323404            }
    37333405            #endif
    3734             (yyvsp[(1) - (1)].lv).Print(&sLastPrinted);
    3735             (yyvsp[(1) - (1)].lv).CleanUp(currRing);
     3406            yyvsp[0].lv.Print(&sLastPrinted);
     3407            yyvsp[0].lv.CleanUp(currRing);
    37363408            if (errorreported) YYERROR;
    37373409          ;}
     
    37393411
    37403412  case 156:
    3741 #line 1446 "grammar.y"
    3742     {
    3743             int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     3413#line 1449 "grammar.y"
     3414    {
     3415            int i; TESTSETINT(yyvsp[-2].lv,i);
    37443416            if (i!=0)
    37453417            {
    3746               newBuffer( (yyvsp[(5) - (5)].name), BT_if);
     3418              newBuffer( yyvsp[0].name, BT_if);
    37473419            }
    37483420            else
    37493421            {
    3750               omFree((ADDRESS)(yyvsp[(5) - (5)].name));
     3422              omFree((ADDRESS)yyvsp[0].name);
    37513423              currentVoice->ifsw=1;
    37523424            }
     
    37553427
    37563428  case 157:
    3757 #line 1459 "grammar.y"
     3429#line 1462 "grammar.y"
    37583430    {
    37593431            if (currentVoice->ifsw==1)
    37603432            {
    37613433              currentVoice->ifsw=0;
    3762               newBuffer( (yyvsp[(2) - (2)].name), BT_else);
     3434              newBuffer( yyvsp[0].name, BT_else);
    37633435            }
    37643436            else
     
    37683440                Warn("`else` without `if` in level %d",myynest);
    37693441              }
    3770               omFree((ADDRESS)(yyvsp[(2) - (2)].name));
     3442              omFree((ADDRESS)yyvsp[0].name);
    37713443            }
    37723444            currentVoice->ifsw=0;
     
    37753447
    37763448  case 158:
    3777 #line 1476 "grammar.y"
    3778     {
    3779             int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     3449#line 1479 "grammar.y"
     3450    {
     3451            int i; TESTSETINT(yyvsp[-2].lv,i);
    37803452            if (i)
    37813453            {
     
    37873459
    37883460  case 159:
    3789 #line 1485 "grammar.y"
     3461#line 1488 "grammar.y"
    37903462    {
    37913463            if (exitBuffer(BT_break)) YYERROR;
     
    37953467
    37963468  case 160:
    3797 #line 1490 "grammar.y"
     3469#line 1493 "grammar.y"
    37983470    {
    37993471            if (contBuffer(BT_break)) YYERROR;
     
    38033475
    38043476  case 161:
    3805 #line 1498 "grammar.y"
     3477#line 1501 "grammar.y"
    38063478    {
    38073479            /* -> if(!$2) break; $3; continue;*/
    3808             char * s = (char *)omAlloc( strlen((yyvsp[(2) - (3)].name)) + strlen((yyvsp[(3) - (3)].name)) + 36);
    3809             sprintf(s,"whileif (!(%s)) break;\n%scontinue;\n " ,(yyvsp[(2) - (3)].name),(yyvsp[(3) - (3)].name));
     3480            char * s = (char *)omAlloc( strlen(yyvsp[-1].name) + strlen(yyvsp[0].name) + 36);
     3481            sprintf(s,"whileif (!(%s)) break;\n%scontinue;\n " ,yyvsp[-1].name,yyvsp[0].name);
    38103482            newBuffer(s,BT_break);
    3811             omFree((ADDRESS)(yyvsp[(2) - (3)].name));
    3812             omFree((ADDRESS)(yyvsp[(3) - (3)].name));
     3483            omFree((ADDRESS)yyvsp[-1].name);
     3484            omFree((ADDRESS)yyvsp[0].name);
    38133485          ;}
    38143486    break;
    38153487
    38163488  case 162:
    3817 #line 1510 "grammar.y"
     3489#line 1513 "grammar.y"
    38183490    {
    38193491            /* $2 */
    38203492            /* if (!$3) break; $5; $4; continue; */
    3821             char * s = (char *)omAlloc( strlen((yyvsp[(3) - (5)].name))+strlen((yyvsp[(4) - (5)].name))+strlen((yyvsp[(5) - (5)].name))+36);
     3493            char * s = (char *)omAlloc( strlen(yyvsp[-2].name)+strlen(yyvsp[-1].name)+strlen(yyvsp[0].name)+36);
    38223494            sprintf(s,"forif (!(%s)) break;\n%s%s;\ncontinue;\n "
    3823                    ,(yyvsp[(3) - (5)].name),(yyvsp[(5) - (5)].name),(yyvsp[(4) - (5)].name));
    3824             omFree((ADDRESS)(yyvsp[(3) - (5)].name));
    3825             omFree((ADDRESS)(yyvsp[(4) - (5)].name));
    3826             omFree((ADDRESS)(yyvsp[(5) - (5)].name));
     3495                   ,yyvsp[-2].name,yyvsp[0].name,yyvsp[-1].name);
     3496            omFree((ADDRESS)yyvsp[-2].name);
     3497            omFree((ADDRESS)yyvsp[-1].name);
     3498            omFree((ADDRESS)yyvsp[0].name);
    38273499            newBuffer(s,BT_break);
    3828             s = (char *)omAlloc( strlen((yyvsp[(2) - (5)].name)) + 3);
    3829             sprintf(s,"%s;\n",(yyvsp[(2) - (5)].name));
    3830             omFree((ADDRESS)(yyvsp[(2) - (5)].name));
     3500            s = (char *)omAlloc( strlen(yyvsp[-3].name) + 3);
     3501            sprintf(s,"%s;\n",yyvsp[-3].name);
     3502            omFree((ADDRESS)yyvsp[-3].name);
    38313503            newBuffer(s,BT_if);
    38323504          ;}
     
    38343506
    38353507  case 163:
    3836 #line 1529 "grammar.y"
     3508#line 1532 "grammar.y"
    38373509    {
    38383510            procinfov pi;
    3839             idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
    3840             if (h==NULL) {omFree((ADDRESS)(yyvsp[(2) - (3)].name));omFree((ADDRESS)(yyvsp[(3) - (3)].name)); YYERROR;}
    3841             iiInitSingularProcinfo(IDPROC(h),"", (yyvsp[(2) - (3)].name), 0, 0);
    3842             IDPROC(h)->data.s.body = (char *)omAlloc(strlen((yyvsp[(3) - (3)].name))+31);;
    3843             sprintf(IDPROC(h)->data.s.body,"parameter list #;\n%s;return();\n\n",(yyvsp[(3) - (3)].name));
    3844             omFree((ADDRESS)(yyvsp[(3) - (3)].name));
    3845             omFree((ADDRESS)(yyvsp[(2) - (3)].name));
     3511            idhdl h = enterid(yyvsp[-1].name,myynest,PROC_CMD,&IDROOT,TRUE);
     3512            if (h==NULL) {omFree((ADDRESS)yyvsp[-1].name);omFree((ADDRESS)yyvsp[0].name); YYERROR;}
     3513            iiInitSingularProcinfo(IDPROC(h),"", yyvsp[-1].name, 0, 0);
     3514            IDPROC(h)->data.s.body = (char *)omAlloc(strlen(yyvsp[0].name)+31);;
     3515            sprintf(IDPROC(h)->data.s.body,"parameter list #;\n%s;return();\n\n",yyvsp[0].name);
     3516            omFree((ADDRESS)yyvsp[0].name);
     3517            omFree((ADDRESS)yyvsp[-1].name);
    38463518          ;}
    38473519    break;
    38483520
    38493521  case 164:
    3850 #line 1540 "grammar.y"
    3851     {
    3852             idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     3522#line 1543 "grammar.y"
     3523    {
     3524            idhdl h = enterid(yyvsp[-2].name,myynest,PROC_CMD,&IDROOT,TRUE);
    38533525            if (h==NULL)
    38543526            {
    3855               omFree((ADDRESS)(yyvsp[(1) - (3)].name));
    3856               omFree((ADDRESS)(yyvsp[(2) - (3)].name));
    3857               omFree((ADDRESS)(yyvsp[(3) - (3)].name));
     3527              omFree((ADDRESS)yyvsp[-2].name);
     3528              omFree((ADDRESS)yyvsp[-1].name);
     3529              omFree((ADDRESS)yyvsp[0].name);
    38583530              YYERROR;
    38593531            }
    3860             char *args=iiProcArgs((yyvsp[(2) - (3)].name),FALSE);
    3861             omFree((ADDRESS)(yyvsp[(2) - (3)].name));
     3532            char *args=iiProcArgs(yyvsp[-1].name,FALSE);
     3533            omFree((ADDRESS)yyvsp[-1].name);
    38623534            procinfov pi;
    3863             iiInitSingularProcinfo(IDPROC(h),"", (yyvsp[(1) - (3)].name), 0, 0);
    3864             IDPROC(h)->data.s.body = (char *)omAlloc(strlen((yyvsp[(3) - (3)].name))+strlen(args)+14);;
    3865             sprintf(IDPROC(h)->data.s.body,"%s\n%s;return();\n\n",args,(yyvsp[(3) - (3)].name));
     3535            iiInitSingularProcinfo(IDPROC(h),"", yyvsp[-2].name, 0, 0);
     3536            IDPROC(h)->data.s.body = (char *)omAlloc(strlen(yyvsp[0].name)+strlen(args)+14);;
     3537            sprintf(IDPROC(h)->data.s.body,"%s\n%s;return();\n\n",args,yyvsp[0].name);
    38663538            omFree((ADDRESS)args);
    3867             omFree((ADDRESS)(yyvsp[(3) - (3)].name));
    3868             omFree((ADDRESS)(yyvsp[(1) - (3)].name));
     3539            omFree((ADDRESS)yyvsp[0].name);
     3540            omFree((ADDRESS)yyvsp[-2].name);
    38693541          ;}
    38703542    break;
    38713543
    38723544  case 165:
    3873 #line 1560 "grammar.y"
    3874     {
    3875             omFree((ADDRESS)(yyvsp[(3) - (4)].name));
    3876             idhdl h = enterid((yyvsp[(1) - (4)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     3545#line 1563 "grammar.y"
     3546    {
     3547            omFree((ADDRESS)yyvsp[-1].name);
     3548            idhdl h = enterid(yyvsp[-3].name,myynest,PROC_CMD,&IDROOT,TRUE);
    38773549            if (h==NULL)
    38783550            {
    3879               omFree((ADDRESS)(yyvsp[(1) - (4)].name));
    3880               omFree((ADDRESS)(yyvsp[(2) - (4)].name));
    3881               omFree((ADDRESS)(yyvsp[(4) - (4)].name));
     3551              omFree((ADDRESS)yyvsp[-3].name);
     3552              omFree((ADDRESS)yyvsp[-2].name);
     3553              omFree((ADDRESS)yyvsp[0].name);
    38823554              YYERROR;
    38833555            }
    3884             char *args=iiProcArgs((yyvsp[(2) - (4)].name),FALSE);
    3885             omFree((ADDRESS)(yyvsp[(2) - (4)].name));
     3556            char *args=iiProcArgs(yyvsp[-2].name,FALSE);
     3557            omFree((ADDRESS)yyvsp[-2].name);
    38863558            procinfov pi;
    3887             iiInitSingularProcinfo(IDPROC(h),"", (yyvsp[(1) - (4)].name), 0, 0);
    3888             omFree((ADDRESS)(yyvsp[(1) - (4)].name));
    3889             IDPROC(h)->data.s.body = (char *)omAlloc(strlen((yyvsp[(4) - (4)].name))+strlen(args)+14);;
    3890             sprintf(IDPROC(h)->data.s.body,"%s\n%s;return();\n\n",args,(yyvsp[(4) - (4)].name));
     3559            iiInitSingularProcinfo(IDPROC(h),"", yyvsp[-3].name, 0, 0);
     3560            omFree((ADDRESS)yyvsp[-3].name);
     3561            IDPROC(h)->data.s.body = (char *)omAlloc(strlen(yyvsp[0].name)+strlen(args)+14);;
     3562            sprintf(IDPROC(h)->data.s.body,"%s\n%s;return();\n\n",args,yyvsp[0].name);
    38913563            omFree((ADDRESS)args);
    3892             omFree((ADDRESS)(yyvsp[(4) - (4)].name));
     3564            omFree((ADDRESS)yyvsp[0].name);
    38933565          ;}
    38943566    break;
    38953567
    38963568  case 166:
    3897 #line 1584 "grammar.y"
     3569#line 1587 "grammar.y"
    38983570    {
    38993571            // decl. of type proc p(int i)
    3900             if ((yyvsp[(1) - (2)].i)==PARAMETER)  { if (iiParameter(&(yyvsp[(2) - (2)].lv))) YYERROR; }
    3901             else                { if (iiAlias(&(yyvsp[(2) - (2)].lv))) YYERROR; }
     3572            if (yyvsp[-1].i==PARAMETER)  { if (iiParameter(&yyvsp[0].lv)) YYERROR; }
     3573            else                { if (iiAlias(&yyvsp[0].lv)) YYERROR; }
    39023574          ;}
    39033575    break;
    39043576
    39053577  case 167:
    3906 #line 1590 "grammar.y"
     3578#line 1593 "grammar.y"
    39073579    {
    39083580            // decl. of type proc p(i)
    39093581            sleftv tmp_expr;
    3910             if ((yyvsp[(1) - (2)].i)==ALIAS_CMD) MYYERROR("alias requires a type");
    3911             if ((iiDeclCommand(&tmp_expr,&(yyvsp[(2) - (2)].lv),myynest,DEF_CMD,&IDROOT))
     3582            if (yyvsp[-1].i==ALIAS_CMD) MYYERROR("alias requires a type");
     3583            if ((iiDeclCommand(&tmp_expr,&yyvsp[0].lv,myynest,DEF_CMD,&IDROOT))
    39123584            || (iiParameter(&tmp_expr)))
    39133585              YYERROR;
     
    39163588
    39173589  case 168:
    3918 #line 1602 "grammar.y"
     3590#line 1605 "grammar.y"
    39193591    {
    39203592            if(iiRETURNEXPR==NULL) YYERROR;
    3921             iiRETURNEXPR[myynest].Copy(&(yyvsp[(3) - (4)].lv));
    3922             (yyvsp[(3) - (4)].lv).CleanUp();
     3593            iiRETURNEXPR[myynest].Copy(&yyvsp[-1].lv);
     3594            yyvsp[-1].lv.CleanUp();
    39233595            if (exitBuffer(BT_proc)) YYERROR;
    39243596          ;}
     
    39263598
    39273599  case 169:
    3928 #line 1609 "grammar.y"
    3929     {
    3930             if ((yyvsp[(1) - (3)].i)==RETURN)
     3600#line 1612 "grammar.y"
     3601    {
     3602            if (yyvsp[-2].i==RETURN)
    39313603            {
    39323604              if(iiRETURNEXPR==NULL) YYERROR;
     
    39393611
    39403612
    3941 /* Line 1267 of yacc.c.  */
    3942 #line 3940 "grammar.cc"
    3943       default: break;
    39443613    }
    3945   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
    3946 
    3947   YYPOPSTACK (yylen);
    3948   yylen = 0;
     3614
     3615/* Line 1010 of yacc.c.  */
     3616#line 3614 "grammar.cc"
     3617
     3618
     3619  yyvsp -= yylen;
     3620  yyssp -= yylen;
     3621
     3622
    39493623  YY_STACK_PRINT (yyss, yyssp);
    39503624
     
    39753649    {
    39763650      ++yynerrs;
    3977 #if ! YYERROR_VERBOSE
    3978       yyerror (YY_("syntax error"));
    3979 #else
    3980       {
    3981         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
    3982         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
    3983           {
    3984             YYSIZE_T yyalloc = 2 * yysize;
    3985             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
    3986               yyalloc = YYSTACK_ALLOC_MAXIMUM;
    3987             if (yymsg != yymsgbuf)
     3651#if YYERROR_VERBOSE
     3652      yyn = yypact[yystate];
     3653
     3654      if (YYPACT_NINF < yyn && yyn < YYLAST)
     3655        {
     3656          YYSIZE_T yysize = 0;
     3657          int yytype = YYTRANSLATE (yychar);
     3658          const char* yyprefix;
     3659          char *yymsg;
     3660          int yyx;
     3661
     3662          /* Start YYX at -YYN if negative to avoid negative indexes in
     3663             YYCHECK.  */
     3664          int yyxbegin = yyn < 0 ? -yyn : 0;
     3665
     3666          /* Stay within bounds of both yycheck and yytname.  */
     3667          int yychecklim = YYLAST - yyn;
     3668          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
     3669          int yycount = 0;
     3670
     3671          yyprefix = ", expecting ";
     3672          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
     3673            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
     3674              {
     3675                yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
     3676                yycount += 1;
     3677                if (yycount == 5)
     3678                  {
     3679                    yysize = 0;
     3680                    break;
     3681                  }
     3682              }
     3683          yysize += (sizeof ("syntax error, unexpected ")
     3684                     + yystrlen (yytname[yytype]));
     3685          yymsg = (char *) YYSTACK_ALLOC (yysize);
     3686          if (yymsg != 0)
     3687            {
     3688              char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
     3689              yyp = yystpcpy (yyp, yytname[yytype]);
     3690
     3691              if (yycount < 5)
     3692                {
     3693                  yyprefix = ", expecting ";
     3694                  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
     3695                    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
     3696                      {
     3697                        yyp = yystpcpy (yyp, yyprefix);
     3698                        yyp = yystpcpy (yyp, yytname[yyx]);
     3699                        yyprefix = " or ";
     3700                      }
     3701                }
     3702              yyerror (yymsg);
    39883703              YYSTACK_FREE (yymsg);
    3989             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
    3990             if (yymsg)
    3991               yymsg_alloc = yyalloc;
    3992             else
    3993               {
    3994                 yymsg = yymsgbuf;
    3995                 yymsg_alloc = sizeof yymsgbuf;
    3996               }
    3997           }
    3998 
    3999         if (0 < yysize && yysize <= yymsg_alloc)
    4000           {
    4001             (void) yysyntax_error (yymsg, yystate, yychar);
    4002             yyerror (yymsg);
    4003           }
    4004         else
    4005           {
    4006             yyerror (YY_("syntax error"));
    4007             if (yysize != 0)
    4008               goto yyexhaustedlab;
    4009           }
    4010       }
    4011 #endif
    4012     }
    4013 
    4014 
    4015 
    4016   if (yyerrstatus == 3)
    4017     {
    4018       /* If just tried and failed to reuse look-ahead token after an
    4019          error, discard it.  */
    4020 
    4021       if (yychar <= YYEOF)
    4022         {
    4023           /* Return failure if at end of input.  */
    4024           if (yychar == YYEOF)
    4025             YYABORT;
     3704            }
     3705          else
     3706            yyerror ("syntax error; also virtual memory exhausted");
    40263707        }
    40273708      else
     3709#endif /* YYERROR_VERBOSE */
     3710        yyerror ("syntax error");
     3711    }
     3712
     3713
     3714
     3715  if (yyerrstatus == 3)
     3716    {
     3717      /* If just tried and failed to reuse lookahead token after an
     3718         error, discard it.  */
     3719
     3720      if (yychar <= YYEOF)
     3721        {
     3722          /* If at end of input, pop the error token,
     3723             then the rest of the stack, then return failure.  */
     3724          if (yychar == YYEOF)
     3725             for (;;)
     3726               {
     3727                 YYPOPSTACK;
     3728                 if (yyssp == yyss)
     3729                   YYABORT;
     3730                 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
     3731                 yydestruct (yystos[*yyssp], yyvsp);
     3732               }
     3733        }
     3734      else
    40283735        {
    4029           yydestruct ("Error: discarding",
    4030                       yytoken, &yylval);
     3736          YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
     3737          yydestruct (yytoken, &yylval);
    40313738          yychar = YYEMPTY;
     3739
    40323740        }
    40333741    }
    40343742
    4035   /* Else will try to reuse look-ahead token after shifting the error
     3743  /* Else will try to reuse lookahead token after shifting the error
    40363744     token.  */
    40373745  goto yyerrlab1;
     
    40433751yyerrorlab:
    40443752
    4045   /* Pacify compilers like GCC when the user code never invokes
    4046      YYERROR and the label yyerrorlab therefore never appears in user
    4047      code.  */
    4048   if (/*CONSTCOND*/ 0)
     3753#ifdef __GNUC__
     3754  /* Pacify GCC when the user code never invokes YYERROR and the label
     3755     yyerrorlab therefore never appears in user code.  */
     3756  if (0)
    40493757     goto yyerrorlab;
    4050 
    4051   /* Do not reclaim the symbols of the rule which action triggered
    4052      this YYERROR.  */
    4053   YYPOPSTACK (yylen);
    4054   yylen = 0;
    4055   YY_STACK_PRINT (yyss, yyssp);
     3758#endif
     3759
     3760  yyvsp -= yylen;
     3761  yyssp -= yylen;
    40563762  yystate = *yyssp;
    40573763  goto yyerrlab1;
     
    40823788        YYABORT;
    40833789
    4084 
    4085       yydestruct ("Error: popping",
    4086                   yystos[yystate], yyvsp);
    4087       YYPOPSTACK (1);
     3790      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
     3791      yydestruct (yystos[yystate], yyvsp);
     3792      YYPOPSTACK;
    40883793      yystate = *yyssp;
    40893794      YY_STACK_PRINT (yyss, yyssp);
     
    40933798    YYACCEPT;
    40943799
     3800  YYDPRINTF ((stderr, "Shifting error token, "));
     3801
    40953802  *++yyvsp = yylval;
    40963803
    4097 
    4098   /* Shift the error token.  */
    4099   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
    41003804
    41013805  yystate = yyn;
     
    41183822
    41193823#ifndef yyoverflow
    4120 /*-------------------------------------------------.
    4121 | yyexhaustedlab -- memory exhaustion comes here.  |
    4122 `-------------------------------------------------*/
    4123 yyexhaustedlab:
    4124   yyerror (YY_("memory exhausted"));
     3824/*----------------------------------------------.
     3825| yyoverflowlab -- parser overflow comes here.  |
     3826`----------------------------------------------*/
     3827yyoverflowlab:
     3828  yyerror ("parser stack overflow");
    41253829  yyresult = 2;
    41263830  /* Fall through.  */
     
    41283832
    41293833yyreturn:
    4130   if (yychar != YYEOF && yychar != YYEMPTY)
    4131      yydestruct ("Cleanup: discarding lookahead",
    4132                  yytoken, &yylval);
    4133   /* Do not reclaim the symbols of the rule which action triggered
    4134      this YYABORT or YYACCEPT.  */
    4135   YYPOPSTACK (yylen);
    4136   YY_STACK_PRINT (yyss, yyssp);
    4137   while (yyssp != yyss)
    4138     {
    4139       yydestruct ("Cleanup: popping",
    4140                   yystos[*yyssp], yyvsp);
    4141       YYPOPSTACK (1);
    4142     }
    41433834#ifndef yyoverflow
    41443835  if (yyss != yyssa)
    41453836    YYSTACK_FREE (yyss);
    41463837#endif
    4147 #if YYERROR_VERBOSE
    4148   if (yymsg != yymsgbuf)
    4149     YYSTACK_FREE (yymsg);
    4150 #endif
    4151   /* Make sure YYID is used.  */
    4152   return YYID (yyresult);
     3838  return yyresult;
    41533839}
    41543840
  • Singular/grammar.h

    rd80a1a ra5a8a1  
    1 /* A Bison parser, made by GNU Bison 2.3.  */
    2 
    3 /* Skeleton interface for Bison's Yacc-like parsers in C
    4 
    5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    6    Free Software Foundation, Inc.
     1/* A Bison parser, made by GNU Bison 1.875d.  */
     2
     3/* Skeleton parser for Yacc-like parsing with Bison,
     4   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    75
    86   This program is free software; you can redistribute it and/or modify
     
    1816   You should have received a copy of the GNU General Public License
    1917   along with this program; if not, write to the Free Software
    20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
    21    Boston, MA 02110-1301, USA.  */
    22 
    23 /* As a special exception, you may create a larger work that contains
    24    part or all of the Bison parser skeleton and distribute that work
    25    under terms of your choice, so long as that work isn't itself a
    26    parser generator using the skeleton or a modified version thereof
    27    as a parser skeleton.  Alternatively, if you modify or redistribute
    28    the parser skeleton itself, you may (at your option) remove this
    29    special exception, which will cause the skeleton and the resulting
    30    Bison output files to be licensed under the GNU General Public
    31    License without this special exception.
    32 
    33    This special exception was added by the Free Software Foundation in
    34    version 2.2 of Bison.  */
     18   Foundation, Inc., 59 Temple Place - Suite 330,
     19   Boston, MA 02111-1307, USA.  */
     20
     21/* As a special exception, when this file is copied by Bison into a
     22   Bison output file, you may use that output file without restriction.
     23   This special exception was added by the Free Software Foundation
     24   in version 1.24 of Bison.  */
    3525
    3626/* Tokens.  */
     
    166156   };
    167157#endif
    168 /* Tokens.  */
    169158#define DOTDOT 258
    170159#define EQUAL_EQUAL 259
     
    295284
    296285
    297 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
     286#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
    298287typedef int YYSTYPE;
    299288# define yystype YYSTYPE /* obsolescent; will be withdrawn */
     
    304293
    305294
     295
     296
  • Singular/grammar.y

    rd80a1a ra5a8a1  
    14101410        TYPE_CMD expr
    14111411          {
    1412             if ($2.rtyp!=IDHDL) MYYERROR("identifier expected");
    1413             idhdl h = (idhdl)$2.data;
    1414             type_cmd(h);
     1412            if (($2.e!=NULL)||($2.rtyp!=IDHDL)) $2.Print();
     1413            else
     1414            {
     1415              idhdl h = (idhdl)$2.data;
     1416              type_cmd(h);
     1417            }
    14151418          }
    14161419        | exprlist
Note: See TracChangeset for help on using the changeset viewer.