Changeset 2ffd25 in git


Ignore:
Timestamp:
Jun 14, 2018, 2:59:48 PM (6 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b9f50b373314e74e83c7c060a651dd2913e1f033')
Children:
1f37c3385e83e4bc34dab711cc9b9797b6290c84
Parents:
db48f3ea705fcb451c2ea640a2b72f643bae2f22
Message:
introduce smatrix (sparse matrix)
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • Singular/grammar.cc

    rdb48f3e r2ffd25  
    289289     POLY_CMD = 280,
    290290     RESOLUTION_CMD = 281,
    291      VECTOR_CMD = 282,
    292      BETTI_CMD = 283,
    293      E_CMD = 284,
    294      FETCH_CMD = 285,
    295      FREEMODULE_CMD = 286,
    296      KEEPRING_CMD = 287,
    297      IMAP_CMD = 288,
    298      KOSZUL_CMD = 289,
    299      MAXID_CMD = 290,
    300      MONOM_CMD = 291,
    301      PAR_CMD = 292,
    302      PREIMAGE_CMD = 293,
    303      VAR_CMD = 294,
    304      VALTVARS = 295,
    305      VMAXDEG = 296,
    306      VMAXMULT = 297,
    307      VNOETHER = 298,
    308      VMINPOLY = 299,
    309      END_RING = 300,
    310      CMD_1 = 301,
    311      CMD_2 = 302,
    312      CMD_3 = 303,
    313      CMD_12 = 304,
    314      CMD_13 = 305,
    315      CMD_23 = 306,
    316      CMD_123 = 307,
    317      CMD_M = 308,
    318      ROOT_DECL = 309,
    319      ROOT_DECL_LIST = 310,
    320      RING_DECL = 311,
    321      RING_DECL_LIST = 312,
    322      EXAMPLE_CMD = 313,
    323      EXPORT_CMD = 314,
    324      HELP_CMD = 315,
    325      KILL_CMD = 316,
    326      LIB_CMD = 317,
    327      LISTVAR_CMD = 318,
    328      SETRING_CMD = 319,
    329      TYPE_CMD = 320,
    330      STRINGTOK = 321,
    331      BLOCKTOK = 322,
    332      INT_CONST = 323,
    333      UNKNOWN_IDENT = 324,
    334      RINGVAR = 325,
    335      PROC_DEF = 326,
    336      APPLY = 327,
    337      ASSUME_CMD = 328,
    338      BREAK_CMD = 329,
    339      CONTINUE_CMD = 330,
    340      ELSE_CMD = 331,
    341      EVAL = 332,
    342      QUOTE = 333,
    343      FOR_CMD = 334,
    344      IF_CMD = 335,
    345      SYS_BREAK = 336,
    346      WHILE_CMD = 337,
    347      RETURN = 338,
    348      PARAMETER = 339,
    349      SYSVAR = 340,
    350      UMINUS = 341
     291     SMATRIX_CMD = 282,
     292     VECTOR_CMD = 283,
     293     BETTI_CMD = 284,
     294     E_CMD = 285,
     295     FETCH_CMD = 286,
     296     FREEMODULE_CMD = 287,
     297     KEEPRING_CMD = 288,
     298     IMAP_CMD = 289,
     299     KOSZUL_CMD = 290,
     300     MAXID_CMD = 291,
     301     MONOM_CMD = 292,
     302     PAR_CMD = 293,
     303     PREIMAGE_CMD = 294,
     304     VAR_CMD = 295,
     305     VALTVARS = 296,
     306     VMAXDEG = 297,
     307     VMAXMULT = 298,
     308     VNOETHER = 299,
     309     VMINPOLY = 300,
     310     END_RING = 301,
     311     CMD_1 = 302,
     312     CMD_2 = 303,
     313     CMD_3 = 304,
     314     CMD_12 = 305,
     315     CMD_13 = 306,
     316     CMD_23 = 307,
     317     CMD_123 = 308,
     318     CMD_M = 309,
     319     ROOT_DECL = 310,
     320     ROOT_DECL_LIST = 311,
     321     RING_DECL = 312,
     322     RING_DECL_LIST = 313,
     323     EXAMPLE_CMD = 314,
     324     EXPORT_CMD = 315,
     325     HELP_CMD = 316,
     326     KILL_CMD = 317,
     327     LIB_CMD = 318,
     328     LISTVAR_CMD = 319,
     329     SETRING_CMD = 320,
     330     TYPE_CMD = 321,
     331     STRINGTOK = 322,
     332     BLOCKTOK = 323,
     333     INT_CONST = 324,
     334     UNKNOWN_IDENT = 325,
     335     RINGVAR = 326,
     336     PROC_DEF = 327,
     337     APPLY = 328,
     338     ASSUME_CMD = 329,
     339     BREAK_CMD = 330,
     340     CONTINUE_CMD = 331,
     341     ELSE_CMD = 332,
     342     EVAL = 333,
     343     QUOTE = 334,
     344     FOR_CMD = 335,
     345     IF_CMD = 336,
     346     SYS_BREAK = 337,
     347     WHILE_CMD = 338,
     348     RETURN = 339,
     349     PARAMETER = 340,
     350     SYSVAR = 341,
     351     UMINUS = 342
    351352   };
    352353#endif
     
    365366
    366367/* Line 264 of yacc.c  */
    367 #line 368 "grammar.cc"
     368#line 369 "grammar.cc"
    368369
    369370#ifdef short
     
    580581#define YYFINAL  2
    581582/* YYLAST -- Last index in YYTABLE.  */
    582 #define YYLAST   2593
     583#define YYLAST   2567
    583584
    584585/* YYNTOKENS -- Number of terminals.  */
    585 #define YYNTOKENS  103
     586#define YYNTOKENS  104
    586587/* YYNNTS -- Number of nonterminals.  */
    587588#define YYNNTS  44
    588589/* YYNRULES -- Number of rules.  */
    589 #define YYNRULES  174
     590#define YYNRULES  175
    590591/* YYNRULES -- Number of states.  */
    591 #define YYNSTATES  397
     592#define YYNSTATES  398
    592593
    593594/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    594595#define YYUNDEFTOK  2
    595 #define YYMAXUTOK   341
     596#define YYMAXUTOK   342
    596597
    597598#define YYTRANSLATE(YYX)                                                \
     
    604605       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    605606       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    606        2,     2,     2,     2,     2,     2,     2,     2,    96,     2,
    607       99,   100,     2,    88,    94,    89,   101,    90,     2,     2,
    608        2,     2,     2,     2,     2,     2,     2,     2,    97,    95,
    609       87,    86,     2,     2,     2,     2,     2,     2,     2,     2,
     607       2,     2,     2,     2,     2,     2,     2,     2,    97,     2,
     608     100,   101,     2,    89,    95,    90,   102,    91,     2,     2,
     609       2,     2,     2,     2,     2,     2,     2,     2,    98,    96,
     610      88,    87,     2,     2,     2,     2,     2,     2,     2,     2,
    610611       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    611612       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    612        2,    91,     2,    92,    93,     2,   102,     2,     2,     2,
     613       2,    92,     2,    93,    94,     2,   103,     2,     2,     2,
    613614       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    614615       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    635636      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
    636637      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    637       85,    98
     638      85,    86,    99
    638639};
    639640
     
    655656     401,   404,   407,   410,   412,   416,   419,   422,   425,   428,
    656657     437,   440,   444,   447,   449,   451,   457,   459,   461,   466,
    657      468,   472,   474,   478,   480,   482,   484,   486,   489,   493,
    658      496,   500,   503,   506,   510,   515,   520,   525,   530,   535,
    659      540,   545,   550,   557,   564,   571,   578,   585,   592,   599,
    660      603,   605,   614,   617,   622,   630,   633,   635,   637,   640,
    661      643,   645,   651,   654,   660,   662,   664,   668,   674,   678,
    662      682,   687,   690,   693,   698
     658     468,   472,   474,   478,   480,   482,   484,   486,   488,   491,
     659     495,   498,   502,   505,   508,   512,   517,   522,   527,   532,
     660     537,   542,   547,   552,   559,   566,   573,   580,   587,   594,
     661     601,   605,   607,   616,   619,   624,   632,   635,   637,   639,
     662     642,   645,   647,   653,   656,   662,   664,   666,   670,   676,
     663     680,   684,   689,   692,   695,   700
    663664};
    664665
     
    666667static const yytype_int16 yyrhs[] =
    667668{
    668      104,     0,    -1,    -1,   104,   105,    -1,   106,    -1,   108,
    669       95,    -1,   120,    95,    -1,   146,    -1,    81,    -1,    95,
    670       -1,     1,    95,    -1,   141,    -1,   142,    -1,   107,    -1,
    671      143,    -1,   144,    -1,   129,    -1,   130,    -1,   131,    -1,
    672       58,    67,    -1,   109,    -1,   132,    -1,   133,    -1,   134,
    673       -1,   145,    -1,   136,    -1,   137,    -1,   139,    -1,   140,
    674       -1,   118,   111,    -1,    70,    -1,   119,    -1,   110,    11,
    675      110,    -1,   112,   101,   110,    -1,   110,    99,   100,    -1,
    676      110,    99,   111,   100,    -1,    91,   111,    92,    -1,    68,
    677       -1,    85,    -1,   121,    -1,    16,    99,   112,   100,    -1,
    678       54,    99,   112,   100,    -1,    55,    99,   111,   100,    -1,
    679       55,    99,   100,    -1,    56,    99,   112,   100,    -1,    57,
    680       99,   111,   100,    -1,    57,    99,   100,    -1,    46,    99,
    681      112,   100,    -1,    49,    99,   112,   100,    -1,    50,    99,
    682      112,   100,    -1,    52,    99,   112,   100,    -1,    47,    99,
    683      112,    94,   112,   100,    -1,    49,    99,   112,    94,   112,
    684      100,    -1,    51,    99,   112,    94,   112,   100,    -1,    52,
    685       99,   112,    94,   112,   100,    -1,    48,    99,   112,    94,
    686      112,    94,   112,   100,    -1,    50,    99,   112,    94,   112,
    687       94,   112,   100,    -1,    51,    99,   112,    94,   112,    94,
    688      112,   100,    -1,    52,    99,   112,    94,   112,    94,   112,
    689      100,    -1,    53,    99,   100,    -1,    53,    99,   111,   100,
    690       -1,   128,    99,   112,    94,   112,    94,   112,   100,    -1,
    691      128,    99,   112,   100,    -1,    17,    99,   122,    94,   122,
    692       94,   126,   100,    -1,    17,    99,   112,   100,    -1,   119,
    693       12,    67,    -1,    99,   111,   100,    -1,   111,    94,   112,
    694       -1,   112,    -1,   117,    -1,   110,    -1,   112,    91,   112,
    695       94,   112,    92,    -1,   112,    91,   112,    92,    -1,    72,
    696       99,   112,    94,    46,   100,    -1,    72,    99,   112,    94,
    697       49,   100,    -1,    72,    99,   112,    94,    50,   100,    -1,
    698       72,    99,   112,    94,    52,   100,    -1,    72,    99,   112,
    699       94,    53,   100,    -1,    72,    99,   112,    94,   112,   100,
    700       -1,   114,   112,   116,    -1,   114,   112,    86,   112,   116,
    701       -1,   115,   112,    94,   112,   116,    -1,    -1,    77,    99,
    702      113,   112,   100,    -1,    78,    99,    -1,    73,    99,    -1,
    703      100,    -1,   112,    10,    -1,   112,     7,    -1,   112,    88,
    704      112,    -1,   112,    89,   112,    -1,   112,    90,   112,    -1,
    705      112,    93,   112,    -1,   112,    87,   112,    -1,   112,    96,
    706      112,    -1,   112,     9,   112,    -1,   112,     4,   112,    -1,
    707      112,     3,   112,    -1,   112,    97,   112,    -1,     8,   112,
    708       -1,    89,   112,    -1,   120,   127,    -1,   111,   127,    -1,
    709       69,    -1,   102,   112,   102,    -1,    54,   110,    -1,    55,
    710      110,    -1,    56,   110,    -1,    57,   110,    -1,   128,   110,
    711       91,   112,    92,    91,   112,    92,    -1,   128,   110,    -1,
    712      120,    94,   110,    -1,    16,   110,    -1,    66,    -1,   112,
    713       -1,    99,   112,    94,   111,   100,    -1,    69,    -1,   123,
    714       -1,   123,    99,   111,   100,    -1,   124,    -1,   124,    94,
    715      125,    -1,   124,    -1,    99,   125,   100,    -1,    86,    -1,
    716       22,    -1,    15,    -1,    14,    -1,    87,   121,    -1,    60,
    717       66,    95,    -1,    60,    95,    -1,    58,    66,    95,    -1,
    718       59,   111,    -1,    61,   110,    -1,   133,    94,   110,    -1,
    719       63,    99,    54,   100,    -1,    63,    99,    55,   100,    -1,
    720       63,    99,    56,   100,    -1,    63,    99,    57,   100,    -1,
    721       63,    99,    17,   100,    -1,    63,    99,   128,   100,    -1,
    722       63,    99,    16,   100,    -1,    63,    99,   110,   100,    -1,
    723       63,    99,   110,    94,    54,   100,    -1,    63,    99,   110,
    724       94,    55,   100,    -1,    63,    99,   110,    94,    56,   100,
    725       -1,    63,    99,   110,    94,    57,   100,    -1,    63,    99,
    726      110,    94,    17,   100,    -1,    63,    99,   110,    94,   128,
    727      100,    -1,    63,    99,   110,    94,    16,   100,    -1,    63,
    728       99,   100,    -1,    17,    -1,   135,   110,   127,   122,    94,
    729      122,    94,   126,    -1,   135,   110,    -1,   135,   110,   127,
    730      110,    -1,   135,   110,   127,   110,    91,   111,    92,    -1,
    731       85,   121,    -1,    64,    -1,    32,    -1,   138,   112,    -1,
    732       65,   112,    -1,   111,    -1,    80,    99,   112,   100,    67,
    733       -1,    76,    67,    -1,    80,    99,   112,   100,    74,    -1,
    734       74,    -1,    75,    -1,    82,    66,    67,    -1,    79,    66,
    735       66,    66,    67,    -1,    16,   119,    67,    -1,    71,    66,
    736       67,    -1,    71,    66,    66,    67,    -1,    84,   120,    -1,
    737       84,   112,    -1,    83,    99,   111,   100,    -1,    83,    99,
    738      100,    -1
     669     105,     0,    -1,    -1,   105,   106,    -1,   107,    -1,   109,
     670      96,    -1,   121,    96,    -1,   147,    -1,    82,    -1,    96,
     671      -1,     1,    96,    -1,   142,    -1,   143,    -1,   108,    -1,
     672     144,    -1,   145,    -1,   130,    -1,   131,    -1,   132,    -1,
     673      59,    68,    -1,   110,    -1,   133,    -1,   134,    -1,   135,
     674      -1,   146,    -1,   137,    -1,   138,    -1,   140,    -1,   141,
     675      -1,   119,   112,    -1,    71,    -1,   120,    -1,   111,    11,
     676     111,    -1,   113,   102,   111,    -1,   111,   100,   101,    -1,
     677     111,   100,   112,   101,    -1,    92,   112,    93,    -1,    69,
     678      -1,    86,    -1,   122,    -1,    16,   100,   113,   101,    -1,
     679      55,   100,   113,   101,    -1,    56,   100,   112,   101,    -1,
     680      56,   100,   101,    -1,    57,   100,   113,   101,    -1,    58,
     681     100,   112,   101,    -1,    58,   100,   101,    -1,    47,   100,
     682     113,   101,    -1,    50,   100,   113,   101,    -1,    51,   100,
     683     113,   101,    -1,    53,   100,   113,   101,    -1,    48,   100,
     684     113,    95,   113,   101,    -1,    50,   100,   113,    95,   113,
     685     101,    -1,    52,   100,   113,    95,   113,   101,    -1,    53,
     686     100,   113,    95,   113,   101,    -1,    49,   100,   113,    95,
     687     113,    95,   113,   101,    -1,    51,   100,   113,    95,   113,
     688      95,   113,   101,    -1,    52,   100,   113,    95,   113,    95,
     689     113,   101,    -1,    53,   100,   113,    95,   113,    95,   113,
     690     101,    -1,    54,   100,   101,    -1,    54,   100,   112,   101,
     691      -1,   129,   100,   113,    95,   113,    95,   113,   101,    -1,
     692     129,   100,   113,   101,    -1,    17,   100,   123,    95,   123,
     693      95,   127,   101,    -1,    17,   100,   113,   101,    -1,   120,
     694      12,    68,    -1,   100,   112,   101,    -1,   112,    95,   113,
     695      -1,   113,    -1,   118,    -1,   111,    -1,   113,    92,   113,
     696      95,   113,    93,    -1,   113,    92,   113,    93,    -1,    73,
     697     100,   113,    95,    47,   101,    -1,    73,   100,   113,    95,
     698      50,   101,    -1,    73,   100,   113,    95,    51,   101,    -1,
     699      73,   100,   113,    95,    53,   101,    -1,    73,   100,   113,
     700      95,    54,   101,    -1,    73,   100,   113,    95,   113,   101,
     701      -1,   115,   113,   117,    -1,   115,   113,    87,   113,   117,
     702      -1,   116,   113,    95,   113,   117,    -1,    -1,    78,   100,
     703     114,   113,   101,    -1,    79,   100,    -1,    74,   100,    -1,
     704     101,    -1,   113,    10,    -1,   113,     7,    -1,   113,    89,
     705     113,    -1,   113,    90,   113,    -1,   113,    91,   113,    -1,
     706     113,    94,   113,    -1,   113,    88,   113,    -1,   113,    97,
     707     113,    -1,   113,     9,   113,    -1,   113,     4,   113,    -1,
     708     113,     3,   113,    -1,   113,    98,   113,    -1,     8,   113,
     709      -1,    90,   113,    -1,   121,   128,    -1,   112,   128,    -1,
     710      70,    -1,   103,   113,   103,    -1,    55,   111,    -1,    56,
     711     111,    -1,    57,   111,    -1,    58,   111,    -1,   129,   111,
     712      92,   113,    93,    92,   113,    93,    -1,   129,   111,    -1,
     713     121,    95,   111,    -1,    16,   111,    -1,    67,    -1,   113,
     714      -1,   100,   113,    95,   112,   101,    -1,    70,    -1,   124,
     715      -1,   124,   100,   112,   101,    -1,   125,    -1,   125,    95,
     716     126,    -1,   125,    -1,   100,   126,   101,    -1,    87,    -1,
     717      22,    -1,    27,    -1,    15,    -1,    14,    -1,    88,   122,
     718      -1,    61,    67,    96,    -1,    61,    96,    -1,    59,    67,
     719      96,    -1,    60,   112,    -1,    62,   111,    -1,   134,    95,
     720     111,    -1,    64,   100,    55,   101,    -1,    64,   100,    56,
     721     101,    -1,    64,   100,    57,   101,    -1,    64,   100,    58,
     722     101,    -1,    64,   100,    17,   101,    -1,    64,   100,   129,
     723     101,    -1,    64,   100,    16,   101,    -1,    64,   100,   111,
     724     101,    -1,    64,   100,   111,    95,    55,   101,    -1,    64,
     725     100,   111,    95,    56,   101,    -1,    64,   100,   111,    95,
     726      57,   101,    -1,    64,   100,   111,    95,    58,   101,    -1,
     727      64,   100,   111,    95,    17,   101,    -1,    64,   100,   111,
     728      95,   129,   101,    -1,    64,   100,   111,    95,    16,   101,
     729      -1,    64,   100,   101,    -1,    17,    -1,   136,   111,   128,
     730     123,    95,   123,    95,   127,    -1,   136,   111,    -1,   136,
     731     111,   128,   111,    -1,   136,   111,   128,   111,    92,   112,
     732      93,    -1,    86,   122,    -1,    65,    -1,    33,    -1,   139,
     733     113,    -1,    66,   113,    -1,   112,    -1,    81,   100,   113,
     734     101,    68,    -1,    77,    68,    -1,    81,   100,   113,   101,
     735      75,    -1,    75,    -1,    76,    -1,    83,    67,    68,    -1,
     736      80,    67,    67,    67,    68,    -1,    16,   120,    68,    -1,
     737      72,    67,    68,    -1,    72,    67,    67,    68,    -1,    85,
     738     121,    -1,    85,   113,    -1,    84,   100,   112,   101,    -1,
     739      84,   100,   101,    -1
    739740};
    740741
     
    742743static const yytype_uint16 yyrline[] =
    743744{
    744        0,   317,   317,   319,   353,   354,   356,   358,   362,   367,
    745      369,   420,   421,   422,   423,   424,   425,   426,   427,   431,
    746      434,   435,   436,   437,   438,   439,   440,   441,   442,   445,
    747      452,   457,   461,   465,   469,   473,   487,   515,   539,   545,
    748      551,   555,   559,   563,   567,   571,   575,   579,   583,   587,
    749      591,   595,   599,   603,   607,   611,   615,   619,   623,   627,
    750      631,   637,   641,   645,   649,   653,   658,   662,   673,   676,
    751      677,   678,   682,   686,   690,   694,   698,   702,   706,   710,
    752      714,   731,   738,   737,   755,   763,   771,   780,   784,   788,
    753      792,   796,   800,   804,   808,   812,   816,   820,   824,   828,
    754      840,   847,   848,   867,   868,   880,   885,   890,   894,   898,
    755      932,   956,   977,   985,   989,   990,  1004,  1012,  1021,  1066,
    756     1067,  1076,  1077,  1083,  1090,  1091,  1092,  1100,  1105,  1110,
    757     1117,  1125,  1137,  1154,  1174,  1178,  1182,  1187,  1191,  1195,
    758     1199,  1203,  1208,  1214,  1220,  1226,  1232,  1238,  1244,  1256,
    759     1263,  1267,  1304,  1311,  1316,  1329,  1336,  1336,  1339,  1407,
    760     1411,  1440,  1453,  1470,  1479,  1484,  1492,  1504,  1523,  1533,
    761     1552,  1575,  1581,  1593,  1599
     745       0,   318,   318,   320,   354,   355,   357,   359,   363,   368,
     746     370,   421,   422,   423,   424,   425,   426,   427,   428,   432,
     747     435,   436,   437,   438,   439,   440,   441,   442,   443,   446,
     748     453,   458,   462,   466,   470,   474,   488,   516,   540,   546,
     749     552,   556,   560,   564,   568,   572,   576,   580,   584,   588,
     750     592,   596,   600,   604,   608,   612,   616,   620,   624,   628,
     751     632,   638,   642,   646,   650,   654,   659,   663,   674,   677,
     752     678,   679,   683,   687,   691,   695,   699,   703,   707,   711,
     753     715,   732,   739,   738,   756,   764,   772,   781,   785,   789,
     754     793,   797,   801,   805,   809,   813,   817,   821,   825,   829,
     755     841,   848,   849,   868,   869,   881,   886,   891,   895,   899,
     756     936,   960,   981,   989,   993,   994,  1008,  1016,  1025,  1070,
     757    1071,  1080,  1081,  1087,  1094,  1095,  1096,  1097,  1105,  1110,
     758    1115,  1122,  1130,  1142,  1159,  1179,  1183,  1187,  1192,  1196,
     759    1200,  1204,  1208,  1213,  1219,  1225,  1231,  1237,  1243,  1249,
     760    1261,  1268,  1272,  1309,  1316,  1321,  1334,  1341,  1341,  1344,
     761    1412,  1416,  1445,  1458,  1475,  1484,  1489,  1497,  1509,  1528,
     762    1538,  1557,  1580,  1586,  1598,  1604
    762763};
    763764#endif
     
    772773  "GRING_CMD", "BIGINTMAT_CMD", "INTMAT_CMD", "PROC_CMD", "RING_CMD",
    773774  "BEGIN_RING", "BUCKET_CMD", "IDEAL_CMD", "MAP_CMD", "MATRIX_CMD",
    774   "MODUL_CMD", "NUMBER_CMD", "POLY_CMD", "RESOLUTION_CMD", "VECTOR_CMD",
    775   "BETTI_CMD", "E_CMD", "FETCH_CMD", "FREEMODULE_CMD", "KEEPRING_CMD",
    776   "IMAP_CMD", "KOSZUL_CMD", "MAXID_CMD", "MONOM_CMD", "PAR_CMD",
    777   "PREIMAGE_CMD", "VAR_CMD", "VALTVARS", "VMAXDEG", "VMAXMULT", "VNOETHER",
    778   "VMINPOLY", "END_RING", "CMD_1", "CMD_2", "CMD_3", "CMD_12", "CMD_13",
    779   "CMD_23", "CMD_123", "CMD_M", "ROOT_DECL", "ROOT_DECL_LIST", "RING_DECL",
    780   "RING_DECL_LIST", "EXAMPLE_CMD", "EXPORT_CMD", "HELP_CMD", "KILL_CMD",
    781   "LIB_CMD", "LISTVAR_CMD", "SETRING_CMD", "TYPE_CMD", "STRINGTOK",
    782   "BLOCKTOK", "INT_CONST", "UNKNOWN_IDENT", "RINGVAR", "PROC_DEF", "APPLY",
    783   "ASSUME_CMD", "BREAK_CMD", "CONTINUE_CMD", "ELSE_CMD", "EVAL", "QUOTE",
    784   "FOR_CMD", "IF_CMD", "SYS_BREAK", "WHILE_CMD", "RETURN", "PARAMETER",
    785   "SYSVAR", "'='", "'<'", "'+'", "'-'", "'/'", "'['", "']'", "'^'", "','",
    786   "';'", "'&'", "':'", "UMINUS", "'('", "')'", "'.'", "'`'", "$accept",
    787   "lines", "pprompt", "flowctrl", "example_dummy", "command", "assign",
    788   "elemexpr", "exprlist", "expr", "$@1", "quote_start", "assume_start",
    789   "quote_end", "expr_arithmetic", "left_value", "extendedid",
    790   "declare_ip_variable", "stringexpr", "rlist", "ordername", "orderelem",
    791   "OrderingList", "ordering", "cmdeq", "mat_cmd", "filecmd", "helpcmd",
    792   "examplecmd", "exportcmd", "killcmd", "listcmd", "ringcmd1", "ringcmd",
    793   "scriptcmd", "setrings", "setringcmd", "typecmd", "ifcmd", "whilecmd",
    794   "forcmd", "proccmd", "parametercmd", "returncmd", 0
     775  "MODUL_CMD", "NUMBER_CMD", "POLY_CMD", "RESOLUTION_CMD", "SMATRIX_CMD",
     776  "VECTOR_CMD", "BETTI_CMD", "E_CMD", "FETCH_CMD", "FREEMODULE_CMD",
     777  "KEEPRING_CMD", "IMAP_CMD", "KOSZUL_CMD", "MAXID_CMD", "MONOM_CMD",
     778  "PAR_CMD", "PREIMAGE_CMD", "VAR_CMD", "VALTVARS", "VMAXDEG", "VMAXMULT",
     779  "VNOETHER", "VMINPOLY", "END_RING", "CMD_1", "CMD_2", "CMD_3", "CMD_12",
     780  "CMD_13", "CMD_23", "CMD_123", "CMD_M", "ROOT_DECL", "ROOT_DECL_LIST",
     781  "RING_DECL", "RING_DECL_LIST", "EXAMPLE_CMD", "EXPORT_CMD", "HELP_CMD",
     782  "KILL_CMD", "LIB_CMD", "LISTVAR_CMD", "SETRING_CMD", "TYPE_CMD",
     783  "STRINGTOK", "BLOCKTOK", "INT_CONST", "UNKNOWN_IDENT", "RINGVAR",
     784  "PROC_DEF", "APPLY", "ASSUME_CMD", "BREAK_CMD", "CONTINUE_CMD",
     785  "ELSE_CMD", "EVAL", "QUOTE", "FOR_CMD", "IF_CMD", "SYS_BREAK",
     786  "WHILE_CMD", "RETURN", "PARAMETER", "SYSVAR", "'='", "'<'", "'+'", "'-'",
     787  "'/'", "'['", "']'", "'^'", "','", "';'", "'&'", "':'", "UMINUS", "'('",
     788  "')'", "'.'", "'`'", "$accept", "lines", "pprompt", "flowctrl",
     789  "example_dummy", "command", "assign", "elemexpr", "exprlist", "expr",
     790  "$@1", "quote_start", "assume_start", "quote_end", "expr_arithmetic",
     791  "left_value", "extendedid", "declare_ip_variable", "stringexpr", "rlist",
     792  "ordername", "orderelem", "OrderingList", "ordering", "cmdeq", "mat_cmd",
     793  "filecmd", "helpcmd", "examplecmd", "exportcmd", "killcmd", "listcmd",
     794  "ringcmd1", "ringcmd", "scriptcmd", "setrings", "setringcmd", "typecmd",
     795  "ifcmd", "whilecmd", "forcmd", "proccmd", "parametercmd", "returncmd", 0
    795796};
    796797#endif
     
    809810     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
    810811     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
    811      335,   336,   337,   338,   339,   340,    61,    60,    43,    45,
    812       47,    91,    93,    94,    44,    59,    38,    58,   341,    40,
    813       41,    46,    96
     812     335,   336,   337,   338,   339,   340,   341,    61,    60,    43,
     813      45,    47,    91,    93,    94,    44,    59,    38,    58,   342,
     814      40,    41,    46,    96
    814815};
    815816# endif
     
    818819static const yytype_uint8 yyr1[] =
    819820{
    820        0,   103,   104,   104,   105,   105,   105,   105,   105,   105,
    821      105,   106,   106,   106,   106,   106,   106,   106,   106,   107,
    822      108,   108,   108,   108,   108,   108,   108,   108,   108,   109,
    823      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
    824      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
    825      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
    826      110,   110,   110,   110,   110,   110,   110,   111,   111,   112,
    827      112,   112,   112,   112,   112,   112,   112,   112,   112,   112,
    828      112,   112,   113,   112,   114,   115,   116,   117,   117,   117,
    829      117,   117,   117,   117,   117,   117,   117,   117,   117,   117,
    830      117,   118,   118,   119,   119,   120,   120,   120,   120,   120,
    831      120,   120,   120,   121,   122,   122,   123,   124,   124,   125,
    832      125,   126,   126,   127,   128,   128,   128,   129,   130,   130,
    833      131,   132,   133,   133,   134,   134,   134,   134,   134,   134,
    834      134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
    835      135,   136,   136,   136,   136,   137,   138,   138,   139,   140,
    836      140,   141,   141,   141,   141,   141,   142,   143,   144,   144,
    837      144,   145,   145,   146,   146
     821       0,   104,   105,   105,   106,   106,   106,   106,   106,   106,
     822     106,   107,   107,   107,   107,   107,   107,   107,   107,   108,
     823     109,   109,   109,   109,   109,   109,   109,   109,   109,   110,
     824     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
     825     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
     826     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
     827     111,   111,   111,   111,   111,   111,   111,   112,   112,   113,
     828     113,   113,   113,   113,   113,   113,   113,   113,   113,   113,
     829     113,   113,   114,   113,   115,   116,   117,   118,   118,   118,
     830     118,   118,   118,   118,   118,   118,   118,   118,   118,   118,
     831     118,   119,   119,   120,   120,   121,   121,   121,   121,   121,
     832     121,   121,   121,   122,   123,   123,   124,   125,   125,   126,
     833     126,   127,   127,   128,   129,   129,   129,   129,   130,   131,
     834     131,   132,   133,   134,   134,   135,   135,   135,   135,   135,
     835     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
     836     135,   136,   137,   137,   137,   137,   138,   139,   139,   140,
     837     141,   141,   142,   142,   142,   142,   142,   143,   144,   145,
     838     145,   145,   146,   146,   147,   147
    838839};
    839840
     
    853854       2,     2,     2,     1,     3,     2,     2,     2,     2,     8,
    854855       2,     3,     2,     1,     1,     5,     1,     1,     4,     1,
    855        3,     1,     3,     1,     1,     1,     1,     2,     3,     2,
    856        3,     2,     2,     3,     4,     4,     4,     4,     4,     4,
    857        4,     4,     6,     6,     6,     6,     6,     6,     6,     3,
    858        1,     8,     2,     4,     7,     2,     1,     1,     2,     2,
    859        1,     5,     2,     5,     1,     1,     3,     5,     3,     3,
    860        4,     2,     2,     4,     3
     856       3,     1,     3,     1,     1,     1,     1,     1,     2,     3,
     857       2,     3,     2,     2,     3,     4,     4,     4,     4,     4,
     858       4,     4,     4,     6,     6,     6,     6,     6,     6,     6,
     859       3,     1,     8,     2,     4,     7,     2,     1,     1,     2,
     860       2,     1,     5,     2,     5,     1,     1,     3,     5,     3,
     861       3,     4,     2,     2,     4,     3
    861862};
    862863
     
    866867static const yytype_uint8 yydefact[] =
    867868{
    868        2,     0,     1,     0,     0,   126,   125,     0,   150,   124,
    869      157,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    870        0,     0,     0,     0,     0,     0,     0,     0,   156,     0,
    871      113,    37,   103,    30,     0,     0,     0,   164,   165,     0,
    872        0,     0,     0,     0,     8,     0,     0,     0,    38,     0,
    873        0,     0,     9,     0,     0,     3,     4,    13,     0,    20,
    874       70,   160,    68,     0,     0,    69,     0,    31,     0,    39,
    875        0,    16,    17,    18,    21,    22,    23,     0,    25,    26,
    876        0,    27,    28,    11,    12,    14,    15,    24,     7,    10,
    877        0,     0,     0,     0,     0,     0,    38,    99,     0,     0,
    878       70,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    879        0,     0,     0,    70,     0,    70,     0,    70,     0,    70,
    880        0,    19,   131,     0,   129,    70,     0,   159,     0,     0,
    881       85,   162,    82,    84,     0,     0,     0,     0,     0,   172,
    882      171,   155,   127,   100,     0,     0,     0,     5,     0,     0,
    883      123,     0,   102,     0,     0,    88,     0,    87,     0,     0,
    884        0,     0,     0,     0,     0,     0,     0,     0,     0,    29,
    885        0,     0,     6,   101,     0,    70,     0,    70,   158,     0,
    886        0,     0,     0,     0,     0,    68,   168,     0,   114,     0,
    887        0,     0,     0,     0,     0,     0,     0,    59,     0,    68,
    888       43,     0,    68,    46,     0,   130,   128,     0,     0,     0,
    889        0,     0,     0,   149,    70,     0,     0,   169,     0,     0,
    890        0,     0,   166,   174,     0,    36,    66,   104,    32,    34,
    891        0,    67,    97,    96,    95,    93,    89,    90,    91,     0,
    892       92,    94,    98,    33,     0,    86,    79,     0,    65,    70,
    893        0,     0,    70,     0,     0,     0,     0,     0,     0,     0,
    894       40,    68,    64,     0,    47,     0,     0,     0,    48,     0,
    895       49,     0,     0,    50,    60,    41,    42,    44,    45,   140,
    896      138,   134,   135,   136,   137,     0,   141,   139,   170,     0,
    897        0,     0,     0,   173,    35,    72,     0,     0,     0,     0,
    898       62,     0,    70,   114,     0,    42,    45,     0,     0,     0,
     869       2,     0,     1,     0,     0,   127,   126,     0,   151,   124,
     870     125,   158,     0,     0,     0,     0,     0,     0,     0,     0,
     871       0,     0,     0,     0,     0,     0,     0,     0,     0,   157,
     872       0,   113,    37,   103,    30,     0,     0,     0,   165,   166,
     873       0,     0,     0,     0,     0,     8,     0,     0,     0,    38,
     874       0,     0,     0,     9,     0,     0,     3,     4,    13,     0,
     875      20,    70,   161,    68,     0,     0,    69,     0,    31,     0,
     876      39,     0,    16,    17,    18,    21,    22,    23,     0,    25,
     877      26,     0,    27,    28,    11,    12,    14,    15,    24,     7,
     878      10,     0,     0,     0,     0,     0,     0,    38,    99,     0,
     879       0,    70,     0,    31,     0,     0,     0,     0,     0,     0,
     880       0,     0,     0,     0,    70,     0,    70,     0,    70,     0,
     881      70,     0,    19,   132,     0,   130,    70,     0,   160,     0,
     882       0,    85,   163,    82,    84,     0,     0,     0,     0,     0,
     883     173,   172,   156,   128,   100,     0,     0,     0,     5,     0,
     884       0,   123,     0,   102,     0,     0,    88,     0,    87,     0,
    899885       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    900        0,     0,     0,     0,     0,     0,     0,     0,    83,   167,
    901      161,   163,     0,    80,    81,     0,     0,     0,     0,     0,
    902        0,    51,     0,    52,     0,     0,    53,     0,    54,   148,
    903      146,   142,   143,   144,   145,   147,    73,    74,    75,    76,
    904       77,    78,    71,     0,     0,     0,     0,   115,   116,     0,
    905      117,   121,     0,     0,     0,     0,     0,     0,     0,   154,
    906        0,   119,     0,     0,    63,    55,    56,    57,    58,    61,
    907      109,   151,     0,   122,     0,   120,   118
     886      29,     0,     0,     6,   101,     0,    70,     0,    70,   159,
     887       0,     0,     0,     0,     0,     0,    68,   169,     0,   114,
     888       0,     0,     0,     0,     0,     0,     0,     0,    59,     0,
     889      68,    43,     0,    68,    46,     0,   131,   129,     0,     0,
     890       0,     0,     0,     0,   150,    70,     0,     0,   170,     0,
     891       0,     0,     0,   167,   175,     0,    36,    66,   104,    32,
     892      34,     0,    67,    97,    96,    95,    93,    89,    90,    91,
     893       0,    92,    94,    98,    33,     0,    86,    79,     0,    65,
     894      70,     0,     0,    70,     0,     0,     0,     0,     0,     0,
     895       0,    40,    68,    64,     0,    47,     0,     0,     0,    48,
     896       0,    49,     0,     0,    50,    60,    41,    42,    44,    45,
     897     141,   139,   135,   136,   137,   138,     0,   142,   140,   171,
     898       0,     0,     0,     0,   174,    35,    72,     0,     0,     0,
     899       0,    62,     0,    70,   114,     0,    42,    45,     0,     0,
     900       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     901       0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
     902     168,   162,   164,     0,    80,    81,     0,     0,     0,     0,
     903       0,     0,    51,     0,    52,     0,     0,    53,     0,    54,
     904     149,   147,   143,   144,   145,   146,   148,    73,    74,    75,
     905      76,    77,    78,    71,     0,     0,     0,     0,   115,   116,
     906       0,   117,   121,     0,     0,     0,     0,     0,     0,     0,
     907     155,     0,   119,     0,     0,    63,    55,    56,    57,    58,
     908      61,   109,   152,     0,   122,     0,   120,   118
    908909};
    909910
     
    911912static const yytype_int16 yydefgoto[] =
    912913{
    913       -1,     1,    55,    56,    57,    58,    59,    60,   145,    62,
    914      219,    63,    64,   246,    65,    66,    67,    68,    69,   189,
    915      370,   371,   382,   372,   152,    98,    71,    72,    73,    74,
    916       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    917       85,    86,    87,    88
     914      -1,     1,    56,    57,    58,    59,    60,    61,   146,    63,
     915     220,    64,    65,   247,    66,    67,    68,    69,    70,   190,
     916     371,   372,   383,   373,   153,    99,    72,    73,    74,    75,
     917      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
     918      86,    87,    88,    89
    918919};
    919920
    920921/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    921922   STATE-NUM.  */
    922 #define YYPACT_NINF -366
     923#define YYPACT_NINF -364
    923924static const yytype_int16 yypact[] =
    924925{
    925     -366,   393,  -366,   -80,  1897,  -366,  -366,  1963,   -68,  -366,
    926     -366,   -46,   -29,   -16,   -14,     2,    21,    24,    39,  2029,
    927     2095,  2161,  2227,     0,  1897,   -52,  1897,    47,  -366,  1897,
    928     -366,  -366,  -366,  -366,   -47,    50,    78,  -366,  -366,   -28,
    929       93,    95,    -9,    99,  -366,    32,   101,  2293,   137,   137,
    930     1897,  1897,  -366,  1897,  1897,  -366,  -366,  -366,   113,  -366,
    931       15,   -70,  1384,  1897,  1897,  -366,  1897,   201,   -77,  -366,
    932     2359,  -366,  -366,  -366,  -366,   126,  -366,  1897,  -366,  -366,
    933     1897,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    934      133,   -68,   135,   142,   144,   158,  -366,    54,   161,  1897,
    935      236,  1384,    -7,  2425,  1897,  1897,  1897,  1897,  1897,  1897,
    936     1897,  1501,  1897,   282,  1567,   305,  1897,   395,  1633,  1327,
    937      130,  -366,   170,   173,  -366,    67,  1699,  1384,    59,  1897,
    938     -366,  -366,  -366,  -366,   205,  1897,   215,  1765,  1963,  1384,
    939      193,  -366,  -366,    54,   -72,   -60,   149,  -366,  1897,  1831,
    940     -366,  1897,  -366,  1897,  1897,  -366,  1897,  -366,  1897,  1897,
    941     1897,  1897,  1897,  1897,  1897,  1897,  1897,   212,   564,   170,
    942      222,  1897,  -366,  -366,  1897,   224,  1897,   107,  1384,  1897,
    943     1897,  1567,  1897,  1633,  1897,   579,  -366,  1897,   594,   210,
    944      689,   704,   719,     3,   165,   734,   409,  -366,   -59,   749,
    945     -366,   -58,   764,  -366,   -45,  -366,  -366,    44,    65,    71,
    946      111,   118,   124,  -366,    22,   131,   244,  -366,   859,  1897,
    947      229,   874,  -366,  -366,   -42,  -366,  -366,  -366,  -366,  -366,
    948      -32,  1384,    18,   260,   260,  1413,    49,    49,    54,   424,
    949       66,  1399,    49,  -366,  1897,  -366,  -366,  1897,  -366,  1342,
    950      519,  1897,   186,  2425,   579,   749,   -31,   764,   -23,   519,
    951     -366,   889,  -366,  2425,  -366,  1897,  1897,  1897,  -366,  1897,
    952     -366,  1897,  1897,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    953     -366,  -366,  -366,  -366,  -366,   381,  -366,  -366,  -366,  2491,
    954      904,   250,   -37,  -366,  -366,  -366,  1897,   919,   919,  1897,
    955     -366,   934,   184,  1384,   213,  -366,  -366,  1897,   235,  1029,
    956     1044,  1059,  1074,   534,   549,   220,   232,   234,   243,   246,
    957      252,   254,   174,   226,   228,   238,   240,  1089,  -366,  -366,
    958     -366,  -366,  1104,  -366,  -366,  1199,   253,  1897,  2425,   -20,
    959      -61,  -366,  1897,  -366,  1897,  1897,  -366,  1897,  -366,  -366,
    960     -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    961     -366,  -366,  -366,  1897,  1897,   -10,   262,  -366,  -366,   289,
    962      261,  -366,   259,  1214,  1229,  1244,  1259,  1274,  1369,  -366,
    963      -61,   268,   264,  1897,  -366,  -366,  -366,  -366,  -366,  -366,
    964     -366,  -366,   289,  -366,   -13,  -366,  -366
     926    -364,   345,  -364,   -88,  1861,  -364,  -364,  1928,   -74,  -364,
     927    -364,  -364,   -50,   -47,   -35,   -26,   -19,   -14,     5,     9,
     928    1995,  2062,  2129,  2196,   -28,  1861,   -63,  1861,    13,  -364,
     929    1861,  -364,  -364,  -364,  -364,   -39,    24,    26,  -364,  -364,
     930     -27,    44,    46,    34,    48,  -364,    86,    73,  2263,   101,
     931     101,  1861,  1861,  -364,  1861,  1861,  -364,  -364,  -364,    82,
     932    -364,    16,   -77,  1328,  1861,  1861,  -364,  1861,   186,   -81,
     933    -364,  2330,  -364,  -364,  -364,  -364,   106,  -364,  1861,  -364,
     934    -364,  1861,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,
     935    -364,   107,   -74,   109,   112,   114,   122,  -364,    10,   127,
     936    1861,   156,  1328,    -9,  2397,  1861,  1861,  1861,  1861,  1861,
     937    1861,  1861,  1459,  1861,   185,  1526,   553,  1861,   568,  1593,
     938     583,   134,  -364,   142,   154,  -364,    27,  1660,  1328,     2,
     939    1861,  -364,  -364,  -364,  -364,   188,  1861,   190,  1727,  1928,
     940    1328,   174,  -364,  -364,    10,   -84,   -59,    68,  -364,  1861,
     941    1794,  -364,  1861,  -364,  1861,  1861,  -364,  1861,  -364,  1861,
     942    1861,  1861,  1861,  1861,  1861,  1861,  1861,  1861,   222,   609,
     943     142,   203,  1861,  -364,  -364,  1861,   128,  1861,    76,  1328,
     944    1861,  1861,  1526,  1861,  1593,  1861,   250,  -364,  1861,   632,
     945     191,   647,   662,   677,   372,   440,   705,   468,  -364,   -58,
     946     773,  -364,   -41,   801,  -364,   -38,  -364,  -364,   -17,    94,
     947     103,   116,   118,   140,  -364,    20,   147,   220,  -364,   816,
     948    1861,   223,   831,  -364,  -364,   -37,  -364,  -364,  -364,  -364,
     949    -364,   -34,  1328,   144,  1368,  1368,  1433,     6,     6,    10,
     950     483,    15,  1343,     6,  -364,  1861,  -364,  -364,  1861,  -364,
     951     595,   498,  1861,    45,  2397,   250,   773,   -33,   801,   -13,
     952     498,  -364,   846,  -364,  2397,  -364,  1861,  1861,  1861,  -364,
     953    1861,  -364,  1861,  1861,  -364,  -364,  -364,  -364,  -364,  -364,
     954    -364,  -364,  -364,  -364,  -364,  -364,   497,  -364,  -364,  -364,
     955    2464,   869,   226,   -56,  -364,  -364,  -364,  1861,   942,   942,
     956    1861,  -364,   965,   182,  1328,   201,  -364,  -364,  1861,   204,
     957     980,   995,  1010,  1038,   513,   536,   202,   205,   207,   216,
     958     217,   227,   228,   161,   163,   165,   167,   175,  1106,  -364,
     959    -364,  -364,  -364,  1134,  -364,  -364,  1149,   210,  1861,  2397,
     960     -10,   -65,  -364,  1861,  -364,  1861,  1861,  -364,  1861,  -364,
     961    -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,
     962    -364,  -364,  -364,  -364,  1861,  1861,   -72,   209,  -364,  -364,
     963     235,   221,  -364,   229,  1164,  1179,  1202,  1275,  1298,  1313,
     964    -364,   -65,   232,   230,  1861,  -364,  -364,  -364,  -364,  -364,
     965    -364,  -364,  -364,   235,  -364,    74,  -364,  -364
    965966};
    966967
     
    968969static const yytype_int16 yypgoto[] =
    969970{
    970     -366,  -366,  -366,  -366,  -366,  -366,  -366,   207,    -1,    25,
    971     -366,  -366,  -366,   -49,  -366,  -366,   358,   319,   293,  -252,
    972     -366,  -365,   -21,    -6,   -65,     1,  -366,  -366,  -366,  -366,
    973     -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    974     -366,  -366,  -366,  -366
     971    -364,  -364,  -364,  -364,  -364,  -364,  -364,    72,    -1,    25,
     972    -364,  -364,  -364,   -15,  -364,  -364,   325,   285,   251,  -220,
     973    -364,  -363,   -57,   -46,   -68,     1,  -364,  -364,  -364,  -364,
     974    -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,
     975    -364,  -364,  -364,  -364
    975976};
    976977
     
    979980   number is the opposite.  If zero, do what YYDEFACT says.
    980981   If YYTABLE_NINF, syntax error.  */
    981 #define YYTABLE_NINF -154
     982#define YYTABLE_NINF -155
    982983static const yytype_int16 yytable[] =
    983984{
    984       61,   304,    70,   173,   381,   170,   153,   154,   368,   150,
    985      155,   308,   156,   157,   123,    89,   150,   171,   172,   128,
    986      225,  -154,   151,   122,   151,   155,   148,   381,   157,    97,
    987      330,   103,   101,   148,   151,   151,   151,   331,   369,   131,
    988      226,   274,   276,   124,   101,   101,   101,   101,    70,   151,
    989      144,   101,   151,   104,   127,   278,   155,   134,   293,   157,
    990      186,   155,   151,   151,   157,   169,   120,   121,   294,   305,
    991      105,   151,   139,   155,   151,   143,   157,   306,   148,   146,
    992      367,   151,   379,   106,   151,   107,   366,   396,   167,   168,
    993      158,   159,   160,   161,   162,   101,   163,   267,   136,   164,
    994      165,   108,   101,   268,   166,   178,   159,   160,   161,   162,
    995      198,   163,   253,   201,   149,   165,   285,   204,   148,   166,
    996      109,   149,   286,   110,   185,   216,   217,   215,   188,   190,
    997      191,   192,   193,   194,   195,   196,   224,   199,   111,   161,
    998      162,   202,   163,   179,   279,   162,   126,   163,   230,   129,
    999      166,   101,   153,   154,   218,   166,   155,   162,   156,   157,
    1000      221,  -132,  -132,   101,   103,   280,   149,   166,   153,   154,
    1001      180,   281,   155,   101,   156,   157,   231,   130,   232,   233,
    1002      256,   234,   258,   235,   236,   237,   238,   239,   240,   241,
    1003      242,   101,   132,   150,   133,   148,   101,   148,   135,   250,
    1004      137,   101,  -152,    30,   254,   255,   149,   257,   147,   259,
    1005      181,   282,   261,   170,   100,   153,   154,   182,   283,   155,
    1006      176,   156,   157,   183,   284,   205,   113,   115,   117,   119,
    1007      184,   287,   179,   125,   180,   148,   158,   159,   160,   161,
    1008      162,   181,   163,   182,   290,   164,   165,   148,   333,   334,
    1009      166,   227,   158,   159,   160,   161,   162,   183,   163,   269,
    1010      184,   164,   165,   153,   151,   270,   166,   155,   206,   297,
    1011      157,   220,   298,   104,   356,   337,   301,   175,   303,  -153,
    1012     -133,  -133,   222,   149,   177,   149,   321,   171,   303,   248,
    1013      309,   310,   311,   148,   312,   291,   313,   314,   244,   158,
    1014      159,   160,   161,   162,   263,   163,   339,   338,   164,   165,
    1015     -110,   288,   245,   166,   327,   251,   148,   329,  -110,  -110,
    1016      349,   332,  -112,   149,   335,   107,   357,   108,   358,   340,
    1017     -112,  -112,   350,   214,   351,   149,   365,   110,   359,   111,
    1018      360,   141,   142,   352,   364,   100,   353,   158,   159,   160,
    1019      161,   162,   354,   163,   355,   228,   380,   165,   368,   384,
    1020      383,   166,   392,   303,   393,   102,   140,   373,  -105,   374,
    1021      375,   395,   376,   243,   391,     0,  -105,  -105,   249,     0,
    1022        0,   149,   394,   252,     0,     0,     0,     0,   377,   378,
    1023        0,  -106,     0,     2,     3,     5,     6,   315,   316,  -106,
    1024     -106,     4,     0,     9,   149,     0,   148,     5,     6,     7,
    1025        8,     0,   153,   154,     0,     9,   155,     0,   156,   157,
    1026        0,     0,     0,     0,     0,    10,     0,   153,   154,     0,
    1027        0,   155,     0,   156,   157,   317,   318,   319,   320,    11,
     985      62,   174,    71,   171,   124,   369,   151,   382,    90,   226,
     986     151,   152,   331,   156,   172,   173,   158,   156,   152,   332,
     987     158,   380,   156,   152,   123,   158,   104,   149,   129,    98,
     988     382,   149,   102,   125,   305,   370,   152,   152,   149,   121,
     989     122,   132,   227,   275,   309,   102,   102,   102,   102,    71,
     990     105,   145,   102,   106,   152,   128,   149,   152,   152,   187,
     991     277,   152,   152,   279,   294,   107,   170,   295,   306,   217,
     992     218,   154,   155,   140,   108,   156,   144,   157,   158,   101,
     993     147,   109,   152,   180,   280,   152,   110,   149,   307,   168,
     994     169,   368,   114,   116,   118,   120,   102,   162,   163,   126,
     995     164,   135,   163,   102,   164,   111,   179,   163,   167,   112,
     996     254,   199,   167,   127,   202,   286,   150,   167,   205,   367,
     997     150,   287,  -133,  -133,   130,   186,   131,   150,   216,   189,
     998     191,   192,   193,   194,   195,   196,   197,   225,   200,   149,
     999    -134,  -134,   203,   176,   133,   150,   134,  -155,   136,   231,
     1000     178,   156,   102,   137,   158,   219,   159,   160,   161,   162,
     1001     163,   222,   164,   151,   102,   165,   166,   149,    31,   152,
     1002     167,   228,  -153,   138,   102,   397,   150,   232,   148,   233,
     1003     234,   257,   235,   259,   236,   237,   238,   239,   240,   241,
     1004     242,   243,   102,   149,   104,   281,   149,   102,   171,   215,
     1005     251,   177,   102,   181,   282,   255,   256,   180,   258,   181,
     1006     260,   101,   182,   262,   183,  -110,   182,   283,   183,   284,
     1007     252,   229,   184,  -110,  -110,   154,   155,   185,   150,   156,
     1008     206,   157,   158,   160,   161,   162,   163,   152,   164,   244,
     1009     184,   285,   166,  -112,   250,   291,   167,   185,   288,   253,
     1010     207,  -112,  -112,   154,   155,   221,   150,   156,   223,   157,
     1011     158,   105,   357,   108,   358,   109,   359,   111,   360,   172,
     1012     298,   249,  -105,   299,   338,   112,   361,   302,  -154,   304,
     1013    -105,  -105,   150,   334,   335,   150,   264,   322,   289,   304,
     1014     292,   310,   311,   312,   330,   313,   339,   314,   315,   341,
     1015     142,   143,   365,   350,   381,   369,   351,   340,   352,   245,
     1016     159,   160,   161,   162,   163,   328,   164,   353,   354,   165,
     1017     166,   384,   333,   246,   167,   336,   303,   393,   355,   356,
     1018     385,   394,   103,   141,     0,   392,   396,   366,   159,   160,
     1019     161,   162,   163,     0,   164,     2,     3,   165,   166,     0,
     1020       0,   261,   167,     4,     0,     0,     0,     0,     0,     5,
     1021       6,     7,     8,     0,   304,     0,     0,     9,   374,     0,
     1022     375,   376,    10,   377,     0,   154,   155,     0,    11,   156,
     1023       0,   157,   158,   395,     0,     0,     0,     0,     0,   378,
     1024     379,     0,    12,    13,    14,    15,    16,    17,    18,    19,
     1025      20,    21,    22,    23,    24,    25,    26,    27,     0,    28,
     1026      29,    30,    31,     0,    32,    33,    34,    35,    36,    37,
     1027      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
     1028      48,    49,     0,    50,     0,    51,     0,    52,     0,     0,
     1029       0,    53,     0,   154,   155,    54,     0,   156,    55,   157,
     1030     158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1031     159,   160,   161,   162,   163,     0,   164,   268,     0,   165,
     1032     166,   154,   155,   269,   167,   156,     0,   157,   158,     0,
     1033       0,     0,     0,     0,     0,     0,   154,   155,     0,     0,
     1034     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1035       0,   154,   155,     0,     0,   156,     0,   157,   158,     0,
     1036       0,     5,     6,   316,   317,     0,   154,   155,     0,     9,
     1037     156,     0,   157,   158,    10,     0,     0,     0,   159,   160,
     1038     161,   162,   163,     0,   164,   270,     0,   165,   166,   154,
     1039     155,   271,   167,   156,     0,   157,   158,     0,     0,     0,
     1040       0,     0,   318,   319,   320,   321,   159,   160,   161,   162,
     1041     163,     0,   164,   273,   149,   165,   166,     0,     0,   274,
     1042     167,   159,   160,   161,   162,   163,   296,   164,   297,   149,
     1043     165,   166,     0,     0,     0,   167,   159,   160,   161,   162,
     1044     163,     0,   164,   300,   149,   165,   166,     0,     0,   301,
     1045     167,   159,   160,   161,   162,   163,   149,   164,   346,     0,
     1046     165,   166,   154,   155,   347,   167,   156,     0,   157,   158,
     1047       0,     0,     0,     0,   159,   160,   161,   162,   163,     0,
     1048     164,   348,     0,   165,   166,   154,   155,   349,   167,   156,
     1049    -106,   157,   158,     0,     0,     0,     0,     0,  -106,  -106,
     1050     154,   155,     0,   150,   156,  -107,   157,   158,     0,     0,
     1051       0,     0,     0,  -107,  -107,   154,   155,     0,   150,   156,
     1052    -108,   157,   158,     0,     0,     0,     0,     0,  -108,  -108,
     1053     154,   155,  -111,   150,   156,     0,   157,   158,     0,     0,
     1054    -111,  -111,     0,     0,     0,   150,     0,   159,   160,   161,
     1055     162,   163,     0,   164,   248,     0,   165,   166,   154,   155,
     1056       0,   167,   156,     0,   157,   158,     0,     0,     0,     0,
     1057     159,   160,   161,   162,   163,     0,   164,     0,     0,   165,
     1058     166,     0,     0,   263,   167,   159,   160,   161,   162,   163,
     1059       0,   164,     0,     0,   165,   166,     0,     0,   265,   167,
     1060     159,   160,   161,   162,   163,     0,   164,   266,     0,   165,
     1061     166,     0,     0,     0,   167,   159,   160,   161,   162,   163,
     1062       0,   164,   267,     0,   165,   166,   154,   155,     0,   167,
     1063     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1064       0,     0,     0,   159,   160,   161,   162,   163,     0,   164,
     1065     272,     0,   165,   166,   154,   155,     0,   167,   156,     0,
     1066     157,   158,     0,     0,     0,     0,     0,     0,     0,   154,
     1067     155,     0,     0,   156,     0,   157,   158,     0,     0,     0,
     1068       0,     0,     0,     0,   154,   155,     0,     0,   156,     0,
     1069     157,   158,     0,     0,     0,     0,     0,     0,     0,   154,
     1070     155,     0,     0,   156,     0,   157,   158,     0,     0,     0,
     1071       0,   159,   160,   161,   162,   163,     0,   164,     0,     0,
     1072     165,   166,   154,   155,   276,   167,   156,     0,   157,   158,
     1073       0,     0,     0,     0,     0,     0,     0,     0,     0,   159,
     1074     160,   161,   162,   163,     0,   164,     0,     0,   165,   166,
     1075       0,     0,   278,   167,   159,   160,   161,   162,   163,     0,
     1076     164,   290,     0,   165,   166,     0,     0,     0,   167,   159,
     1077     160,   161,   162,   163,     0,   164,     0,     0,   165,   166,
     1078       0,     0,   293,   167,   159,   160,   161,   162,   163,     0,
     1079     164,   308,     0,   165,   166,   154,   155,     0,   167,   156,
     1080       0,   157,   158,     0,     0,     0,     0,   159,   160,   161,
     1081     162,   163,     0,   164,     0,     0,   165,   166,   154,   155,
     1082     329,   167,   156,     0,   157,   158,     0,     0,     0,     0,
     1083       0,     0,     0,   154,   155,     0,     0,   156,     0,   157,
     1084     158,     0,     0,     0,     0,     0,     0,     0,   154,   155,
     1085       0,     0,   156,     0,   157,   158,     0,     0,     0,     0,
     1086       0,     0,     0,   154,   155,     0,     0,   156,     0,   157,
     1087     158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1088     159,   160,   161,   162,   163,     0,   164,     0,     0,   165,
     1089     166,   154,   155,   246,   167,   156,     0,   157,   158,     0,
     1090       0,     0,     0,   159,   160,   161,   162,   163,   337,   164,
     1091       0,     0,   165,   166,     0,     0,     0,   167,   159,   160,
     1092     161,   162,   163,     0,   164,     0,     0,   165,   166,     0,
     1093       0,   342,   167,   159,   160,   161,   162,   163,     0,   164,
     1094     343,     0,   165,   166,     0,     0,     0,   167,   159,   160,
     1095     161,   162,   163,     0,   164,     0,     0,   165,   166,   154,
     1096     155,   344,   167,   156,     0,   157,   158,     0,     0,     0,
     1097       0,     0,     0,     0,     0,     0,   159,   160,   161,   162,
     1098     163,     0,   164,   345,     0,   165,   166,   154,   155,     0,
     1099     167,   156,     0,   157,   158,     0,     0,     0,     0,     0,
     1100       0,     0,   154,   155,     0,     0,   156,     0,   157,   158,
     1101       0,     0,     0,     0,     0,     0,     0,   154,   155,     0,
     1102       0,   156,     0,   157,   158,     0,     0,     0,     0,     0,
     1103       0,     0,   154,   155,     0,     0,   156,     0,   157,   158,
     1104       0,     0,     0,     0,   159,   160,   161,   162,   163,     0,
     1105     164,     0,     0,   165,   166,   154,   155,   362,   167,   156,
     1106       0,   157,   158,     0,     0,     0,     0,     0,     0,     0,
     1107       0,     0,   159,   160,   161,   162,   163,   363,   164,     0,
     1108       0,   165,   166,     0,     0,     0,   167,   159,   160,   161,
     1109     162,   163,     0,   164,   364,     0,   165,   166,     0,     0,
     1110       0,   167,   159,   160,   161,   162,   163,     0,   164,     0,
     1111       0,   165,   166,     0,     0,   386,   167,   159,   160,   161,
     1112     162,   163,     0,   164,     0,     0,   165,   166,   154,   155,
     1113     387,   167,   156,     0,   157,   158,     0,     0,     0,     0,
     1114     159,   160,   161,   162,   163,     0,   164,     0,     0,   165,
     1115     166,   154,   155,   388,   167,   156,     0,   157,   158,     0,
     1116       0,     0,     0,     0,     0,     0,   154,   155,     0,     0,
     1117     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1118       0,   154,   155,     0,     0,   156,     0,   157,   158,     0,
     1119       0,     0,     0,     0,     0,     0,   154,   155,     0,     0,
     1120     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1121       0,     0,     0,   159,   160,   161,   162,   163,     0,   164,
     1122       0,   154,   165,   166,     0,   156,   389,   167,   158,     0,
     1123       0,     0,     0,     0,     0,     0,   159,   160,   161,   162,
     1124     163,     0,   164,     0,     0,   165,   166,     0,     0,   390,
     1125     167,   159,   160,   161,   162,   163,   391,   164,     0,     0,
     1126     165,   166,     0,     0,     0,   167,   159,   160,   161,   162,
     1127     163,     0,   164,     0,     0,   165,   166,     0,     0,     0,
     1128     167,   159,   160,   161,   162,   163,   154,   164,     0,     0,
     1129     156,   166,     0,   158,     0,   167,     0,     0,     0,     0,
     1130       0,     0,     0,     0,     0,     0,   159,   160,   161,   162,
     1131     163,     0,   164,     0,     0,     0,   166,     4,     0,     0,
     1132     167,     0,     0,     5,     6,    91,    92,     0,     0,     0,
     1133       0,     9,     0,     0,     0,     0,    10,     0,     0,     0,
     1134       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1135       0,     0,     0,     0,     0,     0,    12,    13,    14,    15,
     1136      16,    17,    18,    19,    93,    94,    95,    96,     0,     0,
     1137       0,     0,   160,   161,   162,   163,    31,   164,    32,    33,
     1138      34,   166,    36,    37,     4,   167,     0,    41,    42,     0,
     1139       5,     6,    91,    92,     0,    97,     0,     0,     9,    51,
     1140       0,    52,     0,    10,     0,     0,     0,     0,     0,    54,
     1141     198,     0,    55,     0,     0,     0,     0,     0,     0,     0,
     1142       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
     1143      19,    93,    94,    95,    96,     0,     0,     0,     0,     0,
     1144       0,     0,     0,    31,     0,    32,    33,    34,     0,    36,
     1145      37,     4,     0,     0,    41,    42,     0,     5,     6,    91,
     1146      92,     0,    97,     0,     0,     9,    51,     0,    52,     0,
     1147      10,     0,     0,     0,     0,     0,    54,   201,     0,    55,
     1148       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1149      12,    13,    14,    15,    16,    17,    18,    19,    93,    94,
     1150      95,    96,     0,     0,     0,     0,     0,     0,     0,     0,
     1151      31,     0,    32,    33,    34,     0,    36,    37,     4,     0,
     1152       0,    41,    42,     0,     5,     6,   208,   209,     0,    97,
     1153       0,     0,     9,    51,     0,    52,     0,    10,     0,     0,
     1154       0,     0,     0,    54,   204,     0,    55,     0,     0,     0,
     1155       0,     0,     0,     0,     0,     0,     0,    12,    13,    14,
     1156      15,    16,    17,    18,    19,   210,   211,   212,   213,     0,
     1157       0,     0,     0,     0,     0,     0,     0,    31,     0,    32,
     1158      33,    34,     0,    36,    37,     4,     0,     0,    41,    42,
     1159       0,     5,     6,    91,    92,     0,    97,     0,     0,     9,
     1160      51,     0,    52,     0,    10,     0,     0,     0,     0,     0,
     1161      54,   214,     0,    55,     0,     0,     0,     0,     0,     0,
     1162       0,     0,     0,     0,    12,    13,    14,    15,    16,    17,
     1163      18,    19,    93,    94,    95,    96,     0,     0,     0,     0,
     1164       0,     0,     0,     0,    31,     0,    32,    33,    34,     0,
     1165      36,    37,     4,     0,     0,    41,    42,     0,     5,     6,
     1166      91,    92,     0,    97,     0,     0,     9,    51,     0,    52,
     1167       0,    10,     0,     0,     0,     0,     0,    54,   224,     0,
     1168      55,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1169       0,    12,    13,    14,    15,    16,    17,    18,    19,    93,
     1170      94,    95,    96,     0,     0,     0,     0,     0,     0,     0,
     1171       0,    31,     0,    32,    33,    34,     0,    36,    37,     4,
     1172       0,     0,    41,    42,     0,     5,     6,    91,    92,     0,
     1173      97,     0,     0,     9,    51,     0,    52,     0,    10,     0,
     1174       0,     0,     0,     0,    54,   230,     0,    55,     0,     0,
     1175       0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
     1176      14,    15,    16,    17,    18,    19,    93,    94,    95,    96,
     1177       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
     1178      32,    33,    34,     0,    36,    37,     4,     0,     0,    41,
     1179      42,     0,     5,     6,    91,    92,     0,    97,     0,     0,
     1180       9,    51,     0,    52,     0,    10,     0,     0,     0,     0,
     1181       0,    54,     0,     0,    55,     0,     0,     0,     0,     0,
     1182       0,     0,     0,     0,     0,    12,    13,    14,    15,    16,
     1183      17,    18,    19,    93,    94,    95,    96,     0,     0,     0,
     1184       0,     0,     0,     0,     0,    31,     0,    32,    33,    34,
     1185       0,    36,    37,     4,     0,     0,    41,    42,     0,     5,
     1186       6,    91,    92,     0,    97,     0,     0,     9,    51,     0,
     1187      52,     0,    10,     0,     0,     0,     0,     0,   100,     0,
     1188       0,    55,     0,     0,     0,     0,     0,     0,     0,     0,
     1189       0,     0,    12,    13,    14,    15,    16,    17,    18,    19,
     1190      93,    94,    95,    96,     0,     0,     0,     0,     0,     0,
     1191       0,     0,    31,     0,    32,    33,    34,     0,    36,    37,
     1192       4,     0,     0,    41,    42,     0,     5,     6,    91,    92,
     1193       0,    97,     0,     0,     9,    51,     0,    52,     0,    10,
     1194       0,     0,     0,     0,     0,   113,     0,     0,    55,     0,
     1195       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
     1196      13,    14,    15,    16,    17,    18,    19,    93,    94,    95,
     1197      96,     0,     0,     0,     0,     0,     0,     0,     0,    31,
     1198       0,    32,    33,    34,     0,    36,    37,     4,     0,     0,
     1199      41,    42,     0,     5,     6,    91,    92,     0,    97,     0,
     1200       0,     9,    51,     0,    52,     0,    10,     0,     0,     0,
     1201       0,     0,   115,     0,     0,    55,     0,     0,     0,     0,
     1202       0,     0,     0,     0,     0,     0,    12,    13,    14,    15,
     1203      16,    17,    18,    19,    93,    94,    95,    96,     0,     0,
     1204       0,     0,     0,     0,     0,     0,    31,     0,    32,    33,
     1205      34,     0,    36,    37,     4,     0,     0,    41,    42,     0,
     1206       5,     6,    91,    92,     0,    97,     0,     0,     9,    51,
     1207       0,    52,     0,    10,     0,     0,     0,     0,     0,   117,
     1208       0,     0,    55,     0,     0,     0,     0,     0,     0,     0,
     1209       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
     1210      19,    93,    94,    95,    96,     0,     0,     0,     0,     0,
     1211       0,     0,     0,    31,     0,    32,    33,    34,     0,    36,
     1212      37,     4,     0,     0,    41,    42,     0,     5,     6,   139,
     1213      92,     0,    97,     0,     0,     9,    51,     0,    52,     0,
     1214      10,     0,     0,     0,     0,     0,   119,     0,     0,    55,
     1215       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    10281216      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    1029       22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
    1030      302,    31,    32,    33,    34,    35,    36,    37,    38,    39,
    1031       40,    41,    42,    43,    44,    45,    46,    47,    48,     0,
    1032       49,  -107,    50,     0,    51,     0,     0,     0,    52,  -107,
    1033     -107,     0,    53,     0,   149,    54,   158,   159,   160,   161,
    1034      162,     0,   163,   272,     0,   164,   165,     0,     0,   273,
    1035      166,   158,   159,   160,   161,   162,   295,   163,   296,     0,
    1036      164,   165,   153,   154,     0,   166,   155,     0,   156,   157,
    1037        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1038        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1039        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1040        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1041        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1042        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1043        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1044        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1045      162,     0,   163,   299,     0,   164,   165,     0,     0,   300,
    1046      166,   158,   159,   160,   161,   162,     0,   163,   345,     0,
    1047      164,   165,     0,     0,   346,   166,   158,   159,   160,   161,
    1048      162,     0,   163,   347,     0,   164,   165,     0,     0,   348,
    1049      166,   158,   159,   160,   161,   162,     0,   163,   247,     0,
    1050      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1051      162,     0,   163,     0,     0,   164,   165,     0,     0,   260,
    1052      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1053      164,   165,   153,   154,   262,   166,   155,     0,   156,   157,
    1054        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1055        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1056        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1057        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1058        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1059        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1060        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1061        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1062      162,     0,   163,     0,     0,   164,   165,     0,     0,   264,
    1063      166,   158,   159,   160,   161,   162,     0,   163,   265,     0,
    1064      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1065      162,     0,   163,   266,     0,   164,   165,     0,     0,     0,
    1066      166,   158,   159,   160,   161,   162,     0,   163,   271,     0,
    1067      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1068      162,     0,   163,     0,     0,   164,   165,     0,     0,   275,
    1069      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1070      164,   165,   153,   154,   277,   166,   155,     0,   156,   157,
    1071        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1072        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1073        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1074        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1075        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1076        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1077        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1078        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1079      162,     0,   163,   289,     0,   164,   165,     0,     0,     0,
    1080      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1081      164,   165,     0,     0,   292,   166,   158,   159,   160,   161,
    1082      162,     0,   163,   307,     0,   164,   165,     0,     0,     0,
    1083      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1084      164,   165,     0,     0,   328,   166,   158,   159,   160,   161,
    1085      162,     0,   163,     0,     0,   164,   165,     0,     0,   245,
    1086      166,   158,   159,   160,   161,   162,   336,   163,     0,     0,
    1087      164,   165,   153,   154,     0,   166,   155,     0,   156,   157,
    1088        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1089        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1090        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1091        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1092        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1093        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1094        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1095        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1096      162,     0,   163,     0,     0,   164,   165,     0,     0,   341,
    1097      166,   158,   159,   160,   161,   162,     0,   163,   342,     0,
    1098      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1099      162,     0,   163,     0,     0,   164,   165,     0,     0,   343,
    1100      166,   158,   159,   160,   161,   162,     0,   163,   344,     0,
    1101      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1102      162,     0,   163,     0,     0,   164,   165,     0,     0,   361,
    1103      166,   158,   159,   160,   161,   162,   362,   163,     0,     0,
    1104      164,   165,   153,   154,     0,   166,   155,     0,   156,   157,
    1105        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1106        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1107        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1108        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1109        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1110        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1111        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1112        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1113      162,     0,   163,   363,     0,   164,   165,     0,     0,     0,
    1114      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1115      164,   165,     0,     0,   385,   166,   158,   159,   160,   161,
    1116      162,     0,   163,     0,     0,   164,   165,     0,     0,   386,
    1117      166,   158,   159,   160,   161,   162,     0,   163,   148,     0,
    1118      164,   165,     0,     0,   387,   166,   158,   159,   160,   161,
    1119      162,     0,   163,   148,     0,   164,   165,     0,     0,   388,
    1120      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1121      164,   165,   153,   154,   389,   166,   155,     0,   156,   157,
    1122        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1123        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1124        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1125        0,     0,     0,  -108,     0,     0,   153,     0,     0,     0,
    1126      155,  -108,  -108,   157,     0,     0,   149,     0,  -111,     0,
    1127        0,     0,     0,     0,     0,     0,  -111,  -111,     0,     0,
    1128        0,   149,     0,     0,     0,     0,     0,     0,     0,     0,
    1129        0,     0,     0,     0,     0,     0,   158,   159,   160,   161,
    1130      162,   390,   163,     0,     0,   164,   165,     0,     0,     0,
    1131      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1132      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1133      162,     0,   163,     0,     0,     0,   165,     0,     0,     0,
    1134      166,   159,   160,   161,   162,     0,   163,     0,     0,     4,
    1135      165,     0,     0,     0,   166,     5,     6,    90,    91,     0,
    1136        0,     0,     0,     9,     0,     0,     0,     0,     0,     0,
    1137        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1138        0,     0,     0,     0,     0,     0,     0,    11,    12,    13,
    1139       14,    15,    16,    17,    18,    92,    93,    94,    95,     0,
    1140        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1141       32,    33,     0,    35,    36,     4,     0,     0,    40,    41,
    1142        0,     5,     6,    90,    91,     0,    96,     0,     0,     9,
    1143       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1144       53,   197,     0,    54,     0,     0,     0,     0,     0,     0,
    1145        0,     0,     0,    11,    12,    13,    14,    15,    16,    17,
    1146       18,    92,    93,    94,    95,     0,     0,     0,     0,     0,
    1147        0,     0,     0,    30,     0,    31,    32,    33,     0,    35,
    1148       36,     4,     0,     0,    40,    41,     0,     5,     6,    90,
    1149       91,     0,    96,     0,     0,     9,    50,     0,    51,     0,
    1150        0,     0,     0,     0,     0,     0,    53,   200,     0,    54,
    1151        0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
    1152       12,    13,    14,    15,    16,    17,    18,    92,    93,    94,
    1153       95,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1154        0,    31,    32,    33,     0,    35,    36,     4,     0,     0,
    1155       40,    41,     0,     5,     6,   207,   208,     0,    96,     0,
    1156        0,     9,    50,     0,    51,     0,     0,     0,     0,     0,
    1157        0,     0,    53,   203,     0,    54,     0,     0,     0,     0,
    1158        0,     0,     0,     0,     0,    11,    12,    13,    14,    15,
    1159       16,    17,    18,   209,   210,   211,   212,     0,     0,     0,
    1160        0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
    1161        0,    35,    36,     4,     0,     0,    40,    41,     0,     5,
    1162        6,    90,    91,     0,    96,     0,     0,     9,    50,     0,
    1163       51,     0,     0,     0,     0,     0,     0,     0,    53,   213,
    1164        0,    54,     0,     0,     0,     0,     0,     0,     0,     0,
    1165        0,    11,    12,    13,    14,    15,    16,    17,    18,    92,
    1166       93,    94,    95,     0,     0,     0,     0,     0,     0,     0,
    1167        0,    30,     0,    31,    32,    33,     0,    35,    36,     4,
    1168        0,     0,    40,    41,     0,     5,     6,    90,    91,     0,
    1169       96,     0,     0,     9,    50,     0,    51,     0,     0,     0,
    1170        0,     0,     0,     0,    53,   223,     0,    54,     0,     0,
    1171        0,     0,     0,     0,     0,     0,     0,    11,    12,    13,
    1172       14,    15,    16,    17,    18,    92,    93,    94,    95,     0,
    1173        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1174       32,    33,     0,    35,    36,     4,     0,     0,    40,    41,
    1175        0,     5,     6,    90,    91,     0,    96,     0,     0,     9,
    1176       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1177       53,   229,     0,    54,     0,     0,     0,     0,     0,     0,
    1178        0,     0,     0,    11,    12,    13,    14,    15,    16,    17,
    1179       18,    92,    93,    94,    95,     0,     0,     0,     0,     0,
    1180        0,     0,     0,    30,     0,    31,    32,    33,     0,    35,
    1181       36,     4,     0,     0,    40,    41,     0,     5,     6,    90,
    1182       91,     0,    96,     0,     0,     9,    50,     0,    51,     0,
    1183        0,     0,     0,     0,     0,     0,    53,     0,     0,    54,
    1184        0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
    1185       12,    13,    14,    15,    16,    17,    18,    92,    93,    94,
    1186       95,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1187        0,    31,    32,    33,     0,    35,    36,     4,     0,     0,
    1188       40,    41,     0,     5,     6,    90,    91,     0,    96,     0,
    1189        0,     9,    50,     0,    51,     0,     0,     0,     0,     0,
    1190        0,     0,    99,     0,     0,    54,     0,     0,     0,     0,
    1191        0,     0,     0,     0,     0,    11,    12,    13,    14,    15,
    1192       16,    17,    18,    92,    93,    94,    95,     0,     0,     0,
    1193        0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
    1194        0,    35,    36,     4,     0,     0,    40,    41,     0,     5,
    1195        6,    90,    91,     0,    96,     0,     0,     9,    50,     0,
    1196       51,     0,     0,     0,     0,     0,     0,     0,   112,     0,
    1197        0,    54,     0,     0,     0,     0,     0,     0,     0,     0,
    1198        0,    11,    12,    13,    14,    15,    16,    17,    18,    92,
    1199       93,    94,    95,     0,     0,     0,     0,     0,     0,     0,
    1200        0,    30,     0,    31,    32,    33,     0,    35,    36,     4,
    1201        0,     0,    40,    41,     0,     5,     6,    90,    91,     0,
    1202       96,     0,     0,     9,    50,     0,    51,     0,     0,     0,
    1203        0,     0,     0,     0,   114,     0,     0,    54,     0,     0,
    1204        0,     0,     0,     0,     0,     0,     0,    11,    12,    13,
    1205       14,    15,    16,    17,    18,    92,    93,    94,    95,     0,
    1206        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1207       32,    33,     0,    35,    36,     4,     0,     0,    40,    41,
    1208        0,     5,     6,    90,    91,     0,    96,     0,     0,     9,
    1209       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1210      116,     0,     0,    54,     0,     0,     0,     0,     0,     0,
    1211        0,     0,     0,    11,    12,    13,    14,    15,    16,    17,
    1212       18,    92,    93,    94,    95,     0,     0,     0,     0,     0,
    1213        0,     0,     0,    30,     0,    31,    32,    33,     0,    35,
    1214       36,     4,     0,     0,    40,    41,     0,     5,     6,   138,
    1215       91,     0,    96,     0,     0,     9,    50,     0,    51,     0,
    1216        0,     0,     0,     0,     0,     0,   118,     0,     0,    54,
    1217        0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
    1218       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    1219       22,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1220        0,    31,    32,    33,     0,    35,    36,     4,     0,     0,
    1221       40,    41,     0,     5,     6,    90,    91,     0,    96,     0,
    1222        0,     9,    50,     0,    51,     0,     0,     0,     0,     0,
    1223        0,     0,    53,     0,     0,    54,     0,     0,     0,     0,
    1224        0,     0,     0,     0,     0,    11,    12,    13,    14,    15,
    1225       16,    17,    18,    92,    93,    94,    95,     0,     0,     0,
    1226        0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
    1227        0,    35,    36,     4,     0,     0,    40,    41,     0,     5,
    1228        6,    90,    91,     0,    96,     0,     0,     9,    50,     0,
    1229       51,     0,     0,     0,     0,     0,     0,     0,   174,     0,
    1230        0,    54,     0,     0,     0,     0,     0,     0,     0,     0,
    1231        0,    11,    12,    13,    14,    15,    16,    17,    18,    92,
    1232       93,    94,    95,     0,     0,     0,     0,     0,     0,     0,
    1233        0,    30,     0,    31,    32,    33,     0,    35,    36,     4,
    1234        0,     0,    40,    41,     0,     5,     6,    90,    91,     0,
    1235       96,     0,     0,     9,    50,     0,    51,     0,     0,     0,
    1236        0,     0,     0,     0,   187,     0,     0,    54,     0,     0,
    1237        0,     0,     0,     0,     0,     0,     0,   322,    12,    13,
    1238      323,   324,    16,   325,   326,    92,    93,    94,    95,     0,
    1239        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1240       32,    33,     0,    35,    36,     0,     0,     0,    40,    41,
    1241        0,     0,     0,     0,     0,     0,    96,     0,     0,     0,
    1242       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1243       53,     0,     0,    54
     1217      22,    23,     0,     0,     0,     0,     0,     0,     0,     0,
     1218      31,     0,    32,    33,    34,     0,    36,    37,     4,     0,
     1219       0,    41,    42,     0,     5,     6,    91,    92,     0,    97,
     1220       0,     0,     9,    51,     0,    52,     0,    10,     0,     0,
     1221       0,     0,     0,    54,     0,     0,    55,     0,     0,     0,
     1222       0,     0,     0,     0,     0,     0,     0,    12,    13,    14,
     1223      15,    16,    17,    18,    19,    93,    94,    95,    96,     0,
     1224       0,     0,     0,     0,     0,     0,     0,    31,     0,    32,
     1225      33,    34,     0,    36,    37,     4,     0,     0,    41,    42,
     1226       0,     5,     6,    91,    92,     0,    97,     0,     0,     9,
     1227      51,     0,    52,     0,    10,     0,     0,     0,     0,     0,
     1228     175,     0,     0,    55,     0,     0,     0,     0,     0,     0,
     1229       0,     0,     0,     0,    12,    13,    14,    15,    16,    17,
     1230      18,    19,    93,    94,    95,    96,     0,     0,     0,     0,
     1231       0,     0,     0,     0,    31,     0,    32,    33,    34,     0,
     1232      36,    37,     4,     0,     0,    41,    42,     0,     5,     6,
     1233      91,    92,     0,    97,     0,     0,     9,    51,     0,    52,
     1234       0,    10,     0,     0,     0,     0,     0,   188,     0,     0,
     1235      55,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1236       0,   323,    13,    14,   324,   325,    17,   326,   327,    93,
     1237      94,    95,    96,     0,     0,     0,     0,     0,     0,     0,
     1238       0,    31,     0,    32,    33,    34,     0,    36,    37,     0,
     1239       0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
     1240      97,     0,     0,     0,    51,     0,    52,     0,     0,     0,
     1241       0,     0,     0,     0,    54,     0,     0,    55
    12441242};
    12451243
    12461244static const yytype_int16 yycheck[] =
    12471245{
    1248        1,   253,     1,    68,   369,    12,     3,     4,    69,    86,
    1249        7,   263,     9,    10,    66,    95,    86,    94,    95,    66,
    1250       92,     3,    94,    24,    94,     7,    11,   392,    10,     4,
    1251       67,    99,     7,    11,    94,    94,    94,    74,    99,    67,
    1252      100,   100,   100,    95,    19,    20,    21,    22,    47,    94,
    1253       51,    26,    94,    99,    29,   100,     7,    66,   100,    10,
    1254       67,     7,    94,    94,    10,    66,    66,    67,   100,   100,
    1255       99,    94,    47,     7,    94,    50,    10,   100,    11,    54,
    1256      100,    94,    92,    99,    94,    99,   338,   100,    63,    64,
    1257       87,    88,    89,    90,    91,    70,    93,    94,    66,    96,
    1258       97,    99,    77,   100,   101,    80,    88,    89,    90,    91,
    1259      111,    93,   177,   114,    99,    97,    94,   118,    11,   101,
    1260       99,    99,   100,    99,    99,    66,    67,   126,   103,   104,
    1261      105,   106,   107,   108,   109,   110,   137,   112,    99,    90,
    1262       91,   116,    93,    99,   100,    91,    99,    93,   149,    99,
    1263      101,   126,     3,     4,   129,   101,     7,    91,     9,    10,
    1264      135,    94,    95,   138,    99,   100,    99,   101,     3,     4,
    1265       99,   100,     7,   148,     9,    10,   151,    99,   153,   154,
    1266      181,   156,   183,   158,   159,   160,   161,   162,   163,   164,
    1267      165,   166,    99,    86,    99,    11,   171,    11,    99,   174,
    1268       99,   176,    95,    66,   179,   180,    99,   182,    95,   184,
    1269       99,   100,   187,    12,     7,     3,     4,    99,   100,     7,
    1270       94,     9,    10,    99,   100,    95,    19,    20,    21,    22,
    1271       99,   100,    99,    26,    99,    11,    87,    88,    89,    90,
    1272       91,    99,    93,    99,   219,    96,    97,    11,   297,   298,
    1273      101,   102,    87,    88,    89,    90,    91,    99,    93,    94,
    1274       99,    96,    97,     3,    94,   100,   101,     7,    95,   244,
    1275       10,    66,   247,    99,   100,    91,   251,    70,   253,    95,
    1276       94,    95,    67,    99,    77,    99,   285,    94,   263,    67,
    1277      265,   266,   267,    11,   269,    66,   271,   272,    86,    87,
    1278       88,    89,    90,    91,    94,    93,   307,    94,    96,    97,
    1279       86,    67,   100,   101,   289,    91,    11,    67,    94,    95,
    1280      100,   296,    86,    99,   299,    99,   100,    99,   100,    94,
    1281       94,    95,   100,   126,   100,    99,   337,    99,   100,    99,
    1282      100,    48,    49,   100,    91,   138,   100,    87,    88,    89,
    1283       90,    91,   100,    93,   100,   148,    94,    97,    69,   100,
    1284       99,   101,    94,   338,   100,     7,    47,   342,    86,   344,
    1285      345,   392,   347,   166,   380,    -1,    94,    95,   171,    -1,
    1286       -1,    99,   383,   176,    -1,    -1,    -1,    -1,   363,   364,
    1287       -1,    86,    -1,     0,     1,    14,    15,    16,    17,    94,
    1288       95,     8,    -1,    22,    99,    -1,    11,    14,    15,    16,
    1289       17,    -1,     3,     4,    -1,    22,     7,    -1,     9,    10,
    1290       -1,    -1,    -1,    -1,    -1,    32,    -1,     3,     4,    -1,
    1291       -1,     7,    -1,     9,    10,    54,    55,    56,    57,    46,
    1292       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1293       57,    58,    59,    60,    61,    -1,    63,    64,    65,    66,
    1294      253,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    1295       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
    1296       87,    86,    89,    -1,    91,    -1,    -1,    -1,    95,    94,
    1297       95,    -1,    99,    -1,    99,   102,    87,    88,    89,    90,
    1298       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,   100,
    1299      101,    87,    88,    89,    90,    91,    92,    93,    94,    -1,
    1300       96,    97,     3,     4,    -1,   101,     7,    -1,     9,    10,
    1301       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1302       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
     1246       1,    69,     1,    12,    67,    70,    87,   370,    96,    93,
     1247      87,    95,    68,     7,    95,    96,    10,     7,    95,    75,
     1248      10,    93,     7,    95,    25,    10,   100,    11,    67,     4,
     1249     393,    11,     7,    96,   254,   100,    95,    95,    11,    67,
     1250      68,    68,   101,   101,   264,    20,    21,    22,    23,    48,
     1251     100,    52,    27,   100,    95,    30,    11,    95,    95,    68,
     1252     101,    95,    95,   101,   101,   100,    67,   101,   101,    67,
     1253      68,     3,     4,    48,   100,     7,    51,     9,    10,     7,
     1254      55,   100,    95,   100,   101,    95,   100,    11,   101,    64,
     1255      65,   101,    20,    21,    22,    23,    71,    91,    92,    27,
     1256      94,    67,    92,    78,    94,   100,    81,    92,   102,   100,
     1257     178,   112,   102,   100,   115,    95,   100,   102,   119,   339,
     1258     100,   101,    95,    96,   100,   100,   100,   100,   127,   104,
     1259     105,   106,   107,   108,   109,   110,   111,   138,   113,    11,
     1260      95,    96,   117,    71,   100,   100,   100,     3,   100,   150,
     1261      78,     7,   127,    67,    10,   130,    88,    89,    90,    91,
     1262      92,   136,    94,    87,   139,    97,    98,    11,    67,    95,
     1263     102,   103,    96,   100,   149,   101,   100,   152,    96,   154,
     1264     155,   182,   157,   184,   159,   160,   161,   162,   163,   164,
     1265     165,   166,   167,    11,   100,   101,    11,   172,    12,   127,
     1266     175,    95,   177,   100,   101,   180,   181,   100,   183,   100,
     1267     185,   139,   100,   188,   100,    87,   100,   101,   100,   101,
     1268      92,   149,   100,    95,    96,     3,     4,   100,   100,     7,
     1269      96,     9,    10,    89,    90,    91,    92,    95,    94,   167,
     1270     100,   101,    98,    87,   172,   220,   102,   100,   101,   177,
     1271      96,    95,    96,     3,     4,    67,   100,     7,    68,     9,
     1272      10,   100,   101,   100,   101,   100,   101,   100,   101,    95,
     1273     245,    68,    87,   248,    92,   100,   101,   252,    96,   254,
     1274      95,    96,   100,   298,   299,   100,    95,   286,    68,   264,
     1275      67,   266,   267,   268,    68,   270,    95,   272,   273,    95,
     1276      49,    50,    92,   101,    95,    70,   101,   308,   101,    87,
     1277      88,    89,    90,    91,    92,   290,    94,   101,   101,    97,
     1278      98,   100,   297,   101,   102,   300,   254,    95,   101,   101,
     1279     101,   101,     7,    48,    -1,   381,   393,   338,    88,    89,
     1280      90,    91,    92,    -1,    94,     0,     1,    97,    98,    -1,
     1281      -1,   101,   102,     8,    -1,    -1,    -1,    -1,    -1,    14,
     1282      15,    16,    17,    -1,   339,    -1,    -1,    22,   343,    -1,
     1283     345,   346,    27,   348,    -1,     3,     4,    -1,    33,     7,
     1284      -1,     9,    10,   384,    -1,    -1,    -1,    -1,    -1,   364,
     1285     365,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
     1286      55,    56,    57,    58,    59,    60,    61,    62,    -1,    64,
     1287      65,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
     1288      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
     1289      85,    86,    -1,    88,    -1,    90,    -1,    92,    -1,    -1,
     1290      -1,    96,    -1,     3,     4,   100,    -1,     7,   103,     9,
     1291      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1292      88,    89,    90,    91,    92,    -1,    94,    95,    -1,    97,
     1293      98,     3,     4,   101,   102,     7,    -1,     9,    10,    -1,
     1294      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
     1295       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1296      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
     1297      -1,    14,    15,    16,    17,    -1,     3,     4,    -1,    22,
     1298       7,    -1,     9,    10,    27,    -1,    -1,    -1,    88,    89,
     1299      90,    91,    92,    -1,    94,    95,    -1,    97,    98,     3,
     1300       4,   101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,
     1301      -1,    -1,    55,    56,    57,    58,    88,    89,    90,    91,
     1302      92,    -1,    94,    95,    11,    97,    98,    -1,    -1,   101,
     1303     102,    88,    89,    90,    91,    92,    93,    94,    95,    11,
     1304      97,    98,    -1,    -1,    -1,   102,    88,    89,    90,    91,
     1305      92,    -1,    94,    95,    11,    97,    98,    -1,    -1,   101,
     1306     102,    88,    89,    90,    91,    92,    11,    94,    95,    -1,
     1307      97,    98,     3,     4,   101,   102,     7,    -1,     9,    10,
     1308      -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,
     1309      94,    95,    -1,    97,    98,     3,     4,   101,   102,     7,
     1310      87,     9,    10,    -1,    -1,    -1,    -1,    -1,    95,    96,
     1311       3,     4,    -1,   100,     7,    87,     9,    10,    -1,    -1,
     1312      -1,    -1,    -1,    95,    96,     3,     4,    -1,   100,     7,
     1313      87,     9,    10,    -1,    -1,    -1,    -1,    -1,    95,    96,
     1314       3,     4,    87,   100,     7,    -1,     9,    10,    -1,    -1,
     1315      95,    96,    -1,    -1,    -1,   100,    -1,    88,    89,    90,
     1316      91,    92,    -1,    94,    95,    -1,    97,    98,     3,     4,
     1317      -1,   102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1318      88,    89,    90,    91,    92,    -1,    94,    -1,    -1,    97,
     1319      98,    -1,    -1,   101,   102,    88,    89,    90,    91,    92,
     1320      -1,    94,    -1,    -1,    97,    98,    -1,    -1,   101,   102,
     1321      88,    89,    90,    91,    92,    -1,    94,    95,    -1,    97,
     1322      98,    -1,    -1,    -1,   102,    88,    89,    90,    91,    92,
     1323      -1,    94,    95,    -1,    97,    98,     3,     4,    -1,   102,
     1324       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1325      -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
     1326      95,    -1,    97,    98,     3,     4,    -1,   102,     7,    -1,
     1327       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     1328       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,
     1329      -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,
     1330       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     1331       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,
     1332      -1,    88,    89,    90,    91,    92,    -1,    94,    -1,    -1,
     1333      97,    98,     3,     4,   101,   102,     7,    -1,     9,    10,
     1334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
     1335      89,    90,    91,    92,    -1,    94,    -1,    -1,    97,    98,
     1336      -1,    -1,   101,   102,    88,    89,    90,    91,    92,    -1,
     1337      94,    95,    -1,    97,    98,    -1,    -1,    -1,   102,    88,
     1338      89,    90,    91,    92,    -1,    94,    -1,    -1,    97,    98,
     1339      -1,    -1,   101,   102,    88,    89,    90,    91,    92,    -1,
     1340      94,    95,    -1,    97,    98,     3,     4,    -1,   102,     7,
     1341      -1,     9,    10,    -1,    -1,    -1,    -1,    88,    89,    90,
     1342      91,    92,    -1,    94,    -1,    -1,    97,    98,     3,     4,
     1343     101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1344      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
     1345      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
     1346      -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1347      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
     1348      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1349      88,    89,    90,    91,    92,    -1,    94,    -1,    -1,    97,
     1350      98,     3,     4,   101,   102,     7,    -1,     9,    10,    -1,
     1351      -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
     1352      -1,    -1,    97,    98,    -1,    -1,    -1,   102,    88,    89,
     1353      90,    91,    92,    -1,    94,    -1,    -1,    97,    98,    -1,
     1354      -1,   101,   102,    88,    89,    90,    91,    92,    -1,    94,
     1355      95,    -1,    97,    98,    -1,    -1,    -1,   102,    88,    89,
     1356      90,    91,    92,    -1,    94,    -1,    -1,    97,    98,     3,
     1357       4,   101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,
     1358      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
     1359      92,    -1,    94,    95,    -1,    97,    98,     3,     4,    -1,
     1360     102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    13031361      -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    13041362      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    13051363      -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    13061364      -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1307       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1308       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1309       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,   100,
    1310      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1311       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1312       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,   100,
    1313      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1314       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1315       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1316      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1317       96,    97,     3,     4,   100,   101,     7,    -1,     9,    10,
    1318       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1319       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1320       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1321       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1322       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1323       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1324       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1325       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1326       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1327      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1328       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1329       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1330      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1331       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1332       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1333      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1334       96,    97,     3,     4,   100,   101,     7,    -1,     9,    10,
    1335       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1336       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1337       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1338       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1339       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1340       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1341       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1342       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1343       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1344      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1345       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1346       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1347      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1348       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1349       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1350      101,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
    1351       96,    97,     3,     4,    -1,   101,     7,    -1,     9,    10,
    1352       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1353       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1354       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1355       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1356       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1357       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1358       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1359       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1360       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1361      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1362       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1363       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1364      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1365       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1366       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1367      101,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
    1368       96,    97,     3,     4,    -1,   101,     7,    -1,     9,    10,
    1369       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1370       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1371       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1372       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1373       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1374       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1375       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1376       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1377       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1378      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1379       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1380       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1381      101,    87,    88,    89,    90,    91,    -1,    93,    11,    -1,
    1382       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1383       91,    -1,    93,    11,    -1,    96,    97,    -1,    -1,   100,
    1384      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1385       96,    97,     3,     4,   100,   101,     7,    -1,     9,    10,
    1386       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1387       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1388       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1389       -1,    -1,    -1,    86,    -1,    -1,     3,    -1,    -1,    -1,
    1390        7,    94,    95,    10,    -1,    -1,    99,    -1,    86,    -1,
    1391       -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    -1,    -1,
    1392       -1,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1393       -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,
    1394       91,    92,    93,    -1,    -1,    96,    97,    -1,    -1,    -1,
    1395      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1396       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1397       91,    -1,    93,    -1,    -1,    -1,    97,    -1,    -1,    -1,
    1398      101,    88,    89,    90,    91,    -1,    93,    -1,    -1,     8,
    1399       97,    -1,    -1,    -1,   101,    14,    15,    16,    17,    -1,
    1400       -1,    -1,    -1,    22,    -1,    -1,    -1,    -1,    -1,    -1,
     1365      -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,
     1366      94,    -1,    -1,    97,    98,     3,     4,   101,   102,     7,
     1367      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1368      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
     1369      -1,    97,    98,    -1,    -1,    -1,   102,    88,    89,    90,
     1370      91,    92,    -1,    94,    95,    -1,    97,    98,    -1,    -1,
     1371      -1,   102,    88,    89,    90,    91,    92,    -1,    94,    -1,
     1372      -1,    97,    98,    -1,    -1,   101,   102,    88,    89,    90,
     1373      91,    92,    -1,    94,    -1,    -1,    97,    98,     3,     4,
     1374     101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1375      88,    89,    90,    91,    92,    -1,    94,    -1,    -1,    97,
     1376      98,     3,     4,   101,   102,     7,    -1,     9,    10,    -1,
     1377      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
     1378       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1379      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
     1380      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
     1381       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1382      -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
     1383      -1,     3,    97,    98,    -1,     7,   101,   102,    10,    -1,
     1384      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
     1385      92,    -1,    94,    -1,    -1,    97,    98,    -1,    -1,   101,
     1386     102,    88,    89,    90,    91,    92,    93,    94,    -1,    -1,
     1387      97,    98,    -1,    -1,    -1,   102,    88,    89,    90,    91,
     1388      92,    -1,    94,    -1,    -1,    97,    98,    -1,    -1,    -1,
     1389     102,    88,    89,    90,    91,    92,     3,    94,    -1,    -1,
     1390       7,    98,    -1,    10,    -1,   102,    -1,    -1,    -1,    -1,
     1391      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
     1392      92,    -1,    94,    -1,    -1,    -1,    98,     8,    -1,    -1,
     1393     102,    -1,    -1,    14,    15,    16,    17,    -1,    -1,    -1,
     1394      -1,    22,    -1,    -1,    -1,    -1,    27,    -1,    -1,    -1,
    14011395      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1403       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1404       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1405       69,    70,    -1,    72,    73,     8,    -1,    -1,    77,    78,
    1406       -1,    14,    15,    16,    17,    -1,    85,    -1,    -1,    22,
    1407       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1408       99,   100,    -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,
    1409       -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    1410       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    -1,
    1411       -1,    -1,    -1,    66,    -1,    68,    69,    70,    -1,    72,
    1412       73,     8,    -1,    -1,    77,    78,    -1,    14,    15,    16,
    1413       17,    -1,    85,    -1,    -1,    22,    89,    -1,    91,    -1,
    1414       -1,    -1,    -1,    -1,    -1,    -1,    99,   100,    -1,   102,
    1415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
     1396      -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,
     1397      51,    52,    53,    54,    55,    56,    57,    58,    -1,    -1,
     1398      -1,    -1,    89,    90,    91,    92,    67,    94,    69,    70,
     1399      71,    98,    73,    74,     8,   102,    -1,    78,    79,    -1,
     1400      14,    15,    16,    17,    -1,    86,    -1,    -1,    22,    90,
     1401      -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,   100,
     1402     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1403      -1,    -1,    -1,    47,    48,    49,    50,    51,    52,    53,
     1404      54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,
     1405      -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,    73,
     1406      74,     8,    -1,    -1,    78,    79,    -1,    14,    15,    16,
     1407      17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,    -1,
     1408      27,    -1,    -1,    -1,    -1,    -1,   100,   101,    -1,   103,
     1409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    14161410      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1417       57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    1418       -1,    68,    69,    70,    -1,    72,    73,     8,    -1,    -1,
    1419       77,    78,    -1,    14,    15,    16,    17,    -1,    85,    -1,
    1420       -1,    22,    89,    -1,    91,    -1,    -1,    -1,    -1,    -1,
    1421       -1,    -1,    99,   100,    -1,   102,    -1,    -1,    -1,    -1,
    1422       -1,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
    1423       51,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    1424       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    69,    70,
    1425       -1,    72,    73,     8,    -1,    -1,    77,    78,    -1,    14,
    1426       15,    16,    17,    -1,    85,    -1,    -1,    22,    89,    -1,
    1427       91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,   100,
    1428       -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1429       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1430       55,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1431       -1,    66,    -1,    68,    69,    70,    -1,    72,    73,     8,
    1432       -1,    -1,    77,    78,    -1,    14,    15,    16,    17,    -1,
    1433       85,    -1,    -1,    22,    89,    -1,    91,    -1,    -1,    -1,
    1434       -1,    -1,    -1,    -1,    99,   100,    -1,   102,    -1,    -1,
    1435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1436       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1437       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1438       69,    70,    -1,    72,    73,     8,    -1,    -1,    77,    78,
    1439       -1,    14,    15,    16,    17,    -1,    85,    -1,    -1,    22,
    1440       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1441       99,   100,    -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,
    1442       -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    1443       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    -1,
    1444       -1,    -1,    -1,    66,    -1,    68,    69,    70,    -1,    72,
    1445       73,     8,    -1,    -1,    77,    78,    -1,    14,    15,    16,
    1446       17,    -1,    85,    -1,    -1,    22,    89,    -1,    91,    -1,
    1447       -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,   102,
    1448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
     1411      57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1412      67,    -1,    69,    70,    71,    -1,    73,    74,     8,    -1,
     1413      -1,    78,    79,    -1,    14,    15,    16,    17,    -1,    86,
     1414      -1,    -1,    22,    90,    -1,    92,    -1,    27,    -1,    -1,
     1415      -1,    -1,    -1,   100,   101,    -1,   103,    -1,    -1,    -1,
     1416      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
     1417      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
     1418      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     1419      70,    71,    -1,    73,    74,     8,    -1,    -1,    78,    79,
     1420      -1,    14,    15,    16,    17,    -1,    86,    -1,    -1,    22,
     1421      90,    -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,
     1422     100,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     1423      -1,    -1,    -1,    -1,    47,    48,    49,    50,    51,    52,
     1424      53,    54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,
     1425      -1,    -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,
     1426      73,    74,     8,    -1,    -1,    78,    79,    -1,    14,    15,
     1427      16,    17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,
     1428      -1,    27,    -1,    -1,    -1,    -1,    -1,   100,   101,    -1,
     1429     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1430      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
     1431      56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1432      -1,    67,    -1,    69,    70,    71,    -1,    73,    74,     8,
     1433      -1,    -1,    78,    79,    -1,    14,    15,    16,    17,    -1,
     1434      86,    -1,    -1,    22,    90,    -1,    92,    -1,    27,    -1,
     1435      -1,    -1,    -1,    -1,   100,   101,    -1,   103,    -1,    -1,
     1436      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,
     1437      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
     1438      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     1439      69,    70,    71,    -1,    73,    74,     8,    -1,    -1,    78,
     1440      79,    -1,    14,    15,    16,    17,    -1,    86,    -1,    -1,
     1441      22,    90,    -1,    92,    -1,    27,    -1,    -1,    -1,    -1,
     1442      -1,   100,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     1443      -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,    51,
     1444      52,    53,    54,    55,    56,    57,    58,    -1,    -1,    -1,
     1445      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    70,    71,
     1446      -1,    73,    74,     8,    -1,    -1,    78,    79,    -1,    14,
     1447      15,    16,    17,    -1,    86,    -1,    -1,    22,    90,    -1,
     1448      92,    -1,    27,    -1,    -1,    -1,    -1,    -1,   100,    -1,
     1449      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1450      -1,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
     1451      55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
     1452      -1,    -1,    67,    -1,    69,    70,    71,    -1,    73,    74,
     1453       8,    -1,    -1,    78,    79,    -1,    14,    15,    16,    17,
     1454      -1,    86,    -1,    -1,    22,    90,    -1,    92,    -1,    27,
     1455      -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,    -1,
     1456      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
     1457      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
     1458      58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     1459      -1,    69,    70,    71,    -1,    73,    74,     8,    -1,    -1,
     1460      78,    79,    -1,    14,    15,    16,    17,    -1,    86,    -1,
     1461      -1,    22,    90,    -1,    92,    -1,    27,    -1,    -1,    -1,
     1462      -1,    -1,   100,    -1,    -1,   103,    -1,    -1,    -1,    -1,
     1463      -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,
     1464      51,    52,    53,    54,    55,    56,    57,    58,    -1,    -1,
     1465      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    70,
     1466      71,    -1,    73,    74,     8,    -1,    -1,    78,    79,    -1,
     1467      14,    15,    16,    17,    -1,    86,    -1,    -1,    22,    90,
     1468      -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,   100,
     1469      -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1470      -1,    -1,    -1,    47,    48,    49,    50,    51,    52,    53,
     1471      54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,
     1472      -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,    73,
     1473      74,     8,    -1,    -1,    78,    79,    -1,    14,    15,    16,
     1474      17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,    -1,
     1475      27,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,
     1476      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    14491477      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1450       57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    1451       -1,    68,    69,    70,    -1,    72,    73,     8,    -1,    -1,
    1452       77,    78,    -1,    14,    15,    16,    17,    -1,    85,    -1,
    1453       -1,    22,    89,    -1,    91,    -1,    -1,    -1,    -1,    -1,
    1454       -1,    -1,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
    1455       -1,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
    1456       51,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    1457       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    69,    70,
    1458       -1,    72,    73,     8,    -1,    -1,    77,    78,    -1,    14,
    1459       15,    16,    17,    -1,    85,    -1,    -1,    22,    89,    -1,
    1460       91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,
    1461       -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1462       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1463       55,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1464       -1,    66,    -1,    68,    69,    70,    -1,    72,    73,     8,
    1465       -1,    -1,    77,    78,    -1,    14,    15,    16,    17,    -1,
    1466       85,    -1,    -1,    22,    89,    -1,    91,    -1,    -1,    -1,
    1467       -1,    -1,    -1,    -1,    99,    -1,    -1,   102,    -1,    -1,
    1468       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1469       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1470       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1471       69,    70,    -1,    72,    73,     8,    -1,    -1,    77,    78,
    1472       -1,    14,    15,    16,    17,    -1,    85,    -1,    -1,    22,
    1473       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1474       99,    -1,    -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,
    1475       -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    1476       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    -1,
    1477       -1,    -1,    -1,    66,    -1,    68,    69,    70,    -1,    72,
    1478       73,     8,    -1,    -1,    77,    78,    -1,    14,    15,    16,
    1479       17,    -1,    85,    -1,    -1,    22,    89,    -1,    91,    -1,
    1480       -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,   102,
    1481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
    1482       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1483       57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    1484       -1,    68,    69,    70,    -1,    72,    73,     8,    -1,    -1,
    1485       77,    78,    -1,    14,    15,    16,    17,    -1,    85,    -1,
    1486       -1,    22,    89,    -1,    91,    -1,    -1,    -1,    -1,    -1,
    1487       -1,    -1,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
    1488       -1,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
    1489       51,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    1490       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    69,    70,
    1491       -1,    72,    73,     8,    -1,    -1,    77,    78,    -1,    14,
    1492       15,    16,    17,    -1,    85,    -1,    -1,    22,    89,    -1,
    1493       91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,
    1494       -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1495       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1496       55,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1497       -1,    66,    -1,    68,    69,    70,    -1,    72,    73,     8,
    1498       -1,    -1,    77,    78,    -1,    14,    15,    16,    17,    -1,
    1499       85,    -1,    -1,    22,    89,    -1,    91,    -1,    -1,    -1,
    1500       -1,    -1,    -1,    -1,    99,    -1,    -1,   102,    -1,    -1,
    1501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1502       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1503       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1504       69,    70,    -1,    72,    73,    -1,    -1,    -1,    77,    78,
    1505       -1,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,
    1506       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1507       99,    -1,    -1,   102
     1478      57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1479      67,    -1,    69,    70,    71,    -1,    73,    74,     8,    -1,
     1480      -1,    78,    79,    -1,    14,    15,    16,    17,    -1,    86,
     1481      -1,    -1,    22,    90,    -1,    92,    -1,    27,    -1,    -1,
     1482      -1,    -1,    -1,   100,    -1,    -1,   103,    -1,    -1,    -1,
     1483      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
     1484      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
     1485      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     1486      70,    71,    -1,    73,    74,     8,    -1,    -1,    78,    79,
     1487      -1,    14,    15,    16,    17,    -1,    86,    -1,    -1,    22,
     1488      90,    -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,
     1489     100,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     1490      -1,    -1,    -1,    -1,    47,    48,    49,    50,    51,    52,
     1491      53,    54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,
     1492      -1,    -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,
     1493      73,    74,     8,    -1,    -1,    78,    79,    -1,    14,    15,
     1494      16,    17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,
     1495      -1,    27,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
     1496     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1497      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
     1498      56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1499      -1,    67,    -1,    69,    70,    71,    -1,    73,    74,    -1,
     1500      -1,    -1,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,
     1501      86,    -1,    -1,    -1,    90,    -1,    92,    -1,    -1,    -1,
     1502      -1,    -1,    -1,    -1,   100,    -1,    -1,   103
    15081503};
    15091504
     
    15121507static const yytype_uint8 yystos[] =
    15131508{
    1514        0,   104,     0,     1,     8,    14,    15,    16,    17,    22,
    1515       32,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1516       55,    56,    57,    58,    59,    60,    61,    63,    64,    65,
    1517       66,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    1518       77,    78,    79,    80,    81,    82,    83,    84,    85,    87,
    1519       89,    91,    95,    99,   102,   105,   106,   107,   108,   109,
    1520      110,   111,   112,   114,   115,   117,   118,   119,   120,   121,
    1521      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
    1522      138,   139,   140,   141,   142,   143,   144,   145,   146,    95,
    1523       16,    17,    54,    55,    56,    57,    85,   112,   128,    99,
    1524      110,   112,   119,    99,    99,    99,    99,    99,    99,    99,
    1525       99,    99,    99,   110,    99,   110,    99,   110,    99,   110,
    1526       66,    67,   111,    66,    95,   110,    99,   112,    66,    99,
    1527       99,    67,    99,    99,    66,    99,    66,    99,    16,   112,
    1528      120,   121,   121,   112,   111,   111,   112,    95,    11,    99,
    1529       86,    94,   127,     3,     4,     7,     9,    10,    87,    88,
    1530       89,    90,    91,    93,    96,    97,   101,   112,   112,   111,
    1531       12,    94,    95,   127,    99,   110,    94,   110,   112,    99,
    1532       99,    99,    99,    99,    99,   112,    67,    99,   112,   122,
    1533      112,   112,   112,   112,   112,   112,   112,   100,   111,   112,
    1534      100,   111,   112,   100,   111,    95,    95,    16,    17,    54,
    1535       55,    56,    57,   100,   110,   128,    66,    67,   112,   113,
    1536       66,   112,    67,   100,   111,    92,   100,   102,   110,   100,
    1537      111,   112,   112,   112,   112,   112,   112,   112,   112,   112,
    1538      112,   112,   112,   110,    86,   100,   116,    94,    67,   110,
    1539      112,    91,   110,   127,   112,   112,   111,   112,   111,   112,
    1540      100,   112,   100,    94,   100,    94,    94,    94,   100,    94,
    1541      100,    94,    94,   100,   100,   100,   100,   100,   100,   100,
    1542      100,   100,   100,   100,   100,    94,   100,   100,    67,    94,
    1543      112,    66,   100,   100,   100,    92,    94,   112,   112,    94,
    1544      100,   112,   110,   112,   122,   100,   100,    94,   122,   112,
    1545      112,   112,   112,   112,   112,    16,    17,    54,    55,    56,
    1546       57,   128,    46,    49,    50,    52,    53,   112,   100,    67,
    1547       67,    74,   112,   116,   116,   112,    92,    91,    94,   111,
    1548       94,   100,    94,   100,    94,    94,   100,    94,   100,   100,
    1549      100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
    1550      100,   100,    92,    94,    91,   111,   122,   100,    69,    99,
    1551      123,   124,   126,   112,   112,   112,   112,   112,   112,    92,
    1552       94,   124,   125,    99,   100,   100,   100,   100,   100,   100,
    1553       92,   126,    94,   100,   111,   125,   100
     1509       0,   105,     0,     1,     8,    14,    15,    16,    17,    22,
     1510      27,    33,    47,    48,    49,    50,    51,    52,    53,    54,
     1511      55,    56,    57,    58,    59,    60,    61,    62,    64,    65,
     1512      66,    67,    69,    70,    71,    72,    73,    74,    75,    76,
     1513      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
     1514      88,    90,    92,    96,   100,   103,   106,   107,   108,   109,
     1515     110,   111,   112,   113,   115,   116,   118,   119,   120,   121,
     1516     122,   129,   130,   131,   132,   133,   134,   135,   136,   137,
     1517     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
     1518      96,    16,    17,    55,    56,    57,    58,    86,   113,   129,
     1519     100,   111,   113,   120,   100,   100,   100,   100,   100,   100,
     1520     100,   100,   100,   100,   111,   100,   111,   100,   111,   100,
     1521     111,    67,    68,   112,    67,    96,   111,   100,   113,    67,
     1522     100,   100,    68,   100,   100,    67,   100,    67,   100,    16,
     1523     113,   121,   122,   122,   113,   112,   112,   113,    96,    11,
     1524     100,    87,    95,   128,     3,     4,     7,     9,    10,    88,
     1525      89,    90,    91,    92,    94,    97,    98,   102,   113,   113,
     1526     112,    12,    95,    96,   128,   100,   111,    95,   111,   113,
     1527     100,   100,   100,   100,   100,   100,   113,    68,   100,   113,
     1528     123,   113,   113,   113,   113,   113,   113,   113,   101,   112,
     1529     113,   101,   112,   113,   101,   112,    96,    96,    16,    17,
     1530      55,    56,    57,    58,   101,   111,   129,    67,    68,   113,
     1531     114,    67,   113,    68,   101,   112,    93,   101,   103,   111,
     1532     101,   112,   113,   113,   113,   113,   113,   113,   113,   113,
     1533     113,   113,   113,   113,   111,    87,   101,   117,    95,    68,
     1534     111,   113,    92,   111,   128,   113,   113,   112,   113,   112,
     1535     113,   101,   113,   101,    95,   101,    95,    95,    95,   101,
     1536      95,   101,    95,    95,   101,   101,   101,   101,   101,   101,
     1537     101,   101,   101,   101,   101,   101,    95,   101,   101,    68,
     1538      95,   113,    67,   101,   101,   101,    93,    95,   113,   113,
     1539      95,   101,   113,   111,   113,   123,   101,   101,    95,   123,
     1540     113,   113,   113,   113,   113,   113,    16,    17,    55,    56,
     1541      57,    58,   129,    47,    50,    51,    53,    54,   113,   101,
     1542      68,    68,    75,   113,   117,   117,   113,    93,    92,    95,
     1543     112,    95,   101,    95,   101,    95,    95,   101,    95,   101,
     1544     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
     1545     101,   101,   101,    93,    95,    92,   112,   123,   101,    70,
     1546     100,   124,   125,   127,   113,   113,   113,   113,   113,   113,
     1547      93,    95,   125,   126,   100,   101,   101,   101,   101,   101,
     1548     101,    93,   127,    95,   101,   112,   126,   101
    15541549};
    15551550
     
    23752370
    23762371/* Line 1464 of yacc.c  */
    2377 #line 320 "grammar.y"
     2372#line 321 "grammar.y"
    23782373    {
    23792374            if (timerv)
     
    24112406
    24122407/* Line 1464 of yacc.c  */
    2413 #line 355 "grammar.y"
     2408#line 356 "grammar.y"
    24142409    {currentVoice->ifsw=0;;}
    24152410    break;
     
    24182413
    24192414/* Line 1464 of yacc.c  */
    2420 #line 357 "grammar.y"
     2415#line 358 "grammar.y"
    24212416    { (yyvsp[(1) - (2)].lv).CleanUp(); currentVoice->ifsw=0;;}
    24222417    break;
     
    24252420
    24262421/* Line 1464 of yacc.c  */
    2427 #line 359 "grammar.y"
     2422#line 360 "grammar.y"
    24282423    {
    24292424            YYACCEPT;
     
    24342429
    24352430/* Line 1464 of yacc.c  */
    2436 #line 363 "grammar.y"
     2431#line 364 "grammar.y"
    24372432    {
    24382433            currentVoice->ifsw=0;
     
    24442439
    24452440/* Line 1464 of yacc.c  */
    2446 #line 368 "grammar.y"
     2441#line 369 "grammar.y"
    24472442    {currentVoice->ifsw=0;;}
    24482443    break;
     
    24512446
    24522447/* Line 1464 of yacc.c  */
    2453 #line 370 "grammar.y"
     2448#line 371 "grammar.y"
    24542449    {
    24552450            #ifdef SIQ
     
    25052500
    25062501/* Line 1464 of yacc.c  */
    2507 #line 428 "grammar.y"
     2502#line 429 "grammar.y"
    25082503    {if (currentVoice!=NULL) currentVoice->ifsw=0;;}
    25092504    break;
     
    25122507
    25132508/* Line 1464 of yacc.c  */
    2514 #line 431 "grammar.y"
     2509#line 432 "grammar.y"
    25152510    { omFree((ADDRESS)(yyvsp[(2) - (2)].name)); ;}
    25162511    break;
     
    25192514
    25202515/* Line 1464 of yacc.c  */
    2521 #line 446 "grammar.y"
     2516#line 447 "grammar.y"
    25222517    {
    25232518            if(iiAssign(&(yyvsp[(1) - (2)].lv),&(yyvsp[(2) - (2)].lv))) YYERROR;
     
    25282523
    25292524/* Line 1464 of yacc.c  */
    2530 #line 453 "grammar.y"
     2525#line 454 "grammar.y"
    25312526    {
    25322527            if (currRing==NULL) MYYERROR("no ring active");
     
    25382533
    25392534/* Line 1464 of yacc.c  */
    2540 #line 458 "grammar.y"
     2535#line 459 "grammar.y"
    25412536    {
    25422537            syMake(&(yyval.lv),(yyvsp[(1) - (1)].name));
     
    25472542
    25482543/* Line 1464 of yacc.c  */
    2549 #line 462 "grammar.y"
     2544#line 463 "grammar.y"
    25502545    {
    25512546            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), COLONCOLON, &(yyvsp[(3) - (3)].lv))) YYERROR;
     
    25562551
    25572552/* Line 1464 of yacc.c  */
    2558 #line 466 "grammar.y"
     2553#line 467 "grammar.y"
    25592554    {
    25602555            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR;
     
    25652560
    25662561/* Line 1464 of yacc.c  */
    2567 #line 470 "grammar.y"
     2562#line 471 "grammar.y"
    25682563    {
    25692564            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR;
     
    25742569
    25752570/* Line 1464 of yacc.c  */
    2576 #line 474 "grammar.y"
     2571#line 475 "grammar.y"
    25772572    {
    25782573            if ((yyvsp[(1) - (4)].lv).next==NULL)
     
    25932588
    25942589/* Line 1464 of yacc.c  */
    2595 #line 488 "grammar.y"
     2590#line 489 "grammar.y"
    25962591    {
    25972592            if (currRingHdl==NULL) MYYERROR("no ring active");
     
    26262621
    26272622/* Line 1464 of yacc.c  */
    2628 #line 516 "grammar.y"
     2623#line 517 "grammar.y"
    26292624    {
    26302625            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    26552650
    26562651/* Line 1464 of yacc.c  */
    2657 #line 540 "grammar.y"
     2652#line 541 "grammar.y"
    26582653    {
    26592654            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    26662661
    26672662/* Line 1464 of yacc.c  */
    2668 #line 546 "grammar.y"
     2663#line 547 "grammar.y"
    26692664    {
    26702665            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    26772672
    26782673/* Line 1464 of yacc.c  */
    2679 #line 552 "grammar.y"
     2674#line 553 "grammar.y"
    26802675    {
    26812676            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    26862681
    26872682/* Line 1464 of yacc.c  */
    2688 #line 556 "grammar.y"
     2683#line 557 "grammar.y"
    26892684    {
    26902685            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    26952690
    26962691/* Line 1464 of yacc.c  */
    2697 #line 560 "grammar.y"
     2692#line 561 "grammar.y"
    26982693    {
    26992694            if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27042699
    27052700/* Line 1464 of yacc.c  */
    2706 #line 564 "grammar.y"
     2701#line 565 "grammar.y"
    27072702    {
    27082703            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     
    27132708
    27142709/* Line 1464 of yacc.c  */
    2715 #line 568 "grammar.y"
     2710#line 569 "grammar.y"
    27162711    {
    27172712            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27222717
    27232718/* Line 1464 of yacc.c  */
    2724 #line 572 "grammar.y"
     2719#line 573 "grammar.y"
    27252720    {
    27262721            if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27312726
    27322727/* Line 1464 of yacc.c  */
    2733 #line 576 "grammar.y"
     2728#line 577 "grammar.y"
    27342729    {
    27352730            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     
    27402735
    27412736/* Line 1464 of yacc.c  */
    2742 #line 580 "grammar.y"
     2737#line 581 "grammar.y"
    27432738    {
    27442739            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27492744
    27502745/* Line 1464 of yacc.c  */
    2751 #line 584 "grammar.y"
     2746#line 585 "grammar.y"
    27522747    {
    27532748            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27582753
    27592754/* Line 1464 of yacc.c  */
    2760 #line 588 "grammar.y"
     2755#line 589 "grammar.y"
    27612756    {
    27622757            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27672762
    27682763/* Line 1464 of yacc.c  */
    2769 #line 592 "grammar.y"
     2764#line 593 "grammar.y"
    27702765    {
    27712766            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27762771
    27772772/* Line 1464 of yacc.c  */
    2778 #line 596 "grammar.y"
     2773#line 597 "grammar.y"
    27792774    {
    27802775            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    27852780
    27862781/* Line 1464 of yacc.c  */
    2787 #line 600 "grammar.y"
     2782#line 601 "grammar.y"
    27882783    {
    27892784            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    27942789
    27952790/* Line 1464 of yacc.c  */
    2796 #line 604 "grammar.y"
     2791#line 605 "grammar.y"
    27972792    {
    27982793            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    28032798
    28042799/* Line 1464 of yacc.c  */
    2805 #line 608 "grammar.y"
     2800#line 609 "grammar.y"
    28062801    {
    28072802            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    28122807
    28132808/* Line 1464 of yacc.c  */
    2814 #line 612 "grammar.y"
     2809#line 613 "grammar.y"
    28152810    {
    28162811            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28212816
    28222817/* Line 1464 of yacc.c  */
    2823 #line 616 "grammar.y"
     2818#line 617 "grammar.y"
    28242819    {
    28252820            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28302825
    28312826/* Line 1464 of yacc.c  */
    2832 #line 620 "grammar.y"
     2827#line 621 "grammar.y"
    28332828    {
    28342829            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28392834
    28402835/* Line 1464 of yacc.c  */
    2841 #line 624 "grammar.y"
     2836#line 625 "grammar.y"
    28422837    {
    28432838            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28482843
    28492844/* Line 1464 of yacc.c  */
    2850 #line 628 "grammar.y"
     2845#line 629 "grammar.y"
    28512846    {
    28522847            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     
    28572852
    28582853/* Line 1464 of yacc.c  */
    2859 #line 632 "grammar.y"
     2854#line 633 "grammar.y"
    28602855    {
    28612856            int b=iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i)); // handle branchTo
     
    28682863
    28692864/* Line 1464 of yacc.c  */
    2870 #line 638 "grammar.y"
     2865#line 639 "grammar.y"
    28712866    {
    28722867            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28772872
    28782873/* Line 1464 of yacc.c  */
    2879 #line 642 "grammar.y"
     2874#line 643 "grammar.y"
    28802875    {
    28812876            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    28862881
    28872882/* Line 1464 of yacc.c  */
    2888 #line 646 "grammar.y"
     2883#line 647 "grammar.y"
    28892884    {
    28902885            if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28952890
    28962891/* Line 1464 of yacc.c  */
    2897 #line 650 "grammar.y"
     2892#line 651 "grammar.y"
    28982893    {
    28992894            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR;
     
    29042899
    29052900/* Line 1464 of yacc.c  */
    2906 #line 654 "grammar.y"
     2901#line 655 "grammar.y"
    29072902    {
    29082903            if (iiARROW(&(yyval.lv),(yyvsp[(1) - (3)].name),(yyvsp[(3) - (3)].name))) YYERROR;
     
    29142909
    29152910/* Line 1464 of yacc.c  */
    2916 #line 658 "grammar.y"
     2911#line 659 "grammar.y"
    29172912    { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;}
    29182913    break;
     
    29212916
    29222917/* Line 1464 of yacc.c  */
    2923 #line 663 "grammar.y"
     2918#line 664 "grammar.y"
    29242919    {
    29252920            leftv v = &(yyvsp[(1) - (3)].lv);
     
    29372932
    29382933/* Line 1464 of yacc.c  */
    2939 #line 679 "grammar.y"
     2934#line 680 "grammar.y"
    29402935    {
    29412936            if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR;
     
    29462941
    29472942/* Line 1464 of yacc.c  */
    2948 #line 683 "grammar.y"
     2943#line 684 "grammar.y"
    29492944    {
    29502945            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR;
     
    29552950
    29562951/* Line 1464 of yacc.c  */
    2957 #line 687 "grammar.y"
     2952#line 688 "grammar.y"
    29582953    {
    29592954            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29642959
    29652960/* Line 1464 of yacc.c  */
    2966 #line 691 "grammar.y"
     2961#line 692 "grammar.y"
    29672962    {
    29682963            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29732968
    29742969/* Line 1464 of yacc.c  */
    2975 #line 695 "grammar.y"
     2970#line 696 "grammar.y"
    29762971    {
    29772972            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29822977
    29832978/* Line 1464 of yacc.c  */
    2984 #line 699 "grammar.y"
     2979#line 700 "grammar.y"
    29852980    {
    29862981            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29912986
    29922987/* Line 1464 of yacc.c  */
    2993 #line 703 "grammar.y"
     2988#line 704 "grammar.y"
    29942989    {
    29952990            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    30002995
    30012996/* Line 1464 of yacc.c  */
    3002 #line 707 "grammar.y"
     2997#line 708 "grammar.y"
    30032998    {
    30042999            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), 0, &(yyvsp[(5) - (6)].lv))) YYERROR;
     
    30093004
    30103005/* Line 1464 of yacc.c  */
    3011 #line 711 "grammar.y"
     3006#line 712 "grammar.y"
    30123007    {
    30133008            (yyval.lv)=(yyvsp[(2) - (3)].lv);
     
    30183013
    30193014/* Line 1464 of yacc.c  */
    3020 #line 715 "grammar.y"
     3015#line 716 "grammar.y"
    30213016    {
    30223017            #ifdef SIQ
     
    30403035
    30413036/* Line 1464 of yacc.c  */
    3042 #line 732 "grammar.y"
     3037#line 733 "grammar.y"
    30433038    {
    30443039            iiTestAssume(&(yyvsp[(2) - (5)].lv),&(yyvsp[(4) - (5)].lv));
     
    30513046
    30523047/* Line 1464 of yacc.c  */
    3053 #line 738 "grammar.y"
     3048#line 739 "grammar.y"
    30543049    {
    30553050            #ifdef SIQ
     
    30623057
    30633058/* Line 1464 of yacc.c  */
    3064 #line 744 "grammar.y"
     3059#line 745 "grammar.y"
    30653060    {
    30663061            #ifdef SIQ
     
    30773072
    30783073/* Line 1464 of yacc.c  */
    3079 #line 756 "grammar.y"
     3074#line 757 "grammar.y"
    30803075    {
    30813076            #ifdef SIQ
     
    30883083
    30893084/* Line 1464 of yacc.c  */
    3090 #line 764 "grammar.y"
     3085#line 765 "grammar.y"
    30913086    {
    30923087            #ifdef SIQ
     
    30993094
    31003095/* Line 1464 of yacc.c  */
    3101 #line 772 "grammar.y"
     3096#line 773 "grammar.y"
    31023097    {
    31033098            #ifdef SIQ
     
    31103105
    31113106/* Line 1464 of yacc.c  */
    3112 #line 781 "grammar.y"
     3107#line 782 "grammar.y"
    31133108    {
    31143109            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR;
     
    31193114
    31203115/* Line 1464 of yacc.c  */
    3121 #line 785 "grammar.y"
     3116#line 786 "grammar.y"
    31223117    {
    31233118            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR;
     
    31283123
    31293124/* Line 1464 of yacc.c  */
    3130 #line 789 "grammar.y"
     3125#line 790 "grammar.y"
    31313126    {
    31323127            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31373132
    31383133/* Line 1464 of yacc.c  */
    3139 #line 793 "grammar.y"
     3134#line 794 "grammar.y"
    31403135    {
    31413136            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31463141
    31473142/* Line 1464 of yacc.c  */
    3148 #line 797 "grammar.y"
     3143#line 798 "grammar.y"
    31493144    { /* also for *,% */
    31503145            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31553150
    31563151/* Line 1464 of yacc.c  */
    3157 #line 801 "grammar.y"
     3152#line 802 "grammar.y"
    31583153    {
    31593154            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31643159
    31653160/* Line 1464 of yacc.c  */
    3166 #line 805 "grammar.y"
     3161#line 806 "grammar.y"
    31673162    { /* also for > */
    31683163            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31733168
    31743169/* Line 1464 of yacc.c  */
    3175 #line 809 "grammar.y"
     3170#line 810 "grammar.y"
    31763171    { /* also for |*/
    31773172            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31823177
    31833178/* Line 1464 of yacc.c  */
    3184 #line 813 "grammar.y"
     3179#line 814 "grammar.y"
    31853180    {
    31863181            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31913186
    31923187/* Line 1464 of yacc.c  */
    3193 #line 817 "grammar.y"
     3188#line 818 "grammar.y"
    31943189    {
    31953190            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32003195
    32013196/* Line 1464 of yacc.c  */
    3202 #line 821 "grammar.y"
     3197#line 822 "grammar.y"
    32033198    {
    32043199            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32093204
    32103205/* Line 1464 of yacc.c  */
    3211 #line 825 "grammar.y"
     3206#line 826 "grammar.y"
    32123207    {
    32133208            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32183213
    32193214/* Line 1464 of yacc.c  */
    3220 #line 829 "grammar.y"
     3215#line 830 "grammar.y"
    32213216    {
    32223217            if (siq>0)
     
    32353230
    32363231/* Line 1464 of yacc.c  */
    3237 #line 841 "grammar.y"
     3232#line 842 "grammar.y"
    32383233    {
    32393234            if(iiExprArith1(&(yyval.lv),&(yyvsp[(2) - (2)].lv),'-')) YYERROR;
     
    32443239
    32453240/* Line 1464 of yacc.c  */
    3246 #line 849 "grammar.y"
     3241#line 850 "grammar.y"
    32473242    {
    32483243            if ((yyvsp[(1) - (2)].lv).rtyp==0)
     
    32643259
    32653260/* Line 1464 of yacc.c  */
    3266 #line 869 "grammar.y"
     3261#line 870 "grammar.y"
    32673262    {
    32683263            if ((yyvsp[(2) - (3)].lv).Typ()!=STRING_CMD)
     
    32783273
    32793274/* Line 1464 of yacc.c  */
    3280 #line 881 "grammar.y"
     3275#line 882 "grammar.y"
    32813276    {
    32823277            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    32883283
    32893284/* Line 1464 of yacc.c  */
    3290 #line 886 "grammar.y"
     3285#line 887 "grammar.y"
    32913286    {
    32923287            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    32983293
    32993294/* Line 1464 of yacc.c  */
    3300 #line 891 "grammar.y"
     3295#line 892 "grammar.y"
    33013296    {
    33023297            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33073302
    33083303/* Line 1464 of yacc.c  */
    3309 #line 895 "grammar.y"
     3304#line 896 "grammar.y"
    33103305    {
    33113306            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33163311
    33173312/* Line 1464 of yacc.c  */
    3318 #line 899 "grammar.y"
     3313#line 900 "grammar.y"
    33193314    {
    33203315            int r; TESTSETINT((yyvsp[(4) - (8)].lv),r);
     
    33223317            leftv v;
    33233318            idhdl h;
    3324             if ((yyvsp[(1) - (8)].i) == MATRIX_CMD)
     3319            if (((yyvsp[(1) - (8)].i) == MATRIX_CMD) || ((yyvsp[(1) - (8)].i) == SMATRIX_CMD ))
    33253320            {
    33263321              if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (8)].lv),myynest,(yyvsp[(1) - (8)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33283323              h=(idhdl)v->data;
    33293324              idDelete(&IDIDEAL(h));
    3330               IDMATRIX(h) = mpNew(r,c);
     3325              if ((yyvsp[(1) - (8)].i) == MATRIX_CMD)
     3326                IDMATRIX(h) = mpNew(r,c);
     3327              else
     3328                IDIDEAL(h) = idInit(c,r);
    33313329              if (IDMATRIX(h)==NULL) YYERROR;
    33323330            }
     
    33553353
    33563354/* Line 1464 of yacc.c  */
    3357 #line 933 "grammar.y"
    3358     {
    3359             if ((yyvsp[(1) - (2)].i) == MATRIX_CMD)
     3355#line 937 "grammar.y"
     3356    {
     3357            if (((yyvsp[(1) - (2)].i) == MATRIX_CMD)||((yyvsp[(1) - (2)].i) == SMATRIX_CMD))
    33603358            {
    33613359              if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33843382
    33853383/* Line 1464 of yacc.c  */
    3386 #line 957 "grammar.y"
     3384#line 961 "grammar.y"
    33873385    {
    33883386            int t=(yyvsp[(1) - (3)].lv).Typ();
     
    34103408
    34113409/* Line 1464 of yacc.c  */
    3412 #line 978 "grammar.y"
     3410#line 982 "grammar.y"
    34133411    {
    34143412            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    34203418
    34213419/* Line 1464 of yacc.c  */
    3422 #line 991 "grammar.y"
     3420#line 995 "grammar.y"
    34233421    {
    34243422            leftv v = &(yyvsp[(2) - (5)].lv);
     
    34363434
    34373435/* Line 1464 of yacc.c  */
    3438 #line 1005 "grammar.y"
     3436#line 1009 "grammar.y"
    34393437    {
    34403438          // let rInit take care of any errors
     
    34463444
    34473445/* Line 1464 of yacc.c  */
    3448 #line 1013 "grammar.y"
     3446#line 1017 "grammar.y"
    34493447    {
    34503448            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    34603458
    34613459/* Line 1464 of yacc.c  */
    3462 #line 1022 "grammar.y"
     3460#line 1026 "grammar.y"
    34633461    {
    34643462            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    35073505
    35083506/* Line 1464 of yacc.c  */
    3509 #line 1068 "grammar.y"
     3507#line 1072 "grammar.y"
    35103508    {
    35113509            (yyval.lv) = (yyvsp[(1) - (3)].lv);
     
    35183516
    35193517/* Line 1464 of yacc.c  */
    3520 #line 1078 "grammar.y"
     3518#line 1082 "grammar.y"
    35213519    {
    35223520            (yyval.lv) = (yyvsp[(2) - (3)].lv);
     
    35273525
    35283526/* Line 1464 of yacc.c  */
    3529 #line 1084 "grammar.y"
     3527#line 1088 "grammar.y"
    35303528    {
    35313529            expected_parms = TRUE;
     
    35333531    break;
    35343532
    3535   case 127:
    3536 
    3537 /* Line 1464 of yacc.c  */
    3538 #line 1101 "grammar.y"
     3533  case 128:
     3534
     3535/* Line 1464 of yacc.c  */
     3536#line 1106 "grammar.y"
    35393537    { newFile((yyvsp[(2) - (2)].name)); omFree((yyvsp[(2) - (2)].name)); ;}
    35403538    break;
    35413539
    3542   case 128:
    3543 
    3544 /* Line 1464 of yacc.c  */
    3545 #line 1106 "grammar.y"
     3540  case 129:
     3541
     3542/* Line 1464 of yacc.c  */
     3543#line 1111 "grammar.y"
    35463544    {
    35473545            feHelp((yyvsp[(2) - (3)].name));
     
    35503548    break;
    35513549
    3552   case 129:
    3553 
    3554 /* Line 1464 of yacc.c  */
    3555 #line 1111 "grammar.y"
     3550  case 130:
     3551
     3552/* Line 1464 of yacc.c  */
     3553#line 1116 "grammar.y"
    35563554    {
    35573555            feHelp(NULL);
     
    35593557    break;
    35603558
    3561   case 130:
    3562 
    3563 /* Line 1464 of yacc.c  */
    3564 #line 1118 "grammar.y"
     3559  case 131:
     3560
     3561/* Line 1464 of yacc.c  */
     3562#line 1123 "grammar.y"
    35653563    {
    35663564            singular_example((yyvsp[(2) - (3)].name));
     
    35693567    break;
    35703568
    3571   case 131:
    3572 
    3573 /* Line 1464 of yacc.c  */
    3574 #line 1126 "grammar.y"
     3569  case 132:
     3570
     3571/* Line 1464 of yacc.c  */
     3572#line 1131 "grammar.y"
    35753573    {
    35763574          if (basePack!=(yyvsp[(2) - (2)].lv).req_packhdl)
     
    35833581    break;
    35843582
    3585   case 132:
    3586 
    3587 /* Line 1464 of yacc.c  */
    3588 #line 1138 "grammar.y"
     3583  case 133:
     3584
     3585/* Line 1464 of yacc.c  */
     3586#line 1143 "grammar.y"
    35893587    {
    35903588          leftv v=&(yyvsp[(2) - (2)].lv);
     
    36053603    break;
    36063604
    3607   case 133:
    3608 
    3609 /* Line 1464 of yacc.c  */
    3610 #line 1155 "grammar.y"
     3605  case 134:
     3606
     3607/* Line 1464 of yacc.c  */
     3608#line 1160 "grammar.y"
    36113609    {
    36123610          leftv v=&(yyvsp[(3) - (3)].lv);
     
    36273625    break;
    36283626
    3629   case 134:
    3630 
    3631 /* Line 1464 of yacc.c  */
    3632 #line 1175 "grammar.y"
     3627  case 135:
     3628
     3629/* Line 1464 of yacc.c  */
     3630#line 1180 "grammar.y"
    36333631    {
    36343632            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36363634    break;
    36373635
    3638   case 135:
    3639 
    3640 /* Line 1464 of yacc.c  */
    3641 #line 1179 "grammar.y"
     3636  case 136:
     3637
     3638/* Line 1464 of yacc.c  */
     3639#line 1184 "grammar.y"
    36423640    {
    36433641            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36453643    break;
    36463644
    3647   case 136:
    3648 
    3649 /* Line 1464 of yacc.c  */
    3650 #line 1183 "grammar.y"
     3645  case 137:
     3646
     3647/* Line 1464 of yacc.c  */
     3648#line 1188 "grammar.y"
    36513649    {
    36523650            if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD;
     
    36553653    break;
    36563654
    3657   case 137:
    3658 
    3659 /* Line 1464 of yacc.c  */
    3660 #line 1188 "grammar.y"
     3655  case 138:
     3656
     3657/* Line 1464 of yacc.c  */
     3658#line 1193 "grammar.y"
    36613659    {
    36623660            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36643662    break;
    36653663
    3666   case 138:
    3667 
    3668 /* Line 1464 of yacc.c  */
    3669 #line 1192 "grammar.y"
     3664  case 139:
     3665
     3666/* Line 1464 of yacc.c  */
     3667#line 1197 "grammar.y"
    36703668    {
    36713669            list_cmd(RING_CMD,NULL,"// ",TRUE);
     
    36733671    break;
    36743672
    3675   case 139:
    3676 
    3677 /* Line 1464 of yacc.c  */
    3678 #line 1196 "grammar.y"
     3673  case 140:
     3674
     3675/* Line 1464 of yacc.c  */
     3676#line 1201 "grammar.y"
    36793677    {
    36803678            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36823680    break;
    36833681
    3684   case 140:
    3685 
    3686 /* Line 1464 of yacc.c  */
    3687 #line 1200 "grammar.y"
     3682  case 141:
     3683
     3684/* Line 1464 of yacc.c  */
     3685#line 1205 "grammar.y"
    36883686    {
    36893687            list_cmd(PROC_CMD,NULL,"// ",TRUE);
     
    36913689    break;
    36923690
    3693   case 141:
    3694 
    3695 /* Line 1464 of yacc.c  */
    3696 #line 1204 "grammar.y"
     3691  case 142:
     3692
     3693/* Line 1464 of yacc.c  */
     3694#line 1209 "grammar.y"
    36973695    {
    36983696            list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE);
     
    37013699    break;
    37023700
    3703   case 142:
    3704 
    3705 /* Line 1464 of yacc.c  */
    3706 #line 1209 "grammar.y"
     3701  case 143:
     3702
     3703/* Line 1464 of yacc.c  */
     3704#line 1214 "grammar.y"
    37073705    {
    37083706            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37123710    break;
    37133711
    3714   case 143:
    3715 
    3716 /* Line 1464 of yacc.c  */
    3717 #line 1215 "grammar.y"
     3712  case 144:
     3713
     3714/* Line 1464 of yacc.c  */
     3715#line 1220 "grammar.y"
    37183716    {
    37193717            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37233721    break;
    37243722
    3725   case 144:
    3726 
    3727 /* Line 1464 of yacc.c  */
    3728 #line 1221 "grammar.y"
     3723  case 145:
     3724
     3725/* Line 1464 of yacc.c  */
     3726#line 1226 "grammar.y"
    37293727    {
    37303728            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37343732    break;
    37353733
    3736   case 145:
    3737 
    3738 /* Line 1464 of yacc.c  */
    3739 #line 1227 "grammar.y"
     3734  case 146:
     3735
     3736/* Line 1464 of yacc.c  */
     3737#line 1232 "grammar.y"
    37403738    {
    37413739            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37453743    break;
    37463744
    3747   case 146:
    3748 
    3749 /* Line 1464 of yacc.c  */
    3750 #line 1233 "grammar.y"
     3745  case 147:
     3746
     3747/* Line 1464 of yacc.c  */
     3748#line 1238 "grammar.y"
    37513749    {
    37523750            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37563754    break;
    37573755
    3758   case 147:
    3759 
    3760 /* Line 1464 of yacc.c  */
    3761 #line 1239 "grammar.y"
     3756  case 148:
     3757
     3758/* Line 1464 of yacc.c  */
     3759#line 1244 "grammar.y"
    37623760    {
    37633761            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37673765    break;
    37683766
    3769   case 148:
    3770 
    3771 /* Line 1464 of yacc.c  */
    3772 #line 1245 "grammar.y"
     3767  case 149:
     3768
     3769/* Line 1464 of yacc.c  */
     3770#line 1250 "grammar.y"
    37733771    {
    37743772            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37783776    break;
    37793777
    3780   case 149:
    3781 
    3782 /* Line 1464 of yacc.c  */
    3783 #line 1257 "grammar.y"
     3778  case 150:
     3779
     3780/* Line 1464 of yacc.c  */
     3781#line 1262 "grammar.y"
    37843782    {
    37853783            list_cmd(-1,NULL,"// ",TRUE);
     
    37873785    break;
    37883786
    3789   case 150:
    3790 
    3791 /* Line 1464 of yacc.c  */
    3792 #line 1263 "grammar.y"
     3787  case 151:
     3788
     3789/* Line 1464 of yacc.c  */
     3790#line 1268 "grammar.y"
    37933791    { yyInRingConstruction = TRUE; ;}
    37943792    break;
    37953793
    3796   case 151:
    3797 
    3798 /* Line 1464 of yacc.c  */
    3799 #line 1272 "grammar.y"
     3794  case 152:
     3795
     3796/* Line 1464 of yacc.c  */
     3797#line 1277 "grammar.y"
    38003798    {
    38013799            const char *ring_name = (yyvsp[(2) - (8)].lv).name;
     
    38323830    break;
    38333831
    3834   case 152:
    3835 
    3836 /* Line 1464 of yacc.c  */
    3837 #line 1305 "grammar.y"
     3832  case 153:
     3833
     3834/* Line 1464 of yacc.c  */
     3835#line 1310 "grammar.y"
    38383836    {
    38393837            const char *ring_name = (yyvsp[(2) - (2)].lv).name;
     
    38443842    break;
    38453843
    3846   case 153:
    3847 
    3848 /* Line 1464 of yacc.c  */
    3849 #line 1312 "grammar.y"
     3844  case 154:
     3845
     3846/* Line 1464 of yacc.c  */
     3847#line 1317 "grammar.y"
    38503848    {
    38513849            yyInRingConstruction = FALSE;
     
    38543852    break;
    38553853
    3856   case 154:
    3857 
    3858 /* Line 1464 of yacc.c  */
    3859 #line 1317 "grammar.y"
     3854  case 155:
     3855
     3856/* Line 1464 of yacc.c  */
     3857#line 1322 "grammar.y"
    38603858    {
    38613859          yyInRingConstruction = FALSE;
     
    38693867    break;
    38703868
    3871   case 155:
    3872 
    3873 /* Line 1464 of yacc.c  */
    3874 #line 1330 "grammar.y"
     3869  case 156:
     3870
     3871/* Line 1464 of yacc.c  */
     3872#line 1335 "grammar.y"
    38753873    {
    38763874            if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(jjLOAD((yyvsp[(2) - (2)].name),TRUE))) YYERROR;
     
    38793877    break;
    38803878
    3881   case 158:
    3882 
    3883 /* Line 1464 of yacc.c  */
    3884 #line 1340 "grammar.y"
     3879  case 159:
     3880
     3881/* Line 1464 of yacc.c  */
     3882#line 1345 "grammar.y"
    38853883    {
    38863884            if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0))
     
    39493947    break;
    39503948
    3951   case 159:
    3952 
    3953 /* Line 1464 of yacc.c  */
    3954 #line 1408 "grammar.y"
     3949  case 160:
     3950
     3951/* Line 1464 of yacc.c  */
     3952#line 1413 "grammar.y"
    39553953    {
    39563954            type_cmd(&((yyvsp[(2) - (2)].lv)));
     
    39583956    break;
    39593957
    3960   case 160:
    3961 
    3962 /* Line 1464 of yacc.c  */
    3963 #line 1412 "grammar.y"
     3958  case 161:
     3959
     3960/* Line 1464 of yacc.c  */
     3961#line 1417 "grammar.y"
    39643962    {
    39653963            //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp);
     
    39863984    break;
    39873985
    3988   case 161:
    3989 
    3990 /* Line 1464 of yacc.c  */
    3991 #line 1441 "grammar.y"
     3986  case 162:
     3987
     3988/* Line 1464 of yacc.c  */
     3989#line 1446 "grammar.y"
    39923990    {
    39933991            int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     
    40044002    break;
    40054003
    4006   case 162:
    4007 
    4008 /* Line 1464 of yacc.c  */
    4009 #line 1454 "grammar.y"
     4004  case 163:
     4005
     4006/* Line 1464 of yacc.c  */
     4007#line 1459 "grammar.y"
    40104008    {
    40114009            if (currentVoice->ifsw==1)
     
    40264024    break;
    40274025
    4028   case 163:
    4029 
    4030 /* Line 1464 of yacc.c  */
    4031 #line 1471 "grammar.y"
     4026  case 164:
     4027
     4028/* Line 1464 of yacc.c  */
     4029#line 1476 "grammar.y"
    40324030    {
    40334031            int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     
    40404038    break;
    40414039
    4042   case 164:
    4043 
    4044 /* Line 1464 of yacc.c  */
    4045 #line 1480 "grammar.y"
     4040  case 165:
     4041
     4042/* Line 1464 of yacc.c  */
     4043#line 1485 "grammar.y"
    40464044    {
    40474045            if (exitBuffer(BT_break)) YYERROR;
     
    40504048    break;
    40514049
    4052   case 165:
    4053 
    4054 /* Line 1464 of yacc.c  */
    4055 #line 1485 "grammar.y"
     4050  case 166:
     4051
     4052/* Line 1464 of yacc.c  */
     4053#line 1490 "grammar.y"
    40564054    {
    40574055            if (contBuffer(BT_break)) YYERROR;
     
    40604058    break;
    40614059
    4062   case 166:
    4063 
    4064 /* Line 1464 of yacc.c  */
    4065 #line 1493 "grammar.y"
     4060  case 167:
     4061
     4062/* Line 1464 of yacc.c  */
     4063#line 1498 "grammar.y"
    40664064    {
    40674065            /* -> if(!$2) break; $3; continue;*/
     
    40744072    break;
    40754073
    4076   case 167:
    4077 
    4078 /* Line 1464 of yacc.c  */
    4079 #line 1505 "grammar.y"
     4074  case 168:
     4075
     4076/* Line 1464 of yacc.c  */
     4077#line 1510 "grammar.y"
    40804078    {
    40814079            /* $2 */
     
    40954093    break;
    40964094
    4097   case 168:
    4098 
    4099 /* Line 1464 of yacc.c  */
    4100 #line 1524 "grammar.y"
     4095  case 169:
     4096
     4097/* Line 1464 of yacc.c  */
     4098#line 1529 "grammar.y"
    41014099    {
    41024100            idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     
    41104108    break;
    41114109
    4112   case 169:
    4113 
    4114 /* Line 1464 of yacc.c  */
    4115 #line 1534 "grammar.y"
     4110  case 170:
     4111
     4112/* Line 1464 of yacc.c  */
     4113#line 1539 "grammar.y"
    41164114    {
    41174115            idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     
    41344132    break;
    41354133
    4136   case 170:
    4137 
    4138 /* Line 1464 of yacc.c  */
    4139 #line 1553 "grammar.y"
     4134  case 171:
     4135
     4136/* Line 1464 of yacc.c  */
     4137#line 1558 "grammar.y"
    41404138    {
    41414139            omFree((ADDRESS)(yyvsp[(3) - (4)].name));
     
    41594157    break;
    41604158
    4161   case 171:
    4162 
    4163 /* Line 1464 of yacc.c  */
    4164 #line 1576 "grammar.y"
     4159  case 172:
     4160
     4161/* Line 1464 of yacc.c  */
     4162#line 1581 "grammar.y"
    41654163    {
    41664164            // decl. of type proc p(int i)
     
    41704168    break;
    41714169
    4172   case 172:
    4173 
    4174 /* Line 1464 of yacc.c  */
    4175 #line 1582 "grammar.y"
     4170  case 173:
     4171
     4172/* Line 1464 of yacc.c  */
     4173#line 1587 "grammar.y"
    41764174    {
    41774175            // decl. of type proc p(i)
     
    41844182    break;
    41854183
    4186   case 173:
    4187 
    4188 /* Line 1464 of yacc.c  */
    4189 #line 1594 "grammar.y"
     4184  case 174:
     4185
     4186/* Line 1464 of yacc.c  */
     4187#line 1599 "grammar.y"
    41904188    {
    41914189            iiRETURNEXPR.Copy(&(yyvsp[(3) - (4)].lv));
     
    41954193    break;
    41964194
    4197   case 174:
    4198 
    4199 /* Line 1464 of yacc.c  */
    4200 #line 1600 "grammar.y"
     4195  case 175:
     4196
     4197/* Line 1464 of yacc.c  */
     4198#line 1605 "grammar.y"
    42014199    {
    42024200            if ((yyvsp[(1) - (3)].i)==RETURN)
     
    42124210
    42134211/* Line 1464 of yacc.c  */
    4214 #line 4213 "grammar.cc"
     4212#line 4211 "grammar.cc"
    42154213      default: break;
    42164214    }
  • Singular/grammar.h

    rdb48f3e r2ffd25  
    6363     POLY_CMD = 280,
    6464     RESOLUTION_CMD = 281,
    65      VECTOR_CMD = 282,
    66      BETTI_CMD = 283,
    67      E_CMD = 284,
    68      FETCH_CMD = 285,
    69      FREEMODULE_CMD = 286,
    70      KEEPRING_CMD = 287,
    71      IMAP_CMD = 288,
    72      KOSZUL_CMD = 289,
    73      MAXID_CMD = 290,
    74      MONOM_CMD = 291,
    75      PAR_CMD = 292,
    76      PREIMAGE_CMD = 293,
    77      VAR_CMD = 294,
    78      VALTVARS = 295,
    79      VMAXDEG = 296,
    80      VMAXMULT = 297,
    81      VNOETHER = 298,
    82      VMINPOLY = 299,
    83      END_RING = 300,
    84      CMD_1 = 301,
    85      CMD_2 = 302,
    86      CMD_3 = 303,
    87      CMD_12 = 304,
    88      CMD_13 = 305,
    89      CMD_23 = 306,
    90      CMD_123 = 307,
    91      CMD_M = 308,
    92      ROOT_DECL = 309,
    93      ROOT_DECL_LIST = 310,
    94      RING_DECL = 311,
    95      RING_DECL_LIST = 312,
    96      EXAMPLE_CMD = 313,
    97      EXPORT_CMD = 314,
    98      HELP_CMD = 315,
    99      KILL_CMD = 316,
    100      LIB_CMD = 317,
    101      LISTVAR_CMD = 318,
    102      SETRING_CMD = 319,
    103      TYPE_CMD = 320,
    104      STRINGTOK = 321,
    105      BLOCKTOK = 322,
    106      INT_CONST = 323,
    107      UNKNOWN_IDENT = 324,
    108      RINGVAR = 325,
    109      PROC_DEF = 326,
    110      APPLY = 327,
    111      ASSUME_CMD = 328,
    112      BREAK_CMD = 329,
    113      CONTINUE_CMD = 330,
    114      ELSE_CMD = 331,
    115      EVAL = 332,
    116      QUOTE = 333,
    117      FOR_CMD = 334,
    118      IF_CMD = 335,
    119      SYS_BREAK = 336,
    120      WHILE_CMD = 337,
    121      RETURN = 338,
    122      PARAMETER = 339,
    123      SYSVAR = 340,
    124      UMINUS = 341
     65     SMATRIX_CMD = 282,
     66     VECTOR_CMD = 283,
     67     BETTI_CMD = 284,
     68     E_CMD = 285,
     69     FETCH_CMD = 286,
     70     FREEMODULE_CMD = 287,
     71     KEEPRING_CMD = 288,
     72     IMAP_CMD = 289,
     73     KOSZUL_CMD = 290,
     74     MAXID_CMD = 291,
     75     MONOM_CMD = 292,
     76     PAR_CMD = 293,
     77     PREIMAGE_CMD = 294,
     78     VAR_CMD = 295,
     79     VALTVARS = 296,
     80     VMAXDEG = 297,
     81     VMAXMULT = 298,
     82     VNOETHER = 299,
     83     VMINPOLY = 300,
     84     END_RING = 301,
     85     CMD_1 = 302,
     86     CMD_2 = 303,
     87     CMD_3 = 304,
     88     CMD_12 = 305,
     89     CMD_13 = 306,
     90     CMD_23 = 307,
     91     CMD_123 = 308,
     92     CMD_M = 309,
     93     ROOT_DECL = 310,
     94     ROOT_DECL_LIST = 311,
     95     RING_DECL = 312,
     96     RING_DECL_LIST = 313,
     97     EXAMPLE_CMD = 314,
     98     EXPORT_CMD = 315,
     99     HELP_CMD = 316,
     100     KILL_CMD = 317,
     101     LIB_CMD = 318,
     102     LISTVAR_CMD = 319,
     103     SETRING_CMD = 320,
     104     TYPE_CMD = 321,
     105     STRINGTOK = 322,
     106     BLOCKTOK = 323,
     107     INT_CONST = 324,
     108     UNKNOWN_IDENT = 325,
     109     RINGVAR = 326,
     110     PROC_DEF = 327,
     111     APPLY = 328,
     112     ASSUME_CMD = 329,
     113     BREAK_CMD = 330,
     114     CONTINUE_CMD = 331,
     115     ELSE_CMD = 332,
     116     EVAL = 333,
     117     QUOTE = 334,
     118     FOR_CMD = 335,
     119     IF_CMD = 336,
     120     SYS_BREAK = 337,
     121     WHILE_CMD = 338,
     122     RETURN = 339,
     123     PARAMETER = 340,
     124     SYSVAR = 341,
     125     UMINUS = 342
    125126   };
    126127#endif
  • Singular/grammar.y

    rdb48f3e r2ffd25  
    206206%token <i> POLY_CMD
    207207%token <i> RESOLUTION_CMD
     208%token <i> SMATRIX_CMD
    208209%token <i> VECTOR_CMD
    209210/* end types */
     
    902903            leftv v;
    903904            idhdl h;
    904             if ($1 == MATRIX_CMD)
     905            if (($1 == MATRIX_CMD) || ($1 == SMATRIX_CMD ))
    905906            {
    906907              if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR;
     
    908909              h=(idhdl)v->data;
    909910              idDelete(&IDIDEAL(h));
    910               IDMATRIX(h) = mpNew(r,c);
     911              if ($1 == MATRIX_CMD)
     912                IDMATRIX(h) = mpNew(r,c);
     913              else
     914                IDIDEAL(h) = idInit(c,r);
    911915              if (IDMATRIX(h)==NULL) YYERROR;
    912916            }
     
    932936        | mat_cmd elemexpr
    933937          {
    934             if ($1 == MATRIX_CMD)
     938            if (($1 == MATRIX_CMD)||($1 == SMATRIX_CMD))
    935939            {
    936940              if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR;
     
    10891093
    10901094mat_cmd: MATRIX_CMD
     1095        | SMATRIX_CMD
    10911096        | INTMAT_CMD
    10921097        | BIGINTMAT_CMD
  • Singular/iparith.cc

    rdb48f3e r2ffd25  
    834834  return jjPLUSMINUS_Gen(res,u,v);
    835835}
     836static BOOLEAN jjPLUS_SM(leftv res, leftv u, leftv v)
     837{
     838  ideal A=(ideal)u->Data(); ideal B=(ideal)v->Data();
     839  res->data = (char *)(sm_Add(A , B, currRing));
     840  if (res->data==NULL)
     841  {
     842     Werror("matrix size not compatible(%dx%d, %dx%d)",
     843             (int)A->rank,IDELEMS(A),(int)B->rank,IDELEMS(B));
     844     return TRUE;
     845  }
     846  return jjPLUSMINUS_Gen(res,u,v);
     847}
    836848static BOOLEAN jjPLUS_MA_P(leftv res, leftv u, leftv v)
    837849{
     
    951963  return FALSE;
    952964}
     965static BOOLEAN jjMINUS_SM(leftv res, leftv u, leftv v)
     966{
     967  ideal A=(ideal)u->Data(); ideal B=(ideal)v->Data();
     968  res->data = (char *)(sm_Sub(A , B, currRing));
     969  if (res->data==NULL)
     970  {
     971     Werror("matrix size not compatible(%dx%d, %dx%d)",
     972             (int)A->rank,IDELEMS(A),(int)B->rank,IDELEMS(B));
     973     return TRUE;
     974  }
     975  return jjPLUSMINUS_Gen(res,u,v);
     976  return FALSE;
     977}
    953978static BOOLEAN jjTIMES_I(leftv res, leftv u, leftv v)
    954979{
     
    11301155  return FALSE;
    11311156}
     1157static BOOLEAN jjTIMES_SM(leftv res, leftv u, leftv v)
     1158{
     1159  ideal A=(ideal)u->Data(); ideal B=(ideal)v->Data();
     1160  res->data = (char *)sm_Mult(A,B,currRing);
     1161  if (res->data==NULL)
     1162  {
     1163     Werror("matrix size not compatible(%dx%d, %dx%d) in *",
     1164             (int)A->rank,IDELEMS(A),(int)B->rank,IDELEMS(B));
     1165     return TRUE;
     1166  }
     1167  id_Normalize((ideal)res->data,currRing);
     1168  if ((v->next!=NULL) || (u->next!=NULL))
     1169    return jjOP_REST(res,u,v);
     1170  return FALSE;
     1171}
    11321172static BOOLEAN jjGE_BI(leftv res, leftv u, leftv v)
    11331173{
     
    12941334{
    12951335  res->data = (char *)((long)mp_Equal((matrix)u->Data(),(matrix)v->Data(),currRing));
     1336  jjEQUAL_REST(res,u,v);
     1337  return FALSE;
     1338}
     1339static BOOLEAN jjEQUAL_SM(leftv res, leftv u, leftv v)
     1340{
     1341  res->data = (char *)((long)sm_Equal((ideal)u->Data(),(ideal)v->Data(),currRing));
    12961342  jjEQUAL_REST(res,u,v);
    12971343  return FALSE;
     
    54315477    Werror("wrong range[%d,%d] in matrix %s(%d x %d)",r,c,u->Fullname(),
    54325478      MATROWS(m),MATCOLS(m));
     5479    return TRUE;
     5480  }
     5481  res->data=u->data; u->data=NULL;
     5482  res->rtyp=u->rtyp; u->rtyp=0;
     5483  res->name=u->name; u->name=NULL;
     5484  Subexpr e=jjMakeSub(v);
     5485          e->next=jjMakeSub(w);
     5486  if (u->e==NULL)
     5487    res->e=e;
     5488  else
     5489  {
     5490    Subexpr h=u->e;
     5491    while (h->next!=NULL) h=h->next;
     5492    h->next=e;
     5493    res->e=u->e;
     5494    u->e=NULL;
     5495  }
     5496  return FALSE;
     5497}
     5498static BOOLEAN jjBRACK_SM(leftv res, leftv u, leftv v,leftv w)
     5499{
     5500  ideal m= (ideal)u->Data();
     5501  int   r = (int)(long)v->Data();
     5502  int   c = (int)(long)w->Data();
     5503  //Print("gen. elem %d, %d\n",r,c);
     5504  if ((r<1)||(r>m->rank)||(c<1)||(c>IDELEMS(m)))
     5505  {
     5506    Werror("wrong range[%d,%d] in matrix %s(%d x %d)",r,c,u->Fullname(),
     5507      (int)m->rank,IDELEMS(m));
    54335508    return TRUE;
    54345509  }
  • Singular/ipassign.cc

    rdb48f3e r2ffd25  
    687687      jjNormalizeQRingP(p);
    688688    }
    689     pDelete(&MATELEM(m,i,j));
    690     MATELEM(m,i,j)=p;
    691     /* for module: update rank */
    692     if ((p!=NULL) && (pGetComp(p)!=0))
    693     {
    694       m->rank=si_max(m->rank,pMaxComp(p));
     689    if (res->rtyp==SMATRIX_CMD)
     690    {
     691      p=pSub(p,SMATELEM(m,i-1,j-1,currRing));
     692      pSetCompP(p,i);
     693      m->m[j-1]=pAdd(m->m[j-1],p);
     694    }
     695    else
     696    {
     697      pDelete(&MATELEM(m,i,j));
     698      MATELEM(m,i,j)=p;
     699      /* for module: update rank */
     700      if ((p!=NULL) && (pGetComp(p)!=0))
     701      {
     702        m->rank=si_max(m->rank,pMaxComp(p));
     703      }
    695704    }
    696705  }
  • Singular/ipid.cc

    rdb48f3e r2ffd25  
    160160    case MODUL_CMD:
    161161    case MATRIX_CMD:
     162    case SMATRIX_CMD:
    162163      return (void*) idInit(1,1);
    163164    case MAP_CMD:
  • Singular/ipprint.cc

    rdb48f3e r2ffd25  
    5656* internal print for: matrix
    5757*/
    58 static void ipPrint_MA0(matrix m, const char *name)
     58void ipPrint_MA0(matrix m, const char *name)
    5959{
    6060  if ((MATCOLS(m)>0)&&(MATROWS(m)>0))
  • Singular/ipprint.h

    rdb48f3e r2ffd25  
    1515BOOLEAN jjDBPRINT(leftv res, leftv u);
    1616
     17void ipPrint_MA0(matrix m, const char *name);
    1718#endif
    1819
  • Singular/links/asciiLink.cc

    rdb48f3e r2ffd25  
    338338        == EOF) return TRUE;
    339339  }
     340  else if (type_id == SMATRIX_CMD)
     341  {
     342    ideal id = IDIDEAL(h);
     343    if (fprintf(fd, "[%d][%d]", (int)id->rank, IDELEMS(id))== EOF) return TRUE;
     344  }
    340345
    341346  if (type_id == PACKAGE_CMD)
     
    390395    case MODUL_CMD:
    391396    case MATRIX_CMD:
     397    case SMATRIX_CMD:
    392398      return Tok2Cmdname(type);
    393399
     
    514520    if (type_id == INTVEC_CMD) { fputs("intvec(",fd);need_klammer=TRUE; }
    515521    else if (type_id == IDEAL_CMD) { fputs("ideal(",fd);need_klammer=TRUE; }
    516     else if (type_id == MODUL_CMD) { fputs("module(",fd);need_klammer=TRUE; }
     522    else if ((type_id == MODUL_CMD)||(type_id == SMATRIX_CMD))
     523                                   { fputs("module(",fd);need_klammer=TRUE; }
    517524    else if (type_id == BIGINT_CMD) { fputs("bigint(",fd);need_klammer=TRUE; }
    518525
  • Singular/links/ssiLink.cc

    rdb48f3e r2ffd25  
    5151#include <netinet/in.h> /* for htons etc.*/
    5252
    53 #define SSI_VERSION 10
     53#define SSI_VERSION 12
    5454// 5->6: changed newstruct representation
    5555// 6->7: attributes
     
    5858// 9->10: tokens in grammar.h/tok.h reorganized
    5959// 10->11: extended ring descr. for named coeffs (not in used until 4.1)
     60// 11->12: add rank to ideal/module, add smatrix
    6061
    6162link_list ssiToBeClosed=NULL;
     
    284285void ssiWriteIdeal_R(const ssiInfo *d, int typ,const ideal I, const ring R)
    285286{
    286    // syntax: 7 # of elements <poly 1> <poly2>.....
    287    // syntax: 8 <rows> <cols> <poly 1> <poly2>.....
     287   // syntax: 7 # of elements <poly 1> <poly2>.....(ideal,module,smatrix)
     288   // syntax: 8 <rows> <cols> <poly 1> <poly2>.....(matrix)
     289   // syntax
    288290   matrix M=(matrix)I;
    289291   int mn;
     
    301303   int i;
    302304   int tt;
    303    if (typ==MODUL_CMD) tt=VECTOR_CMD;
    304    else                tt=POLY_CMD;
     305   if ((typ==MODUL_CMD)||(typ==SMATRIX_CMD))
     306     tt=VECTOR_CMD;
     307   else
     308     tt=POLY_CMD;
    305309
    306310   for(i=0;i<mn;i++)
     
    598602  ideal I;
    599603  n=s_readint(d->f_read);
    600   I=idInit(n,1);
     604  I=idInit(n,1); // will be fixed later for module/smatrix
    601605  for(i=0;i<IDELEMS(I);i++) // read n terms
    602606  {
     
    13111315           res->data=(char*)ssiReadPoly(d);
    13121316           break;
    1313     case 10:res->rtyp=MODUL_CMD;
     1317    case 10:
     1318    case 22:if (t==22) res->rtyp=SMATRIX_CMD;
     1319           else        res->rtyp=MODUL_CMD;
    13141320           if (d->r==NULL) goto no_ring;
    13151321           {
     
    15071513          case MODUL_CMD:
    15081514          case MATRIX_CMD:
     1515          case SMATRIX_CMD:
    15091516                        if (d->r!=currRing)
    15101517                        {
     
    15151522                        if(tt==IDEAL_CMD)       fputs("7 ",d->f_write);
    15161523                        else if(tt==MATRIX_CMD) fputs("8 ",d->f_write);
     1524                        else if(tt==SMATRIX_CMD) fputs("22 ",d->f_write);
    15171525                        else
    15181526                        {
     
    21512159// 20 blackbox <name> 1 <len> ...
    21522160// 21 attrib <bit-attrib> <len> <a-name1> <val1>... <data>
     2161// 22 smatrix
    21532162//
    21542163// 98: verify version: <ssi-version> <MAX_TOK> <OPT1> <OPT2>
  • Singular/subexpr.cc

    rdb48f3e r2ffd25  
    3737#include "Singular/links/silink.h"
    3838#include "Singular/attrib.h"
     39#include "Singular/ipprint.h"
    3940#include "Singular/subexpr.h"
    4041#include "Singular/blackbox.h"
     
    160161          iiWriteMatrix((matrix)d,n,2, currRing, spaces);
    161162          break;
     163        case SMATRIX_CMD:
     164        {
     165          matrix m = id_Module2Matrix(id_Copy((ideal)d,currRing),currRing);
     166          ipPrint_MA0(m, n);
     167          id_Delete((ideal *) &m,currRing);
     168          break;
     169        }
    162170        case MODUL_CMD:
    163171        case IDEAL_CMD:
     
    316324    next->Print(NULL,spaces);
    317325  }
    318   else if (t!=LIST_CMD)
     326  else if ((t!=LIST_CMD)&&(t!=SMATRIX_CMD))
    319327  {
    320328    PrintLn();
     
    452460    case MATRIX_CMD:
    453461      return (void *)mp_Copy((matrix)d, currRing);
     462    case SMATRIX_CMD:
    454463    case IDEAL_CMD:
    455464    case MODUL_CMD:
     
    568577      /* no break: continue as IDEAL*/
    569578    }
     579    case SMATRIX_CMD:
    570580    case MATRIX_CMD:
    571581    case IDEAL_CMD:
     
    896906        case IDEAL_CMD:
    897907        case MAP_CMD:
     908        case SMATRIX_CMD:
    898909          s= iiStringMatrix((matrix)d,dim, currRing);
    899910          if (typed)
    900911          {
    901912            char* ns = (char*) omAlloc(strlen(s) + 10);
    902             sprintf(ns, "%s(%s)", (t/*Typ()*/==MODUL_CMD ? "module" : "ideal"), s);
     913            sprintf(ns, "%s(%s)", (t/*Typ()*/!=IDEAL_CMD ? "module" : "ideal"), s);
    903914            omFree(s);
    904915            omCheckAddr(ns);
     
    10871098    case MATRIX_CMD:
    10881099    case MAP_CMD:
     1100    case SMATRIX_CMD:
    10891101      r=POLY_CMD;
    10901102      break;
     
    13101322      else
    13111323        r=(char *)I->m[index-1];
     1324      break;
     1325    }
     1326    case SMATRIX_CMD:
     1327    {
     1328      ideal I=(ideal)d;
     1329      int c;
     1330      sleftv tmp;
     1331      tmp.Init();
     1332      tmp.rtyp=POLY_CMD;
     1333      if ((index>0)&& (index<=I->rank)
     1334      && (e->next!=NULL)
     1335      && ((c=e->next->start)>0) &&(c<=IDELEMS(I)))
     1336      {
     1337        r=(char*)SMATELEM(I,index-1,c-1,currRing);
     1338      }
     1339      else
     1340      {
     1341        r=NULL;
     1342      }
     1343      tmp.data=r;
     1344      if ((rtyp==IDHDL)||(rtyp==SMATRIX_CMD))
     1345      {
     1346        tmp.next=next; next=NULL;
     1347        d=NULL;
     1348        CleanUp();
     1349        memcpy(this,&tmp,sizeof(tmp));
     1350      }
     1351      // and, remember, r is also the result...
     1352      else
     1353      {
     1354        // ???
     1355        // here we still have a memory leak...
     1356        // example: list L="123","456";
     1357        // L[1][2];
     1358        // therefore, it should never happen:
     1359        assume(0);
     1360        // but if it happens: here is the temporary fix:
     1361        // omMarkAsStaticAddr(r);
     1362      }
    13121363      break;
    13131364    }
  • Singular/table.h

    rdb48f3e r2ffd25  
    264264,{D(jjSLIM_GB),    SLIM_GB_CMD,     IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |NO_RING}
    265265,{D(jjSLIM_GB),    SLIM_GB_CMD,     MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |NO_RING}
     266,{D(jjDUMMY),      SMATRIX_CMD,     SMATRIX_CMD,    SMATRIX_CMD   , ALLOW_NC |ALLOW_RING}
    266267,{D(jjSort_Id),    SORTVEC_CMD,     INTVEC_CMD,     IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
    267268,{D(jjSort_Id),    SORTVEC_CMD,     INTVEC_CMD,     MODUL_CMD     , ALLOW_NC |ALLOW_RING}
     
    269270,{D(jjSTD),        STD_CMD,         IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
    270271,{D(jjSTD),        STD_CMD,         MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
     272,{D(jjSTD),        STD_CMD,         SMATRIX_CMD,    SMATRIX_CMD   , ALLOW_PLURAL |ALLOW_RING}
    271273,{D(jjDUMMY),      STRING_CMD,      STRING_CMD,     STRING_CMD    , ALLOW_NC |ALLOW_RING}
    272274,{D(jjSYZYGY),     SYZYGY_CMD,      MODUL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
     
    324326,{D(jjPLUS_MA_P), '+',            MATRIX_CMD,     MATRIX_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
    325327,{D(jjPLUS_MA),   '+',            MATRIX_CMD,     MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
     328,{D(jjPLUS_SM),   '+',            SMATRIX_CMD,    SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
    326329,{D(jjPLUS_S),    '+',            STRING_CMD,     STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
    327330,{D(jjPLUS_BIM),  '+',            BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
     
    355358,{D(jjPLUS_MA_P), '-',            MATRIX_CMD,     MATRIX_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
    356359,{D(jjMINUS_MA),  '-',            MATRIX_CMD,     MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
     360,{D(jjMINUS_SM),  '-',            SMATRIX_CMD,    SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
    357361,{D(jjMINUS_BIM), '-',            BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
    358362,{D(jjOP_BIM_I),  '-',            BIGINTMAT_CMD,  BIGINTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
     
    400404,{D(jjTIMES_MA_I2),'*',           MATRIX_CMD,     INT_CMD,    MATRIX_CMD, ALLOW_NC | ALLOW_RING}
    401405,{D(jjTIMES_MA),  '*',            MATRIX_CMD,     MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
     406,{D(jjTIMES_SM),  '*',            SMATRIX_CMD,    SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
    402407,{D(jjTIMES_MA_BI1),'*',          MATRIX_CMD,     MATRIX_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
    403408,{D(jjTIMES_MA_BI2),'*',          MATRIX_CMD,     BIGINT_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
     
    525530,{D(jjEQUAL_CR),  EQUAL_EQUAL,    INT_CMD,        CRING_CMD,  CRING_CMD, ALLOW_NC | ALLOW_RING}
    526531,{D(jjEQUAL_Ma),  EQUAL_EQUAL,    INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
     532,{D(jjEQUAL_SM),  EQUAL_EQUAL,    INT_CMD,        SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
    527533,{D(jjEQUAL_R),   EQUAL_EQUAL,    INT_CMD,        RING_CMD,   RING_CMD, ALLOW_NC | ALLOW_RING}
    528534,{  jjWRONG2 ,    EQUAL_EQUAL,    0,              IDEAL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
     
    539545,{D(jjCOMPARE_IV),NOTEQUAL,       INT_CMD,        INTMAT_CMD, INTMAT_CMD, ALLOW_NC | ALLOW_RING}
    540546,{D(jjEQUAL_Ma),  NOTEQUAL,       INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
     547,{D(jjEQUAL_SM),  NOTEQUAL,       INT_CMD,        SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
    541548,{  jjWRONG2 ,    NOTEQUAL,       0,              IDEAL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
    542549,{  jjWRONG2 ,    NOTEQUAL,       0,              MODUL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
     
    760767,{D(jjBRACK_Ma_IV_IV), '[',        BIGINT_CMD, BIGINTMAT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_NC |ALLOW_RING}
    761768,{D(jjBRACK_Ma),       '[',        POLY_CMD,   MATRIX_CMD, INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
     769,{D(jjBRACK_SM),       '[',        POLY_CMD,   SMATRIX_CMD, INT_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
    762770,{D(jjBRACK_Ma_I_IV),  '[',        POLY_CMD,   MATRIX_CMD, INT_CMD,    INTVEC_CMD, ALLOW_NC |ALLOW_RING}
    763771,{D(jjBRACK_Ma_IV_I),  '[',        POLY_CMD,   MATRIX_CMD, INTVEC_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
     
    11551163  { "size",        0, COUNT_CMD ,         CMD_1},
    11561164  { "slimgb",      0, SLIM_GB_CMD ,       CMD_1},
     1165  { "smatrix",     0, SMATRIX_CMD ,       SMATRIX_CMD},
    11571166  { "sortvec",     0, SORTVEC_CMD ,       CMD_1},
    11581167  { "sqrfree",     0, SQR_FREE_CMD ,      CMD_12},
     
    12981307// list -> resolution
    12991308   { LIST_CMD,        RESOLUTION_CMD, NULL_VAL ,  D(iiL2R) },
     1309// matrix -> smatrix   
     1310   { MATRIX_CMD,      SMATRIX_CMD,    D(iiMa2Mo), NULL_VAL },
     1311// module -> smatrix   
     1312   { MODUL_CMD,       SMATRIX_CMD,    D(iiDummy), NULL_VAL },
     1313// smatrix -> matrix   
     1314   { SMATRIX_CMD,     MATRIX_CMD,     D(iiMo2Ma) , NULL_VAL },
     1315// smatrix -> module   
     1316   { SMATRIX_CMD,     MODUL_CMD,      D(iiDummy) , NULL_VAL },
    13001317#ifdef SINGULAR_4_2
    13011318   { INT_CMD,         CNUMBER_CMD,    D(iiI2NN) , NULL_VAL },
     
    13471364,{D(jiA_RING),     RING_CMD,       RING_CMD }
    13481365,{D(jiA_QRING),    RING_CMD,       IDEAL_CMD }
     1366,{D(jiA_IDEAL),    SMATRIX_CMD,    SMATRIX_CMD }
     1367,{D(jiA_IDEAL),    SMATRIX_CMD,    MODUL_CMD }
    13491368,{D(jiA_STRING),   STRING_CMD,     STRING_CMD }
    13501369,{D(jiA_POLY),     VECTOR_CMD,     VECTOR_CMD }
  • libpolys/polys/matpol.cc

    rdb48f3e r2ffd25  
    18061806}
    18071807
    1808 #define SMATELEM(A,i,j,R) p_Vec2Poly(A->m[j],i+1,R)
    18091808ideal sm_Mult(ideal a, ideal b, const ring R)
    18101809{
     
    18961895}
    18971896
     1897BOOLEAN sm_Equal(ideal a, ideal b, const ring R)
     1898{
     1899  if ((a->rank!=b->rank) || (IDELEMS(a)!=IDELEMS(b)))
     1900    return FALSE;
     1901  int i=IDELEMS(a)-1;
     1902  while (i>=0)
     1903  {
     1904    if (a->m[i]==NULL)
     1905    {
     1906      if (b->m[i]!=NULL) return FALSE;
     1907    }
     1908    else if (b->m[i]==NULL) return FALSE;
     1909    else if (p_Cmp(a->m[i],b->m[i], R)!=0) return FALSE;
     1910    i--;
     1911  }
     1912  i=IDELEMS(a)-1;
     1913  while (i>=0)
     1914  {
     1915    if(!p_EqualPolys(a->m[i],b->m[i], R)) return FALSE;
     1916    i--;
     1917  }
     1918  return TRUE;
     1919}
     1920
  • libpolys/polys/matpol.h

    rdb48f3e r2ffd25  
    102102poly sm_Trace ( ideal a, const ring R);
    103103int sm_Compare(ideal a, ideal b, const ring R);
     104BOOLEAN sm_Equal(ideal a, ideal b, const ring R);
     105
     106#define SMATELEM(A,i,j,R) p_Vec2Poly(A->m[j],i+1,R)
     107
    104108#endif/* MATPOL_H */
Note: See TracChangeset for help on using the changeset viewer.