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

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