home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / pd7.lzh / SRC / y.tab.c < prev    next >
Text File  |  1990-05-06  |  75KB  |  1,943 lines

  1. #ifndef lint
  2. char yysccsid[] = "@(#)yaccpar    1.4 (Berkeley) 02/25/90";
  3. #endif
  4. #line 18 "gram.y"
  5. #include <curses.h>
  6. #include "sc.h"
  7.  
  8. #define ENULL (struct enode *)0
  9.  
  10. char *strcpy();
  11. #line 26 "gram.y"
  12. typedef union {
  13.     int ival;
  14.     double fval;
  15.     struct ent_ptr ent;
  16.     struct enode *enode;
  17.     char *sval;
  18.     struct range_s rval;
  19. } YYSTYPE;
  20. #line 21 "y.tab.c"
  21. #define STRING 257
  22. #define NUMBER 258
  23. #define FNUMBER 259
  24. #define RANGE 260
  25. #define VAR 261
  26. #define _WORD 262
  27. #define COL 263
  28. #define S_FORMAT 264
  29. #define S_LABEL 265
  30. #define S_LEFTSTRING 266
  31. #define S_RIGHTSTRING 267
  32. #define S_GET 268
  33. #define S_PUT 269
  34. #define S_MERGE 270
  35. #define S_LET 271
  36. #define S_WRITE 272
  37. #define S_TBL 273
  38. #define S_COPY 274
  39. #define S_SHOW 275
  40. #define S_ERASE 276
  41. #define S_FILL 277
  42. #define S_GOTO 278
  43. #define S_DEFINE 279
  44. #define S_UNDEFINE 280
  45. #define S_VALUE 281
  46. #define S_MDIR 282
  47. #define S_HIDE 283
  48. #define S_SET 284
  49. #define K_FIXED 285
  50. #define K_SUM 286
  51. #define K_PROD 287
  52. #define K_AVG 288
  53. #define K_STDDEV 289
  54. #define K_ACOS 290
  55. #define K_ASIN 291
  56. #define K_ATAN 292
  57. #define K_ATAN2 293
  58. #define K_CEIL 294
  59. #define K_COS 295
  60. #define K_EXP 296
  61. #define K_FABS 297
  62. #define K_FLOOR 298
  63. #define K_HYPOT 299
  64. #define K_LN 300
  65. #define K_LOG 301
  66. #define K_PI 302
  67. #define K_POW 303
  68. #define K_SIN 304
  69. #define K_SQRT 305
  70. #define K_TAN 306
  71. #define K_DTR 307
  72. #define K_RTD 308
  73. #define K_MAX 309
  74. #define K_MIN 310
  75. #define K_RND 311
  76. #define K_PV 312
  77. #define K_FV 313
  78. #define K_PMT 314
  79. #define K_HOUR 315
  80. #define K_MINUTE 316
  81. #define K_SECOND 317
  82. #define K_MONTH 318
  83. #define K_DAY 319
  84. #define K_YEAR 320
  85. #define K_NOW 321
  86. #define K_DATE 322
  87. #define K_FMT 323
  88. #define K_SUBSTR 324
  89. #define K_STON 325
  90. #define K_EQS 326
  91. #define K_EXT 327
  92. #define K_NVAL 328
  93. #define K_SVAL 329
  94. #define K_LOOKUP 330
  95. #define K_INDEX 331
  96. #define K_STINDEX 332
  97. #define K_AUTO 333
  98. #define K_AUTOCALC 334
  99. #define K_BYROWS 335
  100. #define K_BYCOLS 336
  101. #define K_BYGRAPH 337
  102. #define K_ITERATIONS 338
  103. #define K_NUMERIC 339
  104. #define K_PRESCALE 340
  105. #define K_EXTFUN 341
  106. #define K_CELLCUR 342
  107. #define K_TOPROW 343
  108. #define K_TBLSTYLE 344
  109. #define K_TBL 345
  110. #define K_LATEX 346
  111. #define K_TEX 347
  112. #define YYERRCODE 256
  113. short yylhs[] = {                                        -1,
  114.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  115.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  116.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  117.     0,    0,    0,    0,    0,    0,    0,    7,    7,    7,
  118.     7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  119.     7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  120.     7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  121.     7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  122.     7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  123.     7,    7,    7,    7,    7,    7,    6,    6,    6,    6,
  124.     6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
  125.     6,    6,    6,    8,    8,    3,    3,    1,    1,    1,
  126.     1,    1,    4,    4,    2,    2,    2,    2,    5,    5,
  127.     9,    9,   10,   10,   10,   10,   10,   10,   10,   10,
  128.    10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
  129.    10,   10,   10,   10,   10,   10,
  130. };
  131. short yylen[] = {                                         2,
  132.     4,    4,    4,    4,    6,    4,    2,    2,    2,    3,
  133.     2,    3,    2,    3,    2,    4,    4,    2,    2,    3,
  134.     1,    2,    1,    2,    3,    4,    2,    2,    2,    1,
  135.     2,    3,    3,    2,    2,    0,    1,    1,    2,    5,
  136.     5,    5,    5,    5,    7,    5,    7,    5,    5,    5,
  137.     7,    5,    5,    5,    5,    5,    7,    5,    5,    7,
  138.     5,    5,    5,    5,    5,    5,    9,    9,    9,    5,
  139.     5,    5,    5,    5,    5,    2,    5,    7,    5,    7,
  140.     7,    7,    7,    7,    7,    7,    9,    3,    2,    2,
  141.     1,    1,    1,    1,    2,    2,    3,    3,    3,    3,
  142.     3,    3,    1,    5,    3,    3,    3,    3,    3,    4,
  143.     4,    4,    3,    1,    3,    3,    1,    2,    3,    3,
  144.     4,    1,    1,    1,    1,    1,    2,    2,    1,    1,
  145.     0,    2,    1,    1,    2,    2,    2,    2,    1,    1,
  146.     1,    1,    2,    1,    2,    1,    2,    1,    2,    1,
  147.     2,    3,    3,    3,    3,    3,
  148. };
  149. short yydefred[] = {                                      0,
  150.    37,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  151.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  152.     0,  131,    0,    0,  117,  122,    0,    0,    0,  123,
  153.     0,    0,    0,  129,  130,    7,    0,    8,    0,    0,
  154.     0,    0,    0,    0,    0,   22,  125,  126,    0,    0,
  155.     0,    0,   29,   28,   27,    0,   34,   24,    9,   19,
  156.    18,    0,    0,    0,  118,    0,    0,    0,    0,    0,
  157.     0,   10,    0,   12,   14,   20,    0,    0,  128,  127,
  158.    25,    0,    0,   32,  133,  134,  140,  139,  141,    0,
  159.   142,  144,  146,  148,  150,    0,    0,    0,  132,    6,
  160.     0,  120,  119,    0,  116,   94,   91,   92,    0,   93,
  161.     0,    0,    0,    0,    0,    0,   38,    0,  103,    0,
  162.     0,    0,   17,   16,   26,    0,    0,  137,  138,  143,
  163.   145,  147,  149,  151,  135,  136,    0,  121,   39,   96,
  164.    89,   90,    0,    0,    0,    0,    0,    0,    0,    0,
  165.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  166.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  167.     0,    0,    0,    0,    0,    0,   76,    0,    0,    0,
  168.     0,    0,    0,    0,    0,    0,    0,    0,    0,   95,
  169.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  170.     0,    0,    0,    0,  152,  153,  154,  155,  156,    5,
  171.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  172.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  173.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  174.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  175.     0,    0,    0,    0,    0,   88,    0,    0,    0,    0,
  176.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  177.     0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
  178.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  179.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  180.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  181.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  182.     0,    0,    0,    0,   40,   41,   42,   43,   48,   49,
  183.    50,    0,   52,   53,   54,   55,   56,    0,   58,   59,
  184.     0,   61,   62,   63,   64,   65,   44,    0,   46,    0,
  185.    66,    0,    0,    0,   70,   71,   72,   73,   74,   75,
  186.    79,    0,    0,   77,    0,    0,    0,    0,    0,    0,
  187.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  188.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  189.    51,   57,   60,   45,    0,   47,    0,    0,    0,   80,
  190.     0,   78,   84,   85,   86,   82,   81,   83,    0,    0,
  191.     0,    0,    0,   67,   68,   69,   87,
  192. };
  193. short yydgoto[] = {                                      23,
  194.   117,   51,   30,   31,   36,  376,  119,  377,   62,   99,
  195. };
  196. short yysindex[] = {                                   2721,
  197.     0, -242,  -11,  -11,  -11,   42,   42,   42,  -11,   42,
  198.    42,  -11, -236,  -11,  170,   96,   42,  -11,  -11,   42,
  199.  -214,    0,    0,  -38,    0,    0,  -12, -228,  -15,    0,
  200.   -16,  -14,   -9,    0,    0,    0,  -11,    0,   -7,  -11,
  201.   -11,  -15,  -11,    6,   10,    0,    0,    0,   50,   50,
  202.    50,   50,    0,    0,    0,  -11,    0,    0,    0,    0,
  203.     0,  -23, -179, -182,    0, -175,   49,  -10,  379,  379,
  204.   379,    0,  379,    0,    0,    0, -166, -161,    0,    0,
  205.     0,   50,  -15,    0,    0,    0,    0,    0,    0,   43,
  206.     0,    0,    0,    0,    0,   44,  228, -237,    0,    0,
  207.  -150,    0,    0, -143,    0,    0,    0,    0,  379,    0,
  208.   379,  379,  379, 2643,  379,  379,    0, 2755,    0, 2755,
  209.  2755, 2755,    0,    0,    0, -141, -222,    0,    0,    0,
  210.     0,    0,    0,    0,    0,    0, -138,    0,    0,    0,
  211.     0,    0,   81,   87,   88,   93,   95,   98,  104,  106,
  212.   109,  111,  112,  113,  114,  118,  120,  121,  126,  129,
  213.   136,  138,  139,  140,  145,  146,  147,  149,  156,  160,
  214.   161,  162,  163,  165,  176,  177,    0,  178,  179,  181,
  215.   182,  184,  189,  198,  215,  260,  262,  282,  690,    0,
  216.   379,  379,  379,   73,  379,   86,   75,  379,  379,  379,
  217.   379,  379,  379,  379,    0,    0,    0,    0,    0,    0,
  218.   -11,  -11,  -11,  -11,  379,  379,  379,  379,  379,  379,
  219.   379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
  220.   379,  379,  356,  356,  379,  379,  379,  379,  379,  379,
  221.   379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
  222.   379,  379,  379,  379,  379,    0,  725, 2821, 2851,  379,
  223.    13,   13,  379,   13,  379,    4,    4,    4,   76,   76,
  224.    76,    0,  283,  284,  285,  286,  760,  795,  830,  865,
  225.   900,  935,  970, 1005, 1040, 1075, 1110, 1145, 1180, 1215,
  226.  1250, 1285, 1320, 1355,  -15,  287, 1390,  288, 1425, 1460,
  227.  1495, 1530, 1565, 1600, 1635, 1670, 1705, 1740, 1775, 1810,
  228.  1845, 1880, 1915, 1950, 1985, 2020, 2055, 2090, 2125, 2160,
  229.   379,   13,   13,   13,    0,    0,    0,    0,    0,    0,
  230.     0,  379,    0,    0,    0,    0,    0,  379,    0,    0,
  231.   379,    0,    0,    0,    0,    0,    0,  379,    0,  379,
  232.     0,  379,  379,  379,    0,    0,    0,    0,    0,    0,
  233.     0,  379,  379,    0,  379,  379,  379,  379,  -11,  -11,
  234.   -11, 2786, 2195, 2230, 2265, 2755,   32,   33, 2300, 2335,
  235.  2370, 2405, 2440, 2475, 2510, 2545, 2580,  292,  294,  296,
  236.     0,    0,    0,    0,  379,    0,  379,  379,  379,    0,
  237.   379,    0,    0,    0,    0,    0,    0,    0, 2755, 2615,
  238.  2650, 2685, 2720,    0,    0,    0,    0,
  239. };
  240. short yyrindex[] = {                                    323,
  241.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  242.     0,    0,    0,  338,    0,  339,    0,    0,  340,    0,
  243.     0,    0,    0,    0,    0,    0,    0,    0,   39,    0,
  244.     0,    0,    0,    0,    0,    0,  341,    0,    0,  342,
  245.   346,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  246.     0,    0,    0,    0,    0,  348,    0,    0,    0,    0,
  247.     0,  350,    0,    0,    0,    0,    0,    0,    0,    0,
  248.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  249.     0,    0,  351,    0,    0,    0,    0,    0,    0,    0,
  250.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  251.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  252.     0,    0,    0,    0,    0,    0,    0,  352,    0,  360,
  253.   361,  363,    0,    0,    0,    0,    0,    0,    0,    0,
  254.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  255.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  256.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  257.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  258.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  259.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  260.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  261.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  262.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  263.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  264.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  265.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  266.     0,    0,    0,    0,    0,    0,    0,   99,   31,    0,
  267.   421,  585,    0,  586,    0,  481,  515,  546,  130,  411,
  268.   450,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  269.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  270.     0,    0,    0,    0,  655,    0,    0,    0,    0,    0,
  271.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  272.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  273.     0,  621,  622,  631,    0,    0,    0,    0,    0,    0,
  274.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  275.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  276.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  277.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  278.     0,  101,    0,    0,    0,   46,    0,    0,    0,    0,
  279.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  280.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  281.     0,    0,    0,    0,    0,    0,    0,    0,   47,    0,
  282.     0,    0,    0,    0,    0,    0,    0,
  283. };
  284. short yygindex[] = {                                      0,
  285.    -3,  132,   30,   14,  187,   41,  -50,   15,    0,    0,
  286. };
  287. #define YYTABLESIZE 3005
  288. short yytable[] = {                                      29,
  289.    29,   29,   35,   35,   35,   29,   35,   35,   42,   97,
  290.    29,   29,   29,   35,   29,   29,   35,   32,   33,   64,
  291.    24,   44,   39,   66,   28,   28,   45,   46,   52,   55,
  292.   108,   57,   58,   42,   67,  206,   42,   42,  124,   29,
  293.   203,   43,   68,   60,   69,  201,   70,  200,   61,  203,
  294.   202,   71,   83,   73,  201,  198,   76,  199,  139,  202,
  295.   140,  141,  142,   77,  105,  190,   72,   78,  108,   74,
  296.    75,  108,  394,  396,  108,  395,  395,   28,  100,  124,
  297.   101,  124,  102,  124,  104,   84,  114,  115,  108,  114,
  298.   115,  123,   49,  108,   50,  135,  136,  204,  109,  124,
  299.   104,  124,   98,  126,  127,  111,  204,  137,   28,  118,
  300.   120,  121,  115,  122,  138,  112,  205,  113,  111,  210,
  301.   211,   28,  207,  208,  209,  115,  212,  213,  112,   99,
  302.   113,   28,  214,  260,  215,  265,  114,  216,   49,  109,
  303.    50,  104,  109,  217,  104,  218,  263,   54,  219,  114,
  304.   220,  221,  222,  223,  108,  189,  109,  224,  104,  225,
  305.   226,  109,   99,  104,   99,  227,   99,   99,  228,  204,
  306.    99,   99,   99,   99,   99,  229,   99,  230,  231,  232,
  307.    79,   80,   81,   82,  233,  234,  235,   99,  236,   99,
  308.    99,   99,   99,   37,   38,  237,   40,   41,  116,  238,
  309.   239,  240,  241,   56,  242,   28,   59,   29,   29,   29,
  310.    29,  116,   49,  125,   50,  243,  244,  245,  246,   63,
  311.   247,  248,  109,  249,  273,  274,  275,  276,  250,  295,
  312.   295,  257,  258,  259,  261,  262,  264,  251,  266,  267,
  313.   268,  269,  270,  271,  272,   65,  296,  298,   25,   26,
  314.    26,   27,   27,   99,  252,  277,  278,  279,  280,  281,
  315.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  316.   292,  293,  294,  297,  299,  300,  301,  302,  303,  304,
  317.   305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  318.   315,  316,  317,  318,  319,  320,  124,  124,   34,  253,
  319.   322,  254,   26,  323,   27,  324,  103,   47,   48,   85,
  320.    86,   87,   88,   89,   90,   91,   92,   93,   94,   95,
  321.    96,  255,   36,  325,  326,  327,  328,  347,  349,  106,
  322.   107,  108,  406,   26,  407,   27,  408,   21,   30,   23,
  323.    11,   13,  106,  107,  108,   15,   26,   31,   27,   35,
  324.    33,    2,   53,   47,   48,   25,   26,  109,   27,    3,
  325.     4,  372,    1,    0,  378,   29,   29,   29,    0,    0,
  326.   109,    0,  373,    0,  110,    0,    0,    0,  374,    0,
  327.     0,  375,  388,  389,  390,    0,    0,  110,  111,    0,
  328.     0,   28,  379,  380,  381,  115,    0,    0,  112,    0,
  329.   113,    0,  382,  383,    0,  384,  385,  386,  387,    0,
  330.   100,  111,    0,    0,   28,    0,    0,    0,  115,  114,
  331.   105,  112,    0,  113,    0,    0,    0,   47,   48,   25,
  332.    26,    0,   27,    0,    0,  409,    0,  410,  411,  412,
  333.     0,  413,  114,  100,    0,  100,    0,  100,  100,  101,
  334.     0,  100,  100,  100,  100,  100,    0,  100,  105,    0,
  335.     0,  105,    0,    0,  105,    0,    0,    0,  100,    0,
  336.   100,  100,  100,  100,    0,    0,    0,    0,  105,    0,
  337.    97,  116,  101,  105,  101,    0,  101,  101,    0,    0,
  338.   101,  101,  101,  101,  101,    0,  101,    0,    0,    0,
  339.     0,    0,    0,    0,  116,    0,    0,  101,    0,  101,
  340.   101,  101,  101,   97,   98,   97,    0,    0,   97,    0,
  341.     0,   97,    0,   97,   97,   97,    0,    0,    0,    0,
  342.     0,    0,    0,    0,  100,    0,    0,    0,   97,    0,
  343.    97,   97,   97,   97,  105,  113,    0,   98,    0,   98,
  344.     0,    0,   98,    0,    0,   98,    0,   98,   98,   98,
  345.   128,  129,    0,    0,    0,    0,  130,  131,  132,  133,
  346.   134,    0,   98,  101,   98,   98,   98,   98,  113,    0,
  347.   113,    0,    0,  113,  106,  107,  113,    0,  113,  113,
  348.   113,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  349.     0,    0,    0,  113,   97,  113,  113,  113,  113,    0,
  350.     0,    0,  106,  107,  108,   25,   26,    0,   27,    0,
  351.   110,  112,  106,  107,    0,  106,  107,    0,  106,  107,
  352.   111,    0,    0,    0,    0,  106,  107,  108,   98,   26,
  353.   109,   27,  106,  107,    0,    0,    0,  106,  107,    0,
  354.     0,    0,    0,    0,    0,    0,    0,  110,  110,  112,
  355.     0,  110,  112,  109,  110,  112,    0,    0,  111,  113,
  356.     0,  111,    0,    0,  111,    0,    0,    0,  110,  112,
  357.   110,    0,    0,  110,  112,    0,    0,   38,  111,   38,
  358.     0,   38,   38,  111,    0,  124,   38,   38,   38,   38,
  359.     0,   38,    0,    0,    0,    0,    0,    0,  106,  107,
  360.     0,    0,    0,    0,   38,   38,   38,   38,    0,    0,
  361.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  362.   256,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  363.     0,    0,    0,    0,  110,  112,    0,    0,   38,  194,
  364.   195,  196,  191,    0,  111,    0,    0,  197,    0,  200,
  365.     0,  203,  193,    0,    0,    0,  201,  198,    0,  199,
  366.     0,  202,    0,    0,    0,    0,    0,    0,   38,    0,
  367.     0,    0,  321,  204,  194,  195,  196,  191,    0,    0,
  368.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  369.   329,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  370.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  371.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  372.     0,  203,  193,    0,    0,  330,  201,  198,    0,  199,
  373.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  374.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  375.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  376.   331,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  377.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  378.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  379.     0,  203,  193,    0,    0,    0,  201,  198,  332,  199,
  380.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  381.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  382.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  383.   333,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  384.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  385.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  386.     0,  203,  193,    0,    0,  334,  201,  198,    0,  199,
  387.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  388.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  389.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  390.   335,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  391.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  392.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  393.     0,  203,  193,    0,    0,  336,  201,  198,    0,  199,
  394.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  395.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  396.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  397.   337,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  398.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  399.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  400.     0,  203,  193,    0,    0,    0,  201,  198,  338,  199,
  401.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  402.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  403.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  404.   339,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  405.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  406.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  407.     0,  203,  193,    0,    0,  340,  201,  198,    0,  199,
  408.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  409.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  410.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  411.     0,  201,  198,  341,  199,    0,  202,    0,    0,    0,
  412.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  413.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  414.     0,  203,  193,    0,    0,  342,  201,  198,    0,  199,
  415.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  416.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  417.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  418.   343,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  419.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  420.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  421.     0,  203,  193,    0,    0,  344,  201,  198,    0,  199,
  422.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  423.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  424.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  425.   345,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  426.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  427.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  428.     0,  203,  193,    0,    0,  346,  201,  198,    0,  199,
  429.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  430.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  431.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  432.     0,  201,  198,  348,  199,    0,  202,    0,    0,    0,
  433.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  434.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  435.     0,  203,  193,    0,    0,    0,  201,  198,  350,  199,
  436.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  437.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  438.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  439.   351,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  440.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  441.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  442.     0,  203,  193,    0,    0,    0,  201,  198,  352,  199,
  443.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  444.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  445.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  446.     0,  201,  198,  353,  199,    0,  202,    0,    0,    0,
  447.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  448.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  449.     0,  203,  193,    0,    0,    0,  201,  198,  354,  199,
  450.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  451.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  452.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  453.   355,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  454.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  455.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  456.     0,  203,  193,    0,    0,  356,  201,  198,    0,  199,
  457.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  458.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  459.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  460.   357,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  461.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  462.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  463.     0,  203,  193,    0,    0,  358,  201,  198,    0,  199,
  464.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  465.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  466.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  467.   359,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  468.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  469.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  470.     0,  203,  193,    0,    0,  360,  201,  198,    0,  199,
  471.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  472.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  473.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  474.   361,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  475.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  476.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  477.     0,  203,  193,    0,    0,    0,  201,  198,  362,  199,
  478.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  479.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  480.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  481.     0,  201,  198,  363,  199,    0,  202,    0,    0,    0,
  482.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  483.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  484.     0,  203,  193,    0,    0,  364,  201,  198,    0,  199,
  485.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  486.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  487.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  488.     0,  201,  198,  365,  199,    0,  202,    0,    0,    0,
  489.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  490.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  491.     0,  203,  193,    0,    0,    0,  201,  198,  366,  199,
  492.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  493.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  494.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  495.     0,  201,  198,  367,  199,    0,  202,    0,    0,    0,
  496.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  497.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  498.     0,  203,  193,    0,    0,    0,  201,  198,  368,  199,
  499.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  500.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  501.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  502.     0,  201,  198,  369,  199,    0,  202,    0,    0,    0,
  503.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  504.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  505.     0,  203,  193,    0,    0,    0,  201,  198,  370,  199,
  506.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  507.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  508.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  509.     0,  201,  198,  371,  199,    0,  202,    0,    0,    0,
  510.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  511.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  512.     0,  203,  193,    0,    0,  391,  201,  198,    0,  199,
  513.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  514.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  515.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  516.   392,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  517.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  518.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  519.     0,  203,  193,    0,    0,  393,  201,  198,    0,  199,
  520.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  521.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  522.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  523.     0,  201,  198,  397,  199,    0,  202,    0,    0,    0,
  524.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  525.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  526.     0,  203,  193,    0,    0,    0,  201,  198,  398,  199,
  527.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  528.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  529.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  530.     0,  201,  198,  399,  199,    0,  202,    0,    0,    0,
  531.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  532.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  533.     0,  203,  193,    0,    0,  400,  201,  198,    0,  199,
  534.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  535.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  536.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  537.     0,  201,  198,  401,  199,    0,  202,    0,    0,    0,
  538.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  539.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  540.     0,  203,  193,    0,    0,  402,  201,  198,    0,  199,
  541.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  542.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  543.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  544.   403,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  545.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  546.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  547.     0,  203,  193,    0,    0,  404,  201,  198,    0,  199,
  548.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  549.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  550.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  551.   405,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  552.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  553.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  554.     0,  203,  193,    0,    0,  414,  201,  198,    0,  199,
  555.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  556.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  557.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  558.   415,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  559.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  560.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  561.     0,  203,  193,    0,    0,  416,  201,  198,    0,  199,
  562.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  563.     0,    0,    0,  204,  194,  195,  196,  191,    0,    0,
  564.     0,    0,  197,    0,  200,    0,  203,  193,    0,    0,
  565.   417,  201,  198,    0,  199,    0,  202,    0,    0,    0,
  566.     0,    0,    0,  192,    0,    0,    0,    0,  204,  194,
  567.   195,  196,  191,    0,    0,    0,    0,  197,    0,  200,
  568.     0,  203,  193,    0,    0,    0,  201,  198,    0,  199,
  569.     0,  202,    0,    0,    0,    0,    0,    0,  192,    0,
  570.     0,    0,    0,  204,  194,  195,  196,  191,  197,    0,
  571.   200,    0,  203,  193,    0,    0,    0,  201,  198,    0,
  572.   199,    0,  202,    0,    0,    0,    0,    0,    0,    0,
  573.     0,    0,    0,  192,    0,  194,  195,  196,  204,    0,
  574.     0,    0,    0,  197,    0,  200,    0,  203,  193,    0,
  575.     0,    0,  201,  198,    0,  199,    0,  202,    0,    0,
  576.     0,    0,    0,    0,    0,    0,    0,    0,  192,  204,
  577.   194,  195,  196,  197,    0,  200,    0,  203,    0,    0,
  578.     0,    0,  201,  198,    0,  199,    0,  202,    0,    0,
  579.     0,    0,    0,    0,    0,    0,    0,    0,    0,  192,
  580.   194,  195,  196,    0,  204,    0,    0,    0,    0,    0,
  581.     0,    0,    0,    0,    0,    0,    0,    0,  143,  144,
  582.   145,  146,  147,  148,  149,  150,  151,  152,  153,  154,
  583.   155,  156,  157,  158,  204,  159,  160,  161,  162,  163,
  584.   164,  165,  166,  167,  168,  169,  170,  171,  172,  173,
  585.   174,  175,  176,  177,  178,  179,  180,  181,  182,  183,
  586.   184,  185,  186,  187,  188,    0,    1,    0,    0,    0,
  587.     0,    0,    0,    0,    2,    3,    4,    5,    6,    7,
  588.     8,    9,   10,   11,   12,   13,   14,   15,   16,   17,
  589.    18,   19,   20,   21,   22,
  590. };
  591. short yycheck[] = {                                       3,
  592.     4,    5,    6,    7,    8,    9,   10,   11,   12,   33,
  593.    14,   15,   16,   17,   18,   19,   20,    4,    5,   58,
  594.   263,  258,    9,   36,   36,   36,  263,   14,   15,   16,
  595.     0,   18,   19,   37,  263,  258,   40,   41,    0,   43,
  596.    37,   12,   58,  258,   61,   42,   61,   35,  263,   37,
  597.    47,   61,   56,   61,   42,   43,   43,   45,  109,   47,
  598.   111,  112,  113,   58,   68,  116,   37,   58,   38,   40,
  599.    41,   41,   41,   41,   44,   44,   44,   36,  258,   41,
  600.   263,   43,  258,   45,   36,   56,   41,   41,   58,   44,
  601.    44,  258,   43,   63,   45,  333,  334,   94,    0,   61,
  602.     0,  263,  126,   61,   61,   33,   94,  258,   36,   69,
  603.    70,   71,   40,   73,  258,   43,  258,   45,   33,  258,
  604.    40,   36,  345,  346,  347,   40,   40,   40,   43,    0,
  605.    45,   36,   40,   61,   40,   61,   64,   40,   43,   41,
  606.    45,   41,   44,   40,   44,   40,   61,   16,   40,   64,
  607.    40,   40,   40,   40,  124,  115,   58,   40,   58,   40,
  608.    40,   63,   33,   63,   35,   40,   37,   38,   40,   94,
  609.    41,   42,   43,   44,   45,   40,   47,   40,   40,   40,
  610.    49,   50,   51,   52,   40,   40,   40,   58,   40,   60,
  611.    61,   62,   63,    7,    8,   40,   10,   11,  126,   40,
  612.    40,   40,   40,   17,   40,   36,   20,  211,  212,  213,
  613.   214,  126,   43,   82,   45,   40,   40,   40,   40,  258,
  614.    40,   40,  124,   40,  211,  212,  213,  214,   40,  233,
  615.   234,  191,  192,  193,  194,  195,  196,   40,  198,  199,
  616.   200,  201,  202,  203,  204,  258,  233,  234,  260,  261,
  617.   261,  263,  263,  124,   40,  215,  216,  217,  218,  219,
  618.   220,  221,  222,  223,  224,  225,  226,  227,  228,  229,
  619.   230,  231,  232,  233,  234,  235,  236,  237,  238,  239,
  620.   240,  241,  242,  243,  244,  245,  246,  247,  248,  249,
  621.   250,  251,  252,  253,  254,  255,  258,  259,  257,   40,
  622.   260,   40,  261,  263,  263,  265,  258,  258,  259,  333,
  623.   334,  335,  336,  337,  338,  339,  340,  341,  342,  343,
  624.   344,   40,    0,   41,   41,   41,   41,   41,   41,  257,
  625.   258,  259,   41,  261,   41,  263,   41,    0,    0,    0,
  626.     0,    0,  257,  258,  259,    0,  261,    0,  263,    0,
  627.     0,    0,  257,  258,  259,  260,  261,  285,  263,    0,
  628.     0,  321,    0,   -1,  350,  369,  370,  371,   -1,   -1,
  629.   285,   -1,  332,   -1,  302,   -1,   -1,   -1,  338,   -1,
  630.    -1,  341,  369,  370,  371,   -1,   -1,  302,   33,   -1,
  631.    -1,   36,  352,  353,  354,   40,   -1,   -1,   43,   -1,
  632.    45,   -1,  362,  363,   -1,  365,  366,  367,  368,   -1,
  633.     0,   33,   -1,   -1,   36,   -1,   -1,   -1,   40,   64,
  634.     0,   43,   -1,   45,   -1,   -1,   -1,  258,  259,  260,
  635.   261,   -1,  263,   -1,   -1,  395,   -1,  397,  398,  399,
  636.    -1,  401,   64,   33,   -1,   35,   -1,   37,   38,    0,
  637.    -1,   41,   42,   43,   44,   45,   -1,   47,   38,   -1,
  638.    -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   58,   -1,
  639.    60,   61,   62,   63,   -1,   -1,   -1,   -1,   58,   -1,
  640.     0,  126,   33,   63,   35,   -1,   37,   38,   -1,   -1,
  641.    41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  642.    -1,   -1,   -1,   -1,  126,   -1,   -1,   58,   -1,   60,
  643.    61,   62,   63,   33,    0,   35,   -1,   -1,   38,   -1,
  644.    -1,   41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,
  645.    -1,   -1,   -1,   -1,  124,   -1,   -1,   -1,   58,   -1,
  646.    60,   61,   62,   63,  124,    0,   -1,   33,   -1,   35,
  647.    -1,   -1,   38,   -1,   -1,   41,   -1,   43,   44,   45,
  648.   333,  334,   -1,   -1,   -1,   -1,  339,  340,  341,  342,
  649.   343,   -1,   58,  124,   60,   61,   62,   63,   33,   -1,
  650.    35,   -1,   -1,   38,    0,    0,   41,   -1,   43,   44,
  651.    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  652.    -1,   -1,   -1,   58,  124,   60,   61,   62,   63,   -1,
  653.    -1,   -1,  257,  258,  259,  260,  261,   -1,  263,   -1,
  654.     0,    0,   38,   38,   -1,   41,   41,   -1,   44,   44,
  655.     0,   -1,   -1,   -1,   -1,  257,  258,  259,  124,  261,
  656.   285,  263,   58,   58,   -1,   -1,   -1,   63,   63,   -1,
  657.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  302,   38,   38,
  658.    -1,   41,   41,  285,   44,   44,   -1,   -1,   38,  124,
  659.    -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   58,   58,
  660.   302,   -1,   -1,   63,   63,   -1,   -1,   33,   58,   35,
  661.    -1,   37,   38,   63,   -1,   41,   42,   43,   44,   45,
  662.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,  124,
  663.    -1,   -1,   -1,   -1,   60,   61,   62,   63,   -1,   -1,
  664.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  665.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  666.    -1,   -1,   -1,   -1,  124,  124,   -1,   -1,   94,   60,
  667.    61,   62,   63,   -1,  124,   -1,   -1,   33,   -1,   35,
  668.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   -1,   45,
  669.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  670.    -1,   -1,   58,   94,   60,   61,   62,   63,   -1,   -1,
  671.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  672.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  673.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  674.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  675.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  676.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  677.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  678.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  679.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  680.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  681.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  682.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  683.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  684.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  685.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  686.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  687.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  688.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  689.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  690.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  691.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  692.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  693.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  694.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  695.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  696.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  697.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  698.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  699.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  700.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  701.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  702.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  703.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  704.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  705.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  706.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  707.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  708.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  709.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  710.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  711.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  712.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  713.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  714.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  715.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  716.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  717.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  718.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  719.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  720.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  721.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  722.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  723.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  724.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  725.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  726.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  727.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  728.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  729.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  730.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  731.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  732.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  733.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  734.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  735.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  736.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  737.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  738.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  739.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  740.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  741.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  742.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  743.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  744.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  745.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  746.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  747.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  748.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  749.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  750.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  751.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  752.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  753.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  754.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  755.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  756.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  757.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  758.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  759.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  760.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  761.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  762.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  763.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  764.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  765.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  766.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  767.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  768.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  769.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  770.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  771.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  772.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  773.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  774.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  775.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  776.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  777.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  778.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  779.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  780.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  781.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  782.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  783.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  784.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  785.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  786.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  787.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  788.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  789.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  790.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  791.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  792.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  793.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  794.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  795.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  796.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  797.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  798.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  799.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  800.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  801.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  802.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  803.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  804.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  805.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  806.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  807.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  808.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  809.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  810.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  811.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  812.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  813.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  814.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  815.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  816.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  817.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  818.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  819.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  820.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  821.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  822.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  823.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  824.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  825.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  826.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  827.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  828.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  829.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   44,   45,
  830.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  831.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  832.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  833.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  834.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  835.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  836.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  837.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  838.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  839.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  840.    -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  841.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  842.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  843.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  844.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  845.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  846.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  847.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  848.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  849.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  850.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  851.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  852.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  853.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  854.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  855.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  856.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  857.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  858.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  859.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  860.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  861.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  862.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  863.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  864.    -1,   37,   38,   -1,   -1,   41,   42,   43,   -1,   45,
  865.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  866.    -1,   -1,   -1,   94,   60,   61,   62,   63,   -1,   -1,
  867.    -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,   -1,
  868.    41,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
  869.    -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   94,   60,
  870.    61,   62,   63,   -1,   -1,   -1,   -1,   33,   -1,   35,
  871.    -1,   37,   38,   -1,   -1,   -1,   42,   43,   -1,   45,
  872.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,
  873.    -1,   -1,   -1,   94,   60,   61,   62,   63,   33,   -1,
  874.    35,   -1,   37,   38,   -1,   -1,   -1,   42,   43,   -1,
  875.    45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  876.    -1,   -1,   -1,  124,   -1,   60,   61,   62,   94,   -1,
  877.    -1,   -1,   -1,   33,   -1,   35,   -1,   37,   38,   -1,
  878.    -1,   -1,   42,   43,   -1,   45,   -1,   47,   -1,   -1,
  879.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,   94,
  880.    60,   61,   62,   33,   -1,   35,   -1,   37,   -1,   -1,
  881.    -1,   -1,   42,   43,   -1,   45,   -1,   47,   -1,   -1,
  882.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,
  883.    60,   61,   62,   -1,   94,   -1,   -1,   -1,   -1,   -1,
  884.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  286,  287,
  885.   288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  886.   298,  299,  300,  301,   94,  303,  304,  305,  306,  307,
  887.   308,  309,  310,  311,  312,  313,  314,  315,  316,  317,
  888.   318,  319,  320,  321,  322,  323,  324,  325,  326,  327,
  889.   328,  329,  330,  331,  332,   -1,  256,   -1,   -1,   -1,
  890.    -1,   -1,   -1,   -1,  264,  265,  266,  267,  268,  269,
  891.   270,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  892.   280,  281,  282,  283,  284,
  893. };
  894. #define YYFINAL 23
  895. #ifndef YYDEBUG
  896. #define YYDEBUG 0
  897. #endif
  898. #define YYMAXTOKEN 347
  899. #if YYDEBUG
  900. char *yyname[] = {
  901. "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  902. "'!'",0,"'#'","'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,
  903. 0,0,0,0,0,0,0,0,0,"':'",0,"'<'","'='","'>'","'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,
  904. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  905. 0,0,0,0,0,0,0,0,0,"'|'",0,"'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  906. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  907. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  908. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"STRING","NUMBER","FNUMBER",
  909. "RANGE","VAR","_WORD","COL","S_FORMAT","S_LABEL","S_LEFTSTRING","S_RIGHTSTRING",
  910. "S_GET","S_PUT","S_MERGE","S_LET","S_WRITE","S_TBL","S_COPY","S_SHOW","S_ERASE",
  911. "S_FILL","S_GOTO","S_DEFINE","S_UNDEFINE","S_VALUE","S_MDIR","S_HIDE","S_SET",
  912. "K_FIXED","K_SUM","K_PROD","K_AVG","K_STDDEV","K_ACOS","K_ASIN","K_ATAN",
  913. "K_ATAN2","K_CEIL","K_COS","K_EXP","K_FABS","K_FLOOR","K_HYPOT","K_LN","K_LOG",
  914. "K_PI","K_POW","K_SIN","K_SQRT","K_TAN","K_DTR","K_RTD","K_MAX","K_MIN","K_RND",
  915. "K_PV","K_FV","K_PMT","K_HOUR","K_MINUTE","K_SECOND","K_MONTH","K_DAY","K_YEAR",
  916. "K_NOW","K_DATE","K_FMT","K_SUBSTR","K_STON","K_EQS","K_EXT","K_NVAL","K_SVAL",
  917. "K_LOOKUP","K_INDEX","K_STINDEX","K_AUTO","K_AUTOCALC","K_BYROWS","K_BYCOLS",
  918. "K_BYGRAPH","K_ITERATIONS","K_NUMERIC","K_PRESCALE","K_EXTFUN","K_CELLCUR",
  919. "K_TOPROW","K_TBLSTYLE","K_TBL","K_LATEX","K_TEX",
  920. };
  921. char *yyrule[] = {
  922. "$accept : command",
  923. "command : S_LET var_or_range '=' e",
  924. "command : S_LABEL var_or_range '=' e",
  925. "command : S_LEFTSTRING var_or_range '=' e",
  926. "command : S_RIGHTSTRING var_or_range '=' e",
  927. "command : S_FORMAT COL ':' COL NUMBER NUMBER",
  928. "command : S_FORMAT COL NUMBER NUMBER",
  929. "command : S_GET strarg",
  930. "command : S_MERGE strarg",
  931. "command : S_MDIR strarg",
  932. "command : S_PUT strarg range",
  933. "command : S_PUT strarg",
  934. "command : S_WRITE strarg range",
  935. "command : S_WRITE strarg",
  936. "command : S_TBL strarg range",
  937. "command : S_TBL strarg",
  938. "command : S_SHOW COL ':' COL",
  939. "command : S_SHOW NUMBER ':' NUMBER",
  940. "command : S_HIDE COL",
  941. "command : S_HIDE NUMBER",
  942. "command : S_COPY range var_or_range",
  943. "command : S_ERASE",
  944. "command : S_ERASE var_or_range",
  945. "command : S_VALUE",
  946. "command : S_VALUE var_or_range",
  947. "command : S_FILL num num",
  948. "command : S_FILL var_or_range num num",
  949. "command : S_GOTO var_or_range",
  950. "command : S_GOTO num",
  951. "command : S_GOTO STRING",
  952. "command : S_GOTO",
  953. "command : S_DEFINE strarg",
  954. "command : S_DEFINE strarg range",
  955. "command : S_DEFINE strarg var",
  956. "command : S_UNDEFINE var_or_range",
  957. "command : S_SET setlist",
  958. "command :",
  959. "command : error",
  960. "term : var",
  961. "term : K_FIXED term",
  962. "term : '@' K_SUM '(' var_or_range ')'",
  963. "term : '@' K_PROD '(' var_or_range ')'",
  964. "term : '@' K_AVG '(' var_or_range ')'",
  965. "term : '@' K_STDDEV '(' var_or_range ')'",
  966. "term : '@' K_MAX '(' var_or_range ')'",
  967. "term : '@' K_MAX '(' e ',' expr_list ')'",
  968. "term : '@' K_MIN '(' var_or_range ')'",
  969. "term : '@' K_MIN '(' e ',' expr_list ')'",
  970. "term : '@' K_ACOS '(' e ')'",
  971. "term : '@' K_ASIN '(' e ')'",
  972. "term : '@' K_ATAN '(' e ')'",
  973. "term : '@' K_ATAN2 '(' e ',' e ')'",
  974. "term : '@' K_CEIL '(' e ')'",
  975. "term : '@' K_COS '(' e ')'",
  976. "term : '@' K_EXP '(' e ')'",
  977. "term : '@' K_FABS '(' e ')'",
  978. "term : '@' K_FLOOR '(' e ')'",
  979. "term : '@' K_HYPOT '(' e ',' e ')'",
  980. "term : '@' K_LN '(' e ')'",
  981. "term : '@' K_LOG '(' e ')'",
  982. "term : '@' K_POW '(' e ',' e ')'",
  983. "term : '@' K_SIN '(' e ')'",
  984. "term : '@' K_SQRT '(' e ')'",
  985. "term : '@' K_TAN '(' e ')'",
  986. "term : '@' K_DTR '(' e ')'",
  987. "term : '@' K_RTD '(' e ')'",
  988. "term : '@' K_RND '(' e ')'",
  989. "term : '@' K_PV '(' e ',' e ',' e ')'",
  990. "term : '@' K_FV '(' e ',' e ',' e ')'",
  991. "term : '@' K_PMT '(' e ',' e ',' e ')'",
  992. "term : '@' K_HOUR '(' e ')'",
  993. "term : '@' K_MINUTE '(' e ')'",
  994. "term : '@' K_SECOND '(' e ')'",
  995. "term : '@' K_MONTH '(' e ')'",
  996. "term : '@' K_DAY '(' e ')'",
  997. "term : '@' K_YEAR '(' e ')'",
  998. "term : '@' K_NOW",
  999. "term : '@' K_STON '(' e ')'",
  1000. "term : '@' K_EQS '(' e ',' e ')'",
  1001. "term : '@' K_DATE '(' e ')'",
  1002. "term : '@' K_FMT '(' e ',' e ')'",
  1003. "term : '@' K_INDEX '(' e ',' var_or_range ')'",
  1004. "term : '@' K_LOOKUP '(' e ',' var_or_range ')'",
  1005. "term : '@' K_STINDEX '(' e ',' var_or_range ')'",
  1006. "term : '@' K_EXT '(' e ',' e ')'",
  1007. "term : '@' K_NVAL '(' e ',' e ')'",
  1008. "term : '@' K_SVAL '(' e ',' e ')'",
  1009. "term : '@' K_SUBSTR '(' e ',' e ',' e ')'",
  1010. "term : '(' e ')'",
  1011. "term : '+' term",
  1012. "term : '-' term",
  1013. "term : NUMBER",
  1014. "term : FNUMBER",
  1015. "term : K_PI",
  1016. "term : STRING",
  1017. "term : '~' term",
  1018. "term : '!' term",
  1019. "e : e '+' e",
  1020. "e : e '-' e",
  1021. "e : e '*' e",
  1022. "e : e '/' e",
  1023. "e : e '%' e",
  1024. "e : e '^' e",
  1025. "e : term",
  1026. "e : e '?' e ':' e",
  1027. "e : e '<' e",
  1028. "e : e '=' e",
  1029. "e : e '>' e",
  1030. "e : e '&' e",
  1031. "e : e '|' e",
  1032. "e : e '<' '=' e",
  1033. "e : e '!' '=' e",
  1034. "e : e '>' '=' e",
  1035. "e : e '#' e",
  1036. "expr_list : e",
  1037. "expr_list : expr_list ',' e",
  1038. "range : var ':' var",
  1039. "range : RANGE",
  1040. "var : COL NUMBER",
  1041. "var : '$' COL NUMBER",
  1042. "var : COL '$' NUMBER",
  1043. "var : '$' COL '$' NUMBER",
  1044. "var : VAR",
  1045. "var_or_range : range",
  1046. "var_or_range : var",
  1047. "num : NUMBER",
  1048. "num : FNUMBER",
  1049. "num : '-' num",
  1050. "num : '+' num",
  1051. "strarg : STRING",
  1052. "strarg : var",
  1053. "setlist :",
  1054. "setlist : setlist setitem",
  1055. "setitem : K_AUTO",
  1056. "setitem : K_AUTOCALC",
  1057. "setitem : '~' K_AUTO",
  1058. "setitem : '~' K_AUTOCALC",
  1059. "setitem : '!' K_AUTO",
  1060. "setitem : '!' K_AUTOCALC",
  1061. "setitem : K_BYCOLS",
  1062. "setitem : K_BYROWS",
  1063. "setitem : K_BYGRAPH",
  1064. "setitem : K_NUMERIC",
  1065. "setitem : '!' K_NUMERIC",
  1066. "setitem : K_PRESCALE",
  1067. "setitem : '!' K_PRESCALE",
  1068. "setitem : K_EXTFUN",
  1069. "setitem : '!' K_EXTFUN",
  1070. "setitem : K_CELLCUR",
  1071. "setitem : '!' K_CELLCUR",
  1072. "setitem : K_TOPROW",
  1073. "setitem : '!' K_TOPROW",
  1074. "setitem : K_ITERATIONS '=' NUMBER",
  1075. "setitem : K_TBLSTYLE '=' NUMBER",
  1076. "setitem : K_TBLSTYLE '=' K_TBL",
  1077. "setitem : K_TBLSTYLE '=' K_LATEX",
  1078. "setitem : K_TBLSTYLE '=' K_TEX",
  1079. };
  1080. #endif
  1081. #define yyclearin (yychar=(-1))
  1082. #define yyerrok (yyerrflag=0)
  1083. #ifndef YYSTACKSIZE
  1084. #ifdef YYMAXDEPTH
  1085. #define YYSTACKSIZE YYMAXDEPTH
  1086. #else
  1087. #define YYSTACKSIZE 300
  1088. #endif
  1089. #endif
  1090. int yydebug;
  1091. int yynerrs;
  1092. int yyerrflag;
  1093. int yychar;
  1094. short *yyssp;
  1095. YYSTYPE *yyvsp;
  1096. YYSTYPE yyval;
  1097. YYSTYPE yylval;
  1098. #define yystacksize YYSTACKSIZE
  1099. short yyss[YYSTACKSIZE];
  1100. YYSTYPE yyvs[YYSTACKSIZE];
  1101. #define YYABORT goto yyabort
  1102. #define YYACCEPT goto yyaccept
  1103. #define YYERROR goto yyerrlab
  1104. int
  1105. yyparse()
  1106. {
  1107.     register int yym, yyn, yystate;
  1108. #if YYDEBUG
  1109.     register char *yys;
  1110.     extern char *getenv();
  1111.  
  1112.     if (yys = getenv("YYDEBUG"))
  1113.     {
  1114.         yyn = *yys;
  1115.         if (yyn >= '0' && yyn <= '9')
  1116.             yydebug = yyn - '0';
  1117.     }
  1118. #endif
  1119.  
  1120.     yynerrs = 0;
  1121.     yyerrflag = 0;
  1122.     yychar = (-1);
  1123.  
  1124.     yyssp = yyss;
  1125.     yyvsp = yyvs;
  1126.     *yyssp = yystate = 0;
  1127.  
  1128. yyloop:
  1129.     if (yyn = yydefred[yystate]) goto yyreduce;
  1130.     if (yychar < 0)
  1131.     {
  1132.         if ((yychar = yylex()) < 0) yychar = 0;
  1133. #if YYDEBUG
  1134.         if (yydebug)
  1135.         {
  1136.             yys = 0;
  1137.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1138.             if (!yys) yys = "illegal-symbol";
  1139.             printf("yydebug: state %d, reading %d (%s)\n", yystate,
  1140.                     yychar, yys);
  1141.         }
  1142. #endif
  1143.     }
  1144.     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
  1145.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  1146.     {
  1147. #if YYDEBUG
  1148.         if (yydebug)
  1149.             printf("yydebug: state %d, shifting to state %d\n",
  1150.                     yystate, yytable[yyn]);
  1151. #endif
  1152.         if (yyssp >= yyss + yystacksize - 1)
  1153.         {
  1154.             goto yyoverflow;
  1155.         }
  1156.         *++yyssp = yystate = yytable[yyn];
  1157.         *++yyvsp = yylval;
  1158.         yychar = (-1);
  1159.         if (yyerrflag > 0)  --yyerrflag;
  1160.         goto yyloop;
  1161.     }
  1162.     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
  1163.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  1164.     {
  1165.         yyn = yytable[yyn];
  1166.         goto yyreduce;
  1167.     }
  1168.     if (yyerrflag) goto yyinrecovery;
  1169. #ifdef lint
  1170.     goto yynewerror;
  1171. #endif
  1172. yynewerror:
  1173.     yyerror("syntax error");
  1174. #ifdef lint
  1175.     goto yyerrlab;
  1176. #endif
  1177. yyerrlab:
  1178.     ++yynerrs;
  1179. yyinrecovery:
  1180.     if (yyerrflag < 3)
  1181.     {
  1182.         yyerrflag = 3;
  1183.         for (;;)
  1184.         {
  1185.             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
  1186.                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
  1187.             {
  1188. #if YYDEBUG
  1189.                 if (yydebug)
  1190.                     printf("yydebug: state %d, error recovery shifting\
  1191.  to state %d\n", *yyssp, yytable[yyn]);
  1192. #endif
  1193.                 if (yyssp >= yyss + yystacksize - 1)
  1194.                 {
  1195.                     goto yyoverflow;
  1196.                 }
  1197.                 *++yyssp = yystate = yytable[yyn];
  1198.                 *++yyvsp = yylval;
  1199.                 goto yyloop;
  1200.             }
  1201.             else
  1202.             {
  1203. #if YYDEBUG
  1204.                 if (yydebug)
  1205.                     printf("yydebug: error recovery discarding state %d\n",
  1206.                             *yyssp);
  1207. #endif
  1208.                 if (yyssp <= yyss) goto yyabort;
  1209.                 --yyssp;
  1210.                 --yyvsp;
  1211.             }
  1212.         }
  1213.     }
  1214.     else
  1215.     {
  1216.         if (yychar == 0) goto yyabort;
  1217. #if YYDEBUG
  1218.         if (yydebug)
  1219.         {
  1220.             yys = 0;
  1221.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1222.             if (!yys) yys = "illegal-symbol";
  1223.             printf("yydebug: state %d, error recovery discards token %d (%s)\n",
  1224.                     yystate, yychar, yys);
  1225.         }
  1226. #endif
  1227.         yychar = (-1);
  1228.         goto yyloop;
  1229.     }
  1230. yyreduce:
  1231. #if YYDEBUG
  1232.     if (yydebug)
  1233.         printf("yydebug: state %d, reducing by rule %d (%s)\n",
  1234.                 yystate, yyn, yyrule[yyn]);
  1235. #endif
  1236.     yym = yylen[yyn];
  1237.     yyval = yyvsp[1-yym];
  1238.     switch (yyn)
  1239.     {
  1240. case 1:
  1241. #line 146 "gram.y"
  1242. { let(yyvsp[-2].rval .left.vp, yyvsp[0].enode ); }
  1243. break;
  1244. case 2:
  1245. #line 148 "gram.y"
  1246. { slet(yyvsp[-2].rval .left.vp, yyvsp[0].enode , 0); }
  1247. break;
  1248. case 3:
  1249. #line 150 "gram.y"
  1250. { slet(yyvsp[-2].rval .left.vp, yyvsp[0].enode , -1); }
  1251. break;
  1252. case 4:
  1253. #line 152 "gram.y"
  1254. { slet(yyvsp[-2].rval .left.vp, yyvsp[0].enode , 1); }
  1255. break;
  1256. case 5:
  1257. #line 154 "gram.y"
  1258. { doformat(yyvsp[-4].ival ,yyvsp[-2].ival ,yyvsp[-1].ival ,yyvsp[0].ival ); }
  1259. break;
  1260. case 6:
  1261. #line 156 "gram.y"
  1262. { doformat(yyvsp[-2].ival ,yyvsp[-2].ival ,yyvsp[-1].ival ,yyvsp[0].ival ); }
  1263. break;
  1264. case 7:
  1265. #line 157 "gram.y"
  1266. {  /* This tmp hack is because readfile
  1267.                     * recurses back through yyparse. */
  1268.                   char *tmp;
  1269.                   tmp = yyvsp[0].sval ;
  1270.                   readfile (tmp, 1);
  1271.                   xfree(tmp);
  1272.                 }
  1273. break;
  1274. case 8:
  1275. #line 164 "gram.y"
  1276. {
  1277.                   char *tmp;
  1278.                   tmp = yyvsp[0].sval ;
  1279.                   readfile (tmp, 0);
  1280.                   xfree(tmp);
  1281.                 }
  1282. break;
  1283. case 9:
  1284. #line 171 "gram.y"
  1285. { if (mdir) xfree(mdir); mdir = yyvsp[0].sval ; }
  1286. break;
  1287. case 10:
  1288. #line 173 "gram.y"
  1289. { (void) writefile(yyvsp[-1].sval , (yyvsp[0].rval .left.vp)->row, 
  1290.                  (yyvsp[0].rval .left.vp)->col, (yyvsp[0].rval .right.vp)->row,
  1291.                  (yyvsp[0].rval .right.vp)->col);
  1292.                  xfree(yyvsp[-1].sval ); }
  1293. break;
  1294. case 11:
  1295. #line 178 "gram.y"
  1296. { (void) writefile (yyvsp[0].sval , 0, 0, maxrow, maxcol);
  1297.                  xfree(yyvsp[0].sval ); }
  1298. break;
  1299. case 12:
  1300. #line 180 "gram.y"
  1301. { (void) printfile(yyvsp[-1].sval , (yyvsp[0].rval .left.vp)->row, 
  1302.              (yyvsp[0].rval .left.vp)->col, (yyvsp[0].rval .right.vp)->row,
  1303.              (yyvsp[0].rval .right.vp)->col);
  1304.              xfree(yyvsp[-1].sval ); }
  1305. break;
  1306. case 13:
  1307. #line 184 "gram.y"
  1308. { (void) printfile (yyvsp[0].sval , 0, 0, maxrow, maxcol);
  1309.              xfree(yyvsp[0].sval ); }
  1310. break;
  1311. case 14:
  1312. #line 186 "gram.y"
  1313. { (void) tblprintfile(yyvsp[-1].sval , (yyvsp[0].rval .left.vp)->row, 
  1314.              (yyvsp[0].rval .left.vp)->col, (yyvsp[0].rval .right.vp)->row,
  1315.              (yyvsp[0].rval .right.vp)->col);
  1316.              xfree(yyvsp[-1].sval ); }
  1317. break;
  1318. case 15:
  1319. #line 190 "gram.y"
  1320. { (void)tblprintfile (yyvsp[0].sval , 0, 0, maxrow, maxcol);
  1321.              xfree(yyvsp[0].sval ); }
  1322. break;
  1323. case 16:
  1324. #line 193 "gram.y"
  1325. { showcol( yyvsp[-2].ival , yyvsp[0].ival ); }
  1326. break;
  1327. case 17:
  1328. #line 195 "gram.y"
  1329. { showrow( yyvsp[-2].ival , yyvsp[0].ival ); }
  1330. break;
  1331. case 18:
  1332. #line 197 "gram.y"
  1333. { hide_col( yyvsp[0].ival  ); }
  1334. break;
  1335. case 19:
  1336. #line 199 "gram.y"
  1337. { hide_row( yyvsp[0].ival  ); }
  1338. break;
  1339. case 20:
  1340. #line 201 "gram.y"
  1341. { copy(yyvsp[-1].rval .left.vp,yyvsp[-1].rval .right.vp,
  1342.                     yyvsp[0].rval .left.vp,yyvsp[0].rval .right.vp); }
  1343. break;
  1344. case 21:
  1345. #line 204 "gram.y"
  1346. { eraser(lookat(showsr, showsc),
  1347.                         lookat(currow, curcol)); }
  1348. break;
  1349. case 22:
  1350. #line 207 "gram.y"
  1351. { eraser(yyvsp[0].rval .left.vp, yyvsp[0].rval .right.vp); }
  1352. break;
  1353. case 23:
  1354. #line 208 "gram.y"
  1355. { valueize_area(showsr, showsc, currow, curcol);
  1356.                  modflg++; }
  1357. break;
  1358. case 24:
  1359. #line 210 "gram.y"
  1360. { valueize_area((yyvsp[0].rval .left.vp)->row,
  1361.                 (yyvsp[0].rval .left.vp)->col,
  1362.                 (yyvsp[0].rval .right.vp)->row,
  1363.                 (yyvsp[0].rval .right.vp)->col); modflg++; }
  1364. break;
  1365. case 25:
  1366. #line 214 "gram.y"
  1367. { fill(lookat(showsr, showsc),
  1368.                       lookat(currow, curcol), yyvsp[-1].fval , yyvsp[0].fval ); }
  1369. break;
  1370. case 26:
  1371. #line 217 "gram.y"
  1372. { fill(yyvsp[-2].rval .left.vp, yyvsp[-2].rval .right.vp, yyvsp[-1].fval , yyvsp[0].fval ); }
  1373. break;
  1374. case 27:
  1375. #line 218 "gram.y"
  1376. {moveto(yyvsp[0].rval .left.vp->row, yyvsp[0].rval .left.vp->col);}
  1377. break;
  1378. case 28:
  1379. #line 219 "gram.y"
  1380. {num_search(yyvsp[0].fval );}
  1381. break;
  1382. case 29:
  1383. #line 220 "gram.y"
  1384. {str_search(yyvsp[0].sval );}
  1385. break;
  1386. case 30:
  1387. #line 221 "gram.y"
  1388. {go_last();}
  1389. break;
  1390. case 31:
  1391. #line 222 "gram.y"
  1392. { struct ent_ptr arg1, arg2;
  1393.                     arg1.vp = lookat(showsr, showsc);
  1394.                     arg1.vf = 0;
  1395.                     arg2.vp = lookat(currow, curcol);
  1396.                     arg2.vf = 0;
  1397.                     add_range(yyvsp[0].sval , arg1, arg2, 1); }
  1398. break;
  1399. case 32:
  1400. #line 229 "gram.y"
  1401. { add_range(yyvsp[-1].sval , yyvsp[0].rval .left, yyvsp[0].rval .right, 1); }
  1402. break;
  1403. case 33:
  1404. #line 230 "gram.y"
  1405. { add_range(yyvsp[-1].sval , yyvsp[0].ent , yyvsp[0].ent , 0); }
  1406. break;
  1407. case 34:
  1408. #line 231 "gram.y"
  1409. { del_range(yyvsp[0].rval .left.vp, yyvsp[0].rval .right.vp); }
  1410. break;
  1411. case 38:
  1412. #line 236 "gram.y"
  1413. { yyval.enode  = new_var('v', yyvsp[0].ent ); }
  1414. break;
  1415. case 39:
  1416. #line 237 "gram.y"
  1417. { yyval.enode  = new ('f', ENULL, yyvsp[0].enode ); }
  1418. break;
  1419. case 40:
  1420. #line 239 "gram.y"
  1421. { yyval.enode  = new_range(REDUCE | '+', yyvsp[-1].rval ); }
  1422. break;
  1423. case 41:
  1424. #line 241 "gram.y"
  1425. { yyval.enode  = new_range (REDUCE | '*', yyvsp[-1].rval ); }
  1426. break;
  1427. case 42:
  1428. #line 243 "gram.y"
  1429. { yyval.enode  = new_range (REDUCE | 'a', yyvsp[-1].rval ); }
  1430. break;
  1431. case 43:
  1432. #line 245 "gram.y"
  1433. { yyval.enode  = new_range (REDUCE | 's', yyvsp[-1].rval ); }
  1434. break;
  1435. case 44:
  1436. #line 247 "gram.y"
  1437. { yyval.enode  = new_range (REDUCE | MAX, yyvsp[-1].rval ); }
  1438. break;
  1439. case 45:
  1440. #line 249 "gram.y"
  1441. { yyval.enode  = new(LMAX, yyvsp[-1].enode , yyvsp[-3].enode ); }
  1442. break;
  1443. case 46:
  1444. #line 251 "gram.y"
  1445. { yyval.enode  = new_range (REDUCE | MIN, yyvsp[-1].rval ); }
  1446. break;
  1447. case 47:
  1448. #line 253 "gram.y"
  1449. { yyval.enode  = new(LMIN, yyvsp[-1].enode , yyvsp[-3].enode ); }
  1450. break;
  1451. case 48:
  1452. #line 255 "gram.y"
  1453. { yyval.enode  = new(ACOS, ENULL, yyvsp[-1].enode ); }
  1454. break;
  1455. case 49:
  1456. #line 256 "gram.y"
  1457. { yyval.enode  = new(ASIN, ENULL, yyvsp[-1].enode ); }
  1458. break;
  1459. case 50:
  1460. #line 257 "gram.y"
  1461. { yyval.enode  = new(ATAN, ENULL, yyvsp[-1].enode ); }
  1462. break;
  1463. case 51:
  1464. #line 258 "gram.y"
  1465. { yyval.enode  = new(ATAN2, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1466. break;
  1467. case 52:
  1468. #line 259 "gram.y"
  1469. { yyval.enode  = new(CEIL, ENULL, yyvsp[-1].enode ); }
  1470. break;
  1471. case 53:
  1472. #line 260 "gram.y"
  1473. { yyval.enode  = new(COS, ENULL, yyvsp[-1].enode ); }
  1474. break;
  1475. case 54:
  1476. #line 261 "gram.y"
  1477. { yyval.enode  = new(EXP, ENULL, yyvsp[-1].enode ); }
  1478. break;
  1479. case 55:
  1480. #line 262 "gram.y"
  1481. { yyval.enode  = new(FABS, ENULL, yyvsp[-1].enode ); }
  1482. break;
  1483. case 56:
  1484. #line 263 "gram.y"
  1485. { yyval.enode  = new(FLOOR, ENULL, yyvsp[-1].enode ); }
  1486. break;
  1487. case 57:
  1488. #line 264 "gram.y"
  1489. { yyval.enode  = new(HYPOT, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1490. break;
  1491. case 58:
  1492. #line 265 "gram.y"
  1493. { yyval.enode  = new(LOG, ENULL, yyvsp[-1].enode ); }
  1494. break;
  1495. case 59:
  1496. #line 266 "gram.y"
  1497. { yyval.enode  = new(LOG10, ENULL, yyvsp[-1].enode ); }
  1498. break;
  1499. case 60:
  1500. #line 267 "gram.y"
  1501. { yyval.enode  = new(POW, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1502. break;
  1503. case 61:
  1504. #line 268 "gram.y"
  1505. { yyval.enode  = new(SIN, ENULL, yyvsp[-1].enode ); }
  1506. break;
  1507. case 62:
  1508. #line 269 "gram.y"
  1509. { yyval.enode  = new(SQRT, ENULL, yyvsp[-1].enode ); }
  1510. break;
  1511. case 63:
  1512. #line 270 "gram.y"
  1513. { yyval.enode  = new(TAN, ENULL, yyvsp[-1].enode ); }
  1514. break;
  1515. case 64:
  1516. #line 271 "gram.y"
  1517. { yyval.enode  = new(DTR, ENULL, yyvsp[-1].enode ); }
  1518. break;
  1519. case 65:
  1520. #line 272 "gram.y"
  1521. { yyval.enode  = new(RTD, ENULL, yyvsp[-1].enode ); }
  1522. break;
  1523. case 66:
  1524. #line 273 "gram.y"
  1525. { yyval.enode  = new(RND, ENULL, yyvsp[-1].enode ); }
  1526. break;
  1527. case 67:
  1528. #line 275 "gram.y"
  1529. { yyval.enode  = new(PV,  yyvsp[-5].enode ,new(':',yyvsp[-3].enode ,yyvsp[-1].enode )); }
  1530. break;
  1531. case 68:
  1532. #line 276 "gram.y"
  1533. { yyval.enode  = new(FV,  yyvsp[-5].enode ,new(':',yyvsp[-3].enode ,yyvsp[-1].enode )); }
  1534. break;
  1535. case 69:
  1536. #line 277 "gram.y"
  1537. { yyval.enode  = new(PMT, yyvsp[-5].enode ,new(':',yyvsp[-3].enode ,yyvsp[-1].enode )); }
  1538. break;
  1539. case 70:
  1540. #line 279 "gram.y"
  1541. { yyval.enode  = new(HOUR,ENULL, yyvsp[-1].enode ); }
  1542. break;
  1543. case 71:
  1544. #line 280 "gram.y"
  1545. { yyval.enode  = new(MINUTE,ENULL, yyvsp[-1].enode ); }
  1546. break;
  1547. case 72:
  1548. #line 281 "gram.y"
  1549. { yyval.enode  = new(SECOND,ENULL, yyvsp[-1].enode ); }
  1550. break;
  1551. case 73:
  1552. #line 282 "gram.y"
  1553. { yyval.enode  = new(MONTH,ENULL,yyvsp[-1].enode ); }
  1554. break;
  1555. case 74:
  1556. #line 283 "gram.y"
  1557. { yyval.enode  = new(DAY, ENULL, yyvsp[-1].enode ); }
  1558. break;
  1559. case 75:
  1560. #line 284 "gram.y"
  1561. { yyval.enode  = new(YEAR, ENULL, yyvsp[-1].enode ); }
  1562. break;
  1563. case 76:
  1564. #line 285 "gram.y"
  1565. { yyval.enode  = new(NOW, ENULL, ENULL);}
  1566. break;
  1567. case 77:
  1568. #line 286 "gram.y"
  1569. { yyval.enode  = new(STON, ENULL, yyvsp[-1].enode ); }
  1570. break;
  1571. case 78:
  1572. #line 287 "gram.y"
  1573. { yyval.enode  = new (EQS, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1574. break;
  1575. case 79:
  1576. #line 288 "gram.y"
  1577. { yyval.enode  = new(DATE, ENULL, yyvsp[-1].enode ); }
  1578. break;
  1579. case 80:
  1580. #line 289 "gram.y"
  1581. { yyval.enode  = new(FMT, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1582. break;
  1583. case 81:
  1584. #line 291 "gram.y"
  1585. { yyval.enode  = new(INDEX, yyvsp[-3].enode , new_range(REDUCE | INDEX, yyvsp[-1].rval )); }
  1586. break;
  1587. case 82:
  1588. #line 293 "gram.y"
  1589. { yyval.enode  = new(LOOKUP, yyvsp[-3].enode , new_range(REDUCE | LOOKUP, yyvsp[-1].rval )); }
  1590. break;
  1591. case 83:
  1592. #line 295 "gram.y"
  1593. { yyval.enode  = new(STINDEX, yyvsp[-3].enode , new_range(REDUCE | STINDEX, yyvsp[-1].rval )); }
  1594. break;
  1595. case 84:
  1596. #line 296 "gram.y"
  1597. { yyval.enode  = new(EXT, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1598. break;
  1599. case 85:
  1600. #line 297 "gram.y"
  1601. { yyval.enode  = new(NVAL, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1602. break;
  1603. case 86:
  1604. #line 298 "gram.y"
  1605. { yyval.enode  = new(SVAL, yyvsp[-3].enode , yyvsp[-1].enode ); }
  1606. break;
  1607. case 87:
  1608. #line 300 "gram.y"
  1609. { yyval.enode  = new(SUBSTR, yyvsp[-5].enode , new(',', yyvsp[-3].enode , yyvsp[-1].enode )); }
  1610. break;
  1611. case 88:
  1612. #line 301 "gram.y"
  1613. { yyval.enode  = yyvsp[-1].enode ; }
  1614. break;
  1615. case 89:
  1616. #line 302 "gram.y"
  1617. { yyval.enode  = yyvsp[0].enode ; }
  1618. break;
  1619. case 90:
  1620. #line 303 "gram.y"
  1621. { yyval.enode  = new ('m', ENULL, yyvsp[0].enode ); }
  1622. break;
  1623. case 91:
  1624. #line 304 "gram.y"
  1625. { yyval.enode  = new_const('k', (double) yyvsp[0].ival ); }
  1626. break;
  1627. case 92:
  1628. #line 305 "gram.y"
  1629. { yyval.enode  = new_const('k', yyvsp[0].fval ); }
  1630. break;
  1631. case 93:
  1632. #line 306 "gram.y"
  1633. { yyval.enode  = new_const('k', (double)3.14159265358979323846); }
  1634. break;
  1635. case 94:
  1636. #line 307 "gram.y"
  1637. { yyval.enode  = new_str(yyvsp[0].sval ); }
  1638. break;
  1639. case 95:
  1640. #line 308 "gram.y"
  1641. { yyval.enode  = new ('~', ENULL, yyvsp[0].enode ); }
  1642. break;
  1643. case 96:
  1644. #line 309 "gram.y"
  1645. { yyval.enode  = new ('~', ENULL, yyvsp[0].enode ); }
  1646. break;
  1647. case 97:
  1648. #line 312 "gram.y"
  1649. { yyval.enode  = new ('+', yyvsp[-2].enode , yyvsp[0].enode ); }
  1650. break;
  1651. case 98:
  1652. #line 313 "gram.y"
  1653. { yyval.enode  = new ('-', yyvsp[-2].enode , yyvsp[0].enode ); }
  1654. break;
  1655. case 99:
  1656. #line 314 "gram.y"
  1657. { yyval.enode  = new ('*', yyvsp[-2].enode , yyvsp[0].enode ); }
  1658. break;
  1659. case 100:
  1660. #line 315 "gram.y"
  1661. { yyval.enode  = new ('/', yyvsp[-2].enode , yyvsp[0].enode ); }
  1662. break;
  1663. case 101:
  1664. #line 316 "gram.y"
  1665. { yyval.enode  = new ('%', yyvsp[-2].enode , yyvsp[0].enode ); }
  1666. break;
  1667. case 102:
  1668. #line 317 "gram.y"
  1669. { yyval.enode  = new ('^', yyvsp[-2].enode , yyvsp[0].enode ); }
  1670. break;
  1671. case 104:
  1672. #line 319 "gram.y"
  1673. { yyval.enode  = new ('?', yyvsp[-4].enode , new(':', yyvsp[-2].enode , yyvsp[0].enode )); }
  1674. break;
  1675. case 105:
  1676. #line 320 "gram.y"
  1677. { yyval.enode  = new ('<', yyvsp[-2].enode , yyvsp[0].enode ); }
  1678. break;
  1679. case 106:
  1680. #line 321 "gram.y"
  1681. { yyval.enode  = new ('=', yyvsp[-2].enode , yyvsp[0].enode ); }
  1682. break;
  1683. case 107:
  1684. #line 322 "gram.y"
  1685. { yyval.enode  = new ('>', yyvsp[-2].enode , yyvsp[0].enode ); }
  1686. break;
  1687. case 108:
  1688. #line 323 "gram.y"
  1689. { yyval.enode  = new ('&', yyvsp[-2].enode , yyvsp[0].enode ); }
  1690. break;
  1691. case 109:
  1692. #line 324 "gram.y"
  1693. { yyval.enode  = new ('|', yyvsp[-2].enode , yyvsp[0].enode ); }
  1694. break;
  1695. case 110:
  1696. #line 325 "gram.y"
  1697. { yyval.enode  = new ('~', ENULL, new ('>', yyvsp[-3].enode , yyvsp[0].enode )); }
  1698. break;
  1699. case 111:
  1700. #line 326 "gram.y"
  1701. { yyval.enode  = new ('~', ENULL, new ('=', yyvsp[-3].enode , yyvsp[0].enode )); }
  1702. break;
  1703. case 112:
  1704. #line 327 "gram.y"
  1705. { yyval.enode  = new ('~', ENULL, new ('<', yyvsp[-3].enode , yyvsp[0].enode )); }
  1706. break;
  1707. case 113:
  1708. #line 328 "gram.y"
  1709. { yyval.enode  = new ('#', yyvsp[-2].enode , yyvsp[0].enode ); }
  1710. break;
  1711. case 114:
  1712. #line 331 "gram.y"
  1713. { yyval.enode  = new(ELIST, ENULL, yyvsp[0].enode ); }
  1714. break;
  1715. case 115:
  1716. #line 332 "gram.y"
  1717. { yyval.enode  = new(ELIST, yyvsp[-2].enode , yyvsp[0].enode ); }
  1718. break;
  1719. case 116:
  1720. #line 335 "gram.y"
  1721. { yyval.rval .left = yyvsp[-2].ent ; yyval.rval .right = yyvsp[0].ent ; }
  1722. break;
  1723. case 117:
  1724. #line 336 "gram.y"
  1725. { yyval.rval  = yyvsp[0].rval ; }
  1726. break;
  1727. case 118:
  1728. #line 339 "gram.y"
  1729. { yyval.ent .vp = lookat(yyvsp[0].ival  , yyvsp[-1].ival ); yyval.ent .vf = 0;}
  1730. break;
  1731. case 119:
  1732. #line 340 "gram.y"
  1733. { yyval.ent .vp = lookat(yyvsp[0].ival  , yyvsp[-1].ival );
  1734.                     yyval.ent .vf = FIX_COL;}
  1735. break;
  1736. case 120:
  1737. #line 342 "gram.y"
  1738. { yyval.ent .vp = lookat(yyvsp[0].ival  , yyvsp[-2].ival );
  1739.                     yyval.ent .vf = FIX_ROW;}
  1740. break;
  1741. case 121:
  1742. #line 344 "gram.y"
  1743. { yyval.ent .vp = lookat(yyvsp[0].ival  , yyvsp[-2].ival );
  1744.                     yyval.ent .vf = FIX_ROW | FIX_COL;}
  1745. break;
  1746. case 122:
  1747. #line 346 "gram.y"
  1748. { yyval.ent  = yyvsp[0].rval .left; }
  1749. break;
  1750. case 123:
  1751. #line 349 "gram.y"
  1752. { yyval.rval  = yyvsp[0].rval ; }
  1753. break;
  1754. case 124:
  1755. #line 350 "gram.y"
  1756. { yyval.rval .left = yyvsp[0].ent ; yyval.rval .right = yyvsp[0].ent ; }
  1757. break;
  1758. case 125:
  1759. #line 353 "gram.y"
  1760. { yyval.fval  = (double) yyvsp[0].ival ; }
  1761. break;
  1762. case 126:
  1763. #line 354 "gram.y"
  1764. { yyval.fval  = yyvsp[0].fval ; }
  1765. break;
  1766. case 127:
  1767. #line 355 "gram.y"
  1768. { yyval.fval  = -yyvsp[0].fval ; }
  1769. break;
  1770. case 128:
  1771. #line 356 "gram.y"
  1772. { yyval.fval  = yyvsp[0].fval ; }
  1773. break;
  1774. case 129:
  1775. #line 359 "gram.y"
  1776. { yyval.sval  = yyvsp[0].sval ; }
  1777. break;
  1778. case 130:
  1779. #line 360 "gram.y"
  1780. {
  1781.                     char *s, *s1;
  1782.                     s1 = yyvsp[0].ent .vp->label;
  1783.                     if (!s1)
  1784.                     s1 = "NULL_STRING";
  1785.                     s = xmalloc((unsigned)strlen(s1)+1);
  1786.                     (void) strcpy(s, s1);
  1787.                     yyval.sval  = s;
  1788.                 }
  1789. break;
  1790. case 133:
  1791. #line 375 "gram.y"
  1792. { setauto(1); }
  1793. break;
  1794. case 134:
  1795. #line 376 "gram.y"
  1796. { setauto(1); }
  1797. break;
  1798. case 135:
  1799. #line 377 "gram.y"
  1800. { setauto(0); }
  1801. break;
  1802. case 136:
  1803. #line 378 "gram.y"
  1804. { setauto(0); }
  1805. break;
  1806. case 137:
  1807. #line 379 "gram.y"
  1808. { setauto(0); }
  1809. break;
  1810. case 138:
  1811. #line 380 "gram.y"
  1812. { setauto(0); }
  1813. break;
  1814. case 139:
  1815. #line 381 "gram.y"
  1816. { setorder(BYCOLS); }
  1817. break;
  1818. case 140:
  1819. #line 382 "gram.y"
  1820. { setorder(BYROWS); }
  1821. break;
  1822. case 141:
  1823. #line 383 "gram.y"
  1824. { setorder(BYGRAPH); }
  1825. break;
  1826. case 142:
  1827. #line 384 "gram.y"
  1828. { numeric = 1; }
  1829. break;
  1830. case 143:
  1831. #line 385 "gram.y"
  1832. { numeric = 0; }
  1833. break;
  1834. case 144:
  1835. #line 386 "gram.y"
  1836. { prescale = 0.01; }
  1837. break;
  1838. case 145:
  1839. #line 387 "gram.y"
  1840. { prescale = 1.0; }
  1841. break;
  1842. case 146:
  1843. #line 388 "gram.y"
  1844. { extfunc = 1; }
  1845. break;
  1846. case 147:
  1847. #line 389 "gram.y"
  1848. { extfunc = 0; }
  1849. break;
  1850. case 148:
  1851. #line 390 "gram.y"
  1852. { showcell = 1; }
  1853. break;
  1854. case 149:
  1855. #line 391 "gram.y"
  1856. { showcell = 0; }
  1857. break;
  1858. case 150:
  1859. #line 392 "gram.y"
  1860. { showtop = 1; }
  1861. break;
  1862. case 151:
  1863. #line 393 "gram.y"
  1864. { showtop = 0; }
  1865. break;
  1866. case 152:
  1867. #line 394 "gram.y"
  1868. { setiterations(yyvsp[0].ival ); }
  1869. break;
  1870. case 153:
  1871. #line 395 "gram.y"
  1872. { tbl_style = yyvsp[0].ival ; }
  1873. break;
  1874. case 154:
  1875. #line 396 "gram.y"
  1876. { tbl_style = TBL; }
  1877. break;
  1878. case 155:
  1879. #line 397 "gram.y"
  1880. { tbl_style = LATEX; }
  1881. break;
  1882. case 156:
  1883. #line 398 "gram.y"
  1884. { tbl_style = TEX; }
  1885. break;
  1886. #line 1887 "y.tab.c"
  1887.     }
  1888.     yyssp -= yym;
  1889.     yystate = *yyssp;
  1890.     yyvsp -= yym;
  1891.     yym = yylhs[yyn];
  1892.     if (yystate == 0 && yym == 0)
  1893.     {
  1894. #ifdef YYDEBUG
  1895.         if (yydebug)
  1896.             printf("yydebug: after reduction, shifting from state 0 to\
  1897.  state %d\n", YYFINAL);
  1898. #endif
  1899.         yystate = YYFINAL;
  1900.         *++yyssp = YYFINAL;
  1901.         *++yyvsp = yyval;
  1902.         if (yychar < 0)
  1903.         {
  1904.             if ((yychar = yylex()) < 0) yychar = 0;
  1905. #if YYDEBUG
  1906.             if (yydebug)
  1907.             {
  1908.                 yys = 0;
  1909.                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1910.                 if (!yys) yys = "illegal-symbol";
  1911.                 printf("yydebug: state %d, reading %d (%s)\n",
  1912.                         YYFINAL, yychar, yys);
  1913.             }
  1914. #endif
  1915.         }
  1916.         if (yychar == 0) goto yyaccept;
  1917.         goto yyloop;
  1918.     }
  1919.     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
  1920.             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
  1921.         yystate = yytable[yyn];
  1922.     else
  1923.         yystate = yydgoto[yym];
  1924. #ifdef YYDEBUG
  1925.     if (yydebug)
  1926.         printf("yydebug: after reduction, shifting from state %d \
  1927. to state %d\n", *yyssp, yystate);
  1928. #endif
  1929.     if (yyssp >= yyss + yystacksize - 1)
  1930.     {
  1931.         goto yyoverflow;
  1932.     }
  1933.     *++yyssp = yystate;
  1934.     *++yyvsp = yyval;
  1935.     goto yyloop;
  1936. yyoverflow:
  1937.     yyerror("yacc stack overflow");
  1938. yyabort:
  1939.     return (1);
  1940. yyaccept:
  1941.     return (0);
  1942. }
  1943.