home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / binutils-2.7-src.tgz / tar.out / fsf / binutils / ld / ldgram.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  75KB  |  2,219 lines

  1.  
  2. /*  A Bison parser, made from ./ldgram.y with Bison version GNU Bison version 1.24
  3.   */
  4.  
  5. #define YYBISON 1  /* Identify Bison output.  */
  6.  
  7. #define    INT    258
  8. #define    NAME    259
  9. #define    LNAME    260
  10. #define    PLUSEQ    261
  11. #define    MINUSEQ    262
  12. #define    MULTEQ    263
  13. #define    DIVEQ    264
  14. #define    LSHIFTEQ    265
  15. #define    RSHIFTEQ    266
  16. #define    ANDEQ    267
  17. #define    OREQ    268
  18. #define    OROR    269
  19. #define    ANDAND    270
  20. #define    EQ    271
  21. #define    NE    272
  22. #define    LE    273
  23. #define    GE    274
  24. #define    LSHIFT    275
  25. #define    RSHIFT    276
  26. #define    UNARY    277
  27. #define    END    278
  28. #define    ALIGN_K    279
  29. #define    BLOCK    280
  30. #define    BIND    281
  31. #define    QUAD    282
  32. #define    LONG    283
  33. #define    SHORT    284
  34. #define    BYTE    285
  35. #define    SECTIONS    286
  36. #define    PHDRS    287
  37. #define    SIZEOF_HEADERS    288
  38. #define    OUTPUT_FORMAT    289
  39. #define    FORCE_COMMON_ALLOCATION    290
  40. #define    OUTPUT_ARCH    291
  41. #define    INCLUDE    292
  42. #define    MEMORY    293
  43. #define    DEFSYMEND    294
  44. #define    NOLOAD    295
  45. #define    DSECT    296
  46. #define    COPY    297
  47. #define    INFO    298
  48. #define    OVERLAY    299
  49. #define    DEFINED    300
  50. #define    TARGET_K    301
  51. #define    SEARCH_DIR    302
  52. #define    MAP    303
  53. #define    ENTRY    304
  54. #define    SIZEOF    305
  55. #define    NEXT    306
  56. #define    ADDR    307
  57. #define    STARTUP    308
  58. #define    HLL    309
  59. #define    SYSLIB    310
  60. #define    FLOAT    311
  61. #define    NOFLOAT    312
  62. #define    ORIGIN    313
  63. #define    FILL    314
  64. #define    LENGTH    315
  65. #define    CREATE_OBJECT_SYMBOLS    316
  66. #define    INPUT    317
  67. #define    GROUP    318
  68. #define    OUTPUT    319
  69. #define    CONSTRUCTORS    320
  70. #define    ALIGNMOD    321
  71. #define    AT    322
  72. #define    PROVIDE    323
  73. #define    CHIP    324
  74. #define    LIST    325
  75. #define    SECT    326
  76. #define    ABSOLUTE    327
  77. #define    LOAD    328
  78. #define    NEWLINE    329
  79. #define    ENDWORD    330
  80. #define    ORDER    331
  81. #define    NAMEWORD    332
  82. #define    FORMAT    333
  83. #define    PUBLIC    334
  84. #define    BASE    335
  85. #define    ALIAS    336
  86. #define    TRUNCATE    337
  87. #define    REL    338
  88. #define    INPUT_SCRIPT    339
  89. #define    INPUT_MRI_SCRIPT    340
  90. #define    INPUT_DEFSYM    341
  91. #define    CASE    342
  92. #define    EXTERN    343
  93. #define    START    344
  94.  
  95. #line 21 "./ldgram.y"
  96.  
  97. /*
  98.  
  99.  */
  100.  
  101. #define DONTDECLARE_MALLOC
  102.  
  103. #include "bfd.h"
  104. #include "sysdep.h"
  105. #include "bfdlink.h"
  106. #include "ld.h"    
  107. #include "ldexp.h"
  108. #include "ldver.h"
  109. #include "ldlang.h"
  110. #include "ldemul.h"
  111. #include "ldfile.h"
  112. #include "ldmisc.h"
  113. #include "ldmain.h"
  114. #include "mri.h"
  115. #include "ldlex.h"
  116.  
  117. #ifndef YYDEBUG
  118. #define YYDEBUG 1
  119. #endif
  120.  
  121. static enum section_type sectype;
  122.  
  123. lang_memory_region_type *region;
  124.  
  125.  
  126. char *current_file;
  127. boolean ldgram_want_filename = true;
  128. boolean had_script = false;
  129. boolean force_make_executable = false;
  130.  
  131. boolean ldgram_in_script = false;
  132. boolean ldgram_had_equals = false;
  133.  
  134.  
  135. #define ERROR_NAME_MAX 20
  136. static char *error_names[ERROR_NAME_MAX];
  137. static int error_index;
  138. #define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
  139. #define POP_ERROR()   error_index--;
  140.  
  141. #line 66 "./ldgram.y"
  142. typedef union {
  143.   bfd_vma integer;
  144.   char *name;
  145.   int token;
  146.   union etree_union *etree;
  147.   struct phdr_info
  148.     {
  149.       boolean filehdr;
  150.       boolean phdrs;
  151.       union etree_union *at;
  152.       union etree_union *flags;
  153.     } phdr;
  154. } YYSTYPE;
  155.  
  156. #ifndef YYLTYPE
  157. typedef
  158.   struct yyltype
  159.     {
  160.       int timestamp;
  161.       int first_line;
  162.       int first_column;
  163.       int last_line;
  164.       int last_column;
  165.       char *text;
  166.    }
  167.   yyltype;
  168.  
  169. #define YYLTYPE yyltype
  170. #endif
  171.  
  172. #include <stdio.h>
  173.  
  174. #ifndef __cplusplus
  175. #ifndef __STDC__
  176. #define const
  177. #endif
  178. #endif
  179.  
  180.  
  181.  
  182. #define    YYFINAL        440
  183. #define    YYFLAG        -32768
  184. #define    YYNTBASE    113
  185.  
  186. #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 189)
  187.  
  188. static const char yytranslate[] = {     0,
  189.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  190.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  191.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  192.      2,     2,   111,     2,     2,     2,    34,    21,     2,    37,
  193.    108,    32,    30,   106,    31,     2,    33,     2,     2,     2,
  194.      2,     2,     2,     2,     2,     2,     2,    16,   107,    24,
  195.     10,    25,    15,     2,     2,     2,     2,     2,     2,     2,
  196.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  197.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  198.    109,     2,   110,    20,     2,     2,     2,     2,     2,     2,
  199.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  200.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  201.      2,     2,    47,    19,    48,   112,     2,     2,     2,     2,
  202.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  203.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  204.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  205.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  206.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  207.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  208.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  209.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  210.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  211.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  212.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  213.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  214.      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
  215.      6,     7,     8,     9,    11,    12,    13,    14,    17,    18,
  216.     22,    23,    26,    27,    28,    29,    35,    36,    38,    39,
  217.     40,    41,    42,    43,    44,    45,    46,    49,    50,    51,
  218.     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
  219.     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
  220.     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
  221.     82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
  222.     92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
  223.    102,   103,   104,   105
  224. };
  225.  
  226. #if YYDEBUG != 0
  227. static const short yyprhs[] = {     0,
  228.      0,     3,     6,     9,    11,    12,    17,    18,    21,    25,
  229.     26,    29,    34,    36,    38,    41,    43,    48,    53,    57,
  230.     60,    65,    69,    74,    79,    84,    89,    94,    97,   100,
  231.    103,   108,   113,   116,   119,   122,   125,   126,   132,   135,
  232.    136,   140,   143,   144,   146,   150,   152,   156,   157,   159,
  233.    163,   165,   169,   170,   173,   176,   177,   179,   181,   183,
  234.    185,   187,   189,   191,   193,   195,   200,   205,   210,   215,
  235.    224,   229,   231,   236,   237,   243,   248,   249,   255,   257,
  236.    261,   264,   266,   270,   273,   278,   281,   284,   285,   290,
  237.    293,   295,   299,   301,   302,   307,   308,   314,   315,   321,
  238.    324,   326,   328,   330,   332,   337,   342,   345,   347,   348,
  239.    350,   352,   354,   356,   358,   361,   362,   364,   366,   368,
  240.    370,   372,   374,   376,   378,   380,   382,   386,   390,   397,
  241.    399,   400,   406,   409,   413,   414,   415,   423,   427,   431,
  242.    435,   436,   441,   446,   450,   454,   456,   461,   465,   466,
  243.    468,   470,   471,   474,   477,   481,   486,   489,   492,   495,
  244.    499,   503,   507,   511,   515,   519,   523,   527,   531,   535,
  245.    539,   543,   547,   551,   555,   559,   565,   569,   573,   578,
  246.    580,   582,   587,   592,   597,   602,   607,   609,   614,   615,
  247.    616,   617,   618,   619,   620,   636,   637,   638,   646,   648,
  248.    650,   652,   654,   656,   660,   661,   665,   668,   675,   686,
  249.    689,   690,   691,   695,   700,   701,   704,   705,   706,   713,
  250.    715,   716,   720,   726,   727
  251. };
  252.  
  253. static const short yyrhs[] = {   100,
  254.    127,     0,   101,   117,     0,   102,   115,     0,     4,     0,
  255.      0,   116,     4,    10,   166,     0,     0,   118,   119,     0,
  256.    119,   120,    90,     0,     0,    85,   166,     0,    85,   166,
  257.    106,   166,     0,     4,     0,    86,     0,    92,   122,     0,
  258.     91,     0,    95,     4,    10,   166,     0,    95,     4,   106,
  259.    166,     0,    95,     4,   166,     0,    94,     4,     0,    87,
  260.      4,   106,   166,     0,    87,     4,   166,     0,    87,     4,
  261.     10,   166,     0,    38,     4,    10,   166,     0,    38,     4,
  262.    106,   166,     0,    82,     4,    10,   166,     0,    82,     4,
  263.    106,   166,     0,    88,   124,     0,    89,   123,     0,    93,
  264.      4,     0,    97,     4,   106,     4,     0,    97,     4,   106,
  265.      3,     0,    96,   166,     0,    98,     3,     0,   103,   125,
  266.      0,   104,   126,     0,     0,    53,   114,   121,   119,    36,
  267.      0,   105,     4,     0,     0,   122,   106,     4,     0,   122,
  268.      4,     0,     0,     4,     0,   123,   106,     4,     0,     4,
  269.      0,   124,   106,     4,     0,     0,     4,     0,   125,   106,
  270.      4,     0,     4,     0,   126,   106,     4,     0,     0,   128,
  271.    129,     0,   129,   130,     0,     0,   151,     0,   134,     0,
  272.    181,     0,   158,     0,   159,     0,   161,     0,   163,     0,
  273.    136,     0,   107,     0,    62,    37,     4,   108,     0,    63,
  274.     37,   114,   108,     0,    80,    37,   114,   108,     0,    50,
  275.     37,     4,   108,     0,    50,    37,     4,   106,     4,   106,
  276.      4,   108,     0,    52,    37,     4,   108,     0,    51,     0,
  277.     78,    37,   133,   108,     0,     0,    79,   131,    37,   133,
  278.    108,     0,    64,    37,   114,   108,     0,     0,    53,   114,
  279.    132,   129,    36,     0,     4,     0,   133,   106,     4,     0,
  280.    133,     4,     0,     5,     0,   133,   106,     5,     0,   133,
  281.      5,     0,    45,    47,   135,    48,     0,   135,   168,     0,
  282.    135,   136,     0,     0,    65,    37,     4,   108,     0,   149,
  283.    148,     0,     4,     0,   137,   150,     4,     0,     4,     0,
  284.      0,   109,   139,   137,   110,     0,     0,     4,   140,    37,
  285.    137,   108,     0,     0,    32,   141,    37,   137,   108,     0,
  286.    149,   148,     0,    77,     0,   107,     0,    81,     0,   138,
  287.      0,   145,    37,   166,   108,     0,    75,    37,   166,   108,
  288.      0,   143,   142,     0,   142,     0,     0,   143,     0,    41,
  289.      0,    42,     0,    43,     0,    44,     0,    10,   164,     0,
  290.      0,     6,     0,     7,     0,     8,     0,     9,     0,    11,
  291.      0,    12,     0,    13,     0,    14,     0,   107,     0,   106,
  292.      0,     4,    10,   164,     0,     4,   147,   164,     0,    84,
  293.     37,     4,    10,   164,   108,     0,   106,     0,     0,    54,
  294.     47,   153,   152,    48,     0,   152,   153,     0,   152,   106,
  295.    153,     0,     0,     0,     4,   154,   157,    16,   155,   150,
  296.    156,     0,    74,    10,   164,     0,    76,    10,   164,     0,
  297.     37,     4,   108,     0,     0,    69,    37,   114,   108,     0,
  298.     70,    37,   160,   108,     0,    70,    37,   108,     0,   160,
  299.    150,   114,     0,   114,     0,    71,    37,   162,   108,     0,
  300.    162,   150,   114,     0,     0,    72,     0,    73,     0,     0,
  301.    165,   166,     0,    31,   166,     0,    37,   166,   108,     0,
  302.     67,    37,   166,   108,     0,   111,   166,     0,    30,   166,
  303.      0,   112,   166,     0,   166,    32,   166,     0,   166,    33,
  304.    166,     0,   166,    34,   166,     0,   166,    30,   166,     0,
  305.    166,    31,   166,     0,   166,    28,   166,     0,   166,    29,
  306.    166,     0,   166,    22,   166,     0,   166,    23,   166,     0,
  307.    166,    26,   166,     0,   166,    27,   166,     0,   166,    24,
  308.    166,     0,   166,    25,   166,     0,   166,    21,   166,     0,
  309.    166,    20,   166,     0,   166,    19,   166,     0,   166,    15,
  310.    166,    16,   166,     0,   166,    18,   166,     0,   166,    17,
  311.    166,     0,    61,    37,     4,   108,     0,     3,     0,    49,
  312.      0,    66,    37,     4,   108,     0,    68,    37,     4,   108,
  313.      0,    88,    37,   166,   108,     0,    38,    37,   166,   108,
  314.      0,    39,    37,   166,   108,     0,     4,     0,    83,    37,
  315.    166,   108,     0,     0,     0,     0,     0,     0,     0,     4,
  316.    169,   178,   167,   170,    47,   171,   144,    48,   172,   179,
  317.    180,   146,   173,   150,     0,     0,     0,    79,   174,   178,
  318.    175,    47,   135,    48,     0,    56,     0,    57,     0,    58,
  319.      0,    59,     0,    60,     0,    37,   176,   108,     0,     0,
  320.    166,   177,    16,     0,   177,    16,     0,    40,    37,   166,
  321.    108,   177,    16,     0,    40,    37,   166,   108,    39,    37,
  322.    166,   108,   177,    16,     0,    25,     4,     0,     0,     0,
  323.    180,    16,     4,     0,    46,    47,   182,    48,     0,     0,
  324.    182,   183,     0,     0,     0,     4,   184,   186,   187,   185,
  325.    107,     0,   166,     0,     0,     4,   188,   187,     0,    83,
  326.     37,   166,   108,   187,     0,     0,    37,   166,   108,     0
  327. };
  328.  
  329. #endif
  330.  
  331. #if YYDEBUG != 0
  332. static const short yyrline[] = { 0,
  333.    127,   129,   130,   134,   137,   139,   146,   152,   159,   161,
  334.    164,   166,   167,   170,   173,   174,   175,   177,   179,   181,
  335.    183,   185,   187,   189,   191,   193,   195,   197,   198,   199,
  336.    201,   203,   205,   207,   209,   210,   211,   212,   213,   215,
  337.    218,   220,   221,   224,   227,   230,   233,   237,   239,   240,
  338.    243,   246,   250,   255,   261,   263,   268,   270,   271,   272,
  339.    273,   274,   275,   276,   277,   278,   280,   282,   284,   287,
  340.    289,   291,   293,   294,   296,   298,   300,   301,   304,   308,
  341.    311,   314,   317,   320,   325,   329,   331,   332,   335,   338,
  342.    341,   344,   348,   353,   358,   359,   363,   364,   368,   371,
  343.    373,   377,   378,   383,   384,   389,   399,   401,   404,   406,
  344.    409,   412,   414,   416,   420,   428,   433,   436,   438,   440,
  345.    442,   444,   446,   448,   453,   453,   457,   462,   470,   477,
  346.    478,   481,   485,   487,   488,   492,   494,   497,   503,   512,
  347.    517,   521,   526,   528,   532,   535,   540,   542,   545,   548,
  348.    551,   556,   558,   561,   564,   566,   568,   570,   572,   575,
  349.    577,   579,   581,   583,   585,   587,   589,   591,   593,   595,
  350.    597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
  351.    617,   620,   622,   624,   626,   628,   630,   635,   637,   640,
  352.    642,   644,   650,   650,   656,   656,   662,   666,   669,   671,
  353.    672,   673,   674,   677,   679,   682,   684,   685,   690,   694,
  354.    697,   700,   702,   708,   712,   714,   717,   719,   721,   727,
  355.    757,   762,   774,   781,   786
  356. };
  357.  
  358. static const char * const yytname[] = {   "$","error","$undefined.","INT","NAME",
  359. "LNAME","PLUSEQ","MINUSEQ","MULTEQ","DIVEQ","'='","LSHIFTEQ","RSHIFTEQ","ANDEQ",
  360. "OREQ","'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQ","NE","'<'","'>'","LE",
  361. "GE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","END","'('","ALIGN_K",
  362. "BLOCK","BIND","QUAD","LONG","SHORT","BYTE","SECTIONS","PHDRS","'{'","'}'","SIZEOF_HEADERS",
  363. "OUTPUT_FORMAT","FORCE_COMMON_ALLOCATION","OUTPUT_ARCH","INCLUDE","MEMORY","DEFSYMEND",
  364. "NOLOAD","DSECT","COPY","INFO","OVERLAY","DEFINED","TARGET_K","SEARCH_DIR","MAP",
  365. "ENTRY","SIZEOF","NEXT","ADDR","STARTUP","HLL","SYSLIB","FLOAT","NOFLOAT","ORIGIN",
  366. "FILL","LENGTH","CREATE_OBJECT_SYMBOLS","INPUT","GROUP","OUTPUT","CONSTRUCTORS",
  367. "ALIGNMOD","AT","PROVIDE","CHIP","LIST","SECT","ABSOLUTE","LOAD","NEWLINE","ENDWORD",
  368. "ORDER","NAMEWORD","FORMAT","PUBLIC","BASE","ALIAS","TRUNCATE","REL","INPUT_SCRIPT",
  369. "INPUT_MRI_SCRIPT","INPUT_DEFSYM","CASE","EXTERN","START","','","';'","')'",
  370. "'['","']'","'!'","'~'","file","filename","defsym_expr","@1","mri_script_file",
  371. "@2","mri_script_lines","mri_script_command","@3","ordernamelist","mri_load_name_list",
  372. "mri_abs_name_list","casesymlist","extern_name_list","script_file","@4","ifile_list",
  373. "ifile_p1","@5","@6","input_list","sections","sec_or_group_p1","statement_anywhere",
  374. "file_NAME_list","input_section_spec","@7","@8","@9","statement","statement_list",
  375. "statement_list_opt","length","fill_opt","assign_op","end","assignment","opt_comma",
  376. "memory","memory_spec_list","memory_spec","@10","origin_spec","length_spec",
  377. "attributes_opt","startup","high_level_library","high_level_library_NAME_list",
  378. "low_level_library","low_level_library_NAME_list","floating_point_support","mustbe_exp",
  379. "@11","exp","opt_at","section","@12","@13","@14","@15","@16","@17","@18","type",
  380. "atype","opt_exp_with_type","memspec_opt","phdr_opt","phdrs","phdr_list","phdr",
  381. "@19","@20","phdr_type","phdr_qualifiers","phdr_val",""
  382. };
  383. #endif
  384.  
  385. static const short yyr1[] = {     0,
  386.    113,   113,   113,   114,   116,   115,   118,   117,   119,   119,
  387.    120,   120,   120,   120,   120,   120,   120,   120,   120,   120,
  388.    120,   120,   120,   120,   120,   120,   120,   120,   120,   120,
  389.    120,   120,   120,   120,   120,   120,   121,   120,   120,   120,
  390.    122,   122,   122,   123,   123,   124,   124,   125,   125,   125,
  391.    126,   126,   128,   127,   129,   129,   130,   130,   130,   130,
  392.    130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
  393.    130,   130,   130,   131,   130,   130,   132,   130,   133,   133,
  394.    133,   133,   133,   133,   134,   135,   135,   135,   136,   136,
  395.    137,   137,   138,   139,   138,   140,   138,   141,   138,   142,
  396.    142,   142,   142,   142,   142,   142,   143,   143,   144,   144,
  397.    145,   145,   145,   145,   146,   146,   147,   147,   147,   147,
  398.    147,   147,   147,   147,   148,   148,   149,   149,   149,   150,
  399.    150,   151,   152,   152,   152,   154,   153,   155,   156,   157,
  400.    157,   158,   159,   159,   160,   160,   161,   162,   162,   163,
  401.    163,   165,   164,   166,   166,   166,   166,   166,   166,   166,
  402.    166,   166,   166,   166,   166,   166,   166,   166,   166,   166,
  403.    166,   166,   166,   166,   166,   166,   166,   166,   166,   166,
  404.    166,   166,   166,   166,   166,   166,   166,   167,   167,   169,
  405.    170,   171,   172,   173,   168,   174,   175,   168,   176,   176,
  406.    176,   176,   176,   177,   177,   178,   178,   178,   178,   179,
  407.    179,   180,   180,   181,   182,   182,   184,   185,   183,   186,
  408.    187,   187,   187,   188,   188
  409. };
  410.  
  411. static const short yyr2[] = {     0,
  412.      2,     2,     2,     1,     0,     4,     0,     2,     3,     0,
  413.      2,     4,     1,     1,     2,     1,     4,     4,     3,     2,
  414.      4,     3,     4,     4,     4,     4,     4,     2,     2,     2,
  415.      4,     4,     2,     2,     2,     2,     0,     5,     2,     0,
  416.      3,     2,     0,     1,     3,     1,     3,     0,     1,     3,
  417.      1,     3,     0,     2,     2,     0,     1,     1,     1,     1,
  418.      1,     1,     1,     1,     1,     4,     4,     4,     4,     8,
  419.      4,     1,     4,     0,     5,     4,     0,     5,     1,     3,
  420.      2,     1,     3,     2,     4,     2,     2,     0,     4,     2,
  421.      1,     3,     1,     0,     4,     0,     5,     0,     5,     2,
  422.      1,     1,     1,     1,     4,     4,     2,     1,     0,     1,
  423.      1,     1,     1,     1,     2,     0,     1,     1,     1,     1,
  424.      1,     1,     1,     1,     1,     1,     3,     3,     6,     1,
  425.      0,     5,     2,     3,     0,     0,     7,     3,     3,     3,
  426.      0,     4,     4,     3,     3,     1,     4,     3,     0,     1,
  427.      1,     0,     2,     2,     3,     4,     2,     2,     2,     3,
  428.      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
  429.      3,     3,     3,     3,     3,     5,     3,     3,     4,     1,
  430.      1,     4,     4,     4,     4,     4,     1,     4,     0,     0,
  431.      0,     0,     0,     0,    15,     0,     0,     7,     1,     1,
  432.      1,     1,     1,     3,     0,     3,     2,     6,    10,     2,
  433.      0,     0,     3,     4,     0,     2,     0,     0,     6,     1,
  434.      0,     3,     5,     0,     3
  435. };
  436.  
  437. static const short yydefact[] = {     0,
  438.     53,     7,     5,     1,    56,     2,    10,     3,     0,    54,
  439.      8,     0,     0,     0,     0,     0,    72,     0,     0,     0,
  440.      0,     0,     0,     0,     0,     0,     0,   150,   151,     0,
  441.     74,     0,     0,    65,    55,    58,    64,     0,    57,    60,
  442.     61,    62,    63,    59,    13,     0,     0,     0,     0,    14,
  443.      0,     0,     0,    16,    43,     0,     0,     0,     0,     0,
  444.      0,    48,     0,     0,     0,     0,   117,   118,   119,   120,
  445.    152,   121,   122,   123,   124,   152,    88,   215,     0,     0,
  446.      4,    77,     0,     0,     0,     0,     0,     0,     0,   149,
  447.      0,     0,     0,     0,   126,   125,    90,     0,    37,     0,
  448.    180,   187,     0,     0,     0,     0,     0,   181,     0,     0,
  449.      0,     0,     0,     0,     0,    11,     0,    46,    28,    44,
  450.     29,    15,    30,    20,     0,    33,     0,    34,    49,    35,
  451.     51,    36,    39,     9,     6,   127,     0,   128,     0,     0,
  452.      0,     0,    56,   136,   135,     0,     0,     0,     0,     0,
  453.    144,   146,   131,   131,    79,    82,     0,     0,     0,     0,
  454.      0,     0,    10,     0,     0,   158,   154,     0,     0,     0,
  455.      0,     0,     0,     0,     0,   157,   159,     0,     0,     0,
  456.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  457.      0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
  458.      0,     0,    42,     0,     0,     0,    19,     0,     0,     0,
  459.    153,   190,    85,   196,    87,    86,   217,   214,   216,     0,
  460.     69,    71,     0,   141,     0,    66,    67,    76,    89,   142,
  461.    130,   143,     0,   147,     0,    81,    84,     0,    73,     0,
  462.     68,   152,    24,    25,    40,    26,    27,   155,     0,     0,
  463.      0,     0,     0,     0,     0,     0,   178,   177,   175,   174,
  464.    173,   167,   168,   171,   172,   169,   170,   165,   166,   163,
  465.    164,   160,   161,   162,    12,    23,    21,    47,    45,    41,
  466.     17,    18,    32,    31,    50,    52,   205,   205,     0,     0,
  467.     78,     0,     0,   132,     0,   133,   145,   148,    80,    83,
  468.     75,     0,    38,   185,   186,   179,   182,   156,   183,   184,
  469.      0,     0,     0,   205,     0,   189,   197,   220,   221,     0,
  470.      0,     0,   134,   129,   176,   199,   200,   201,   202,   203,
  471.      0,     0,     0,     0,   207,     0,   191,     0,   224,     0,
  472.    218,     0,   140,     0,   131,   204,     0,   206,     0,     0,
  473.     88,     0,   221,     0,     0,    70,   152,     0,   205,     0,
  474.    192,     0,     0,   222,     0,   219,   138,     0,   137,     0,
  475.      0,   188,   109,   198,   225,   221,   152,     0,   208,    93,
  476.     98,   111,   112,   113,   114,     0,   101,   103,   102,    94,
  477.    104,   108,   110,     0,     0,     0,   223,   139,     0,     0,
  478.      0,     0,     0,   107,   193,     0,   100,   205,     0,     0,
  479.      0,    91,   131,   211,     0,     0,   131,   131,   106,    95,
  480.      0,     0,   212,   105,   209,    97,    99,    92,   210,   116,
  481.    152,     0,   194,   115,   213,   131,   195,     0,     0,     0
  482. };
  483.  
  484. static const short yydefgoto[] = {   438,
  485.     82,     8,     9,     6,     7,    11,    65,   163,   122,   121,
  486.    119,   130,   132,     4,     5,    10,    35,    92,   143,   157,
  487.     36,   139,    37,   413,   391,   403,   400,   401,   392,   393,
  488.    394,   395,   433,    76,    97,    38,   421,    39,   225,   145,
  489.    224,   345,   369,   293,    40,    41,   153,    42,   154,    43,
  490.    136,   137,   168,   337,   216,   287,   350,   373,   414,   436,
  491.    288,   338,   331,   315,   316,   423,   430,    44,   140,   219,
  492.    289,   355,   319,   341,   353
  493. };
  494.  
  495. static const short yypact[] = {   -27,
  496. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    34,   381,
  497.    386,    53,   352,    24,    33,    56,-32768,    66,    86,    62,
  498.     81,    91,   118,   129,   138,   143,   144,-32768,-32768,   145,
  499. -32768,   151,   152,-32768,-32768,-32768,-32768,    -9,-32768,-32768,
  500. -32768,-32768,-32768,-32768,-32768,   173,    86,   188,   240,-32768,
  501.    191,   192,   199,-32768,-32768,   208,   209,   217,   240,   218,
  502.    220,   221,   222,   224,   134,   240,-32768,-32768,-32768,-32768,
  503. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   228,   229,
  504. -32768,-32768,   230,   231,    86,    86,   238,    86,    52,-32768,
  505.     97,   212,    86,   241,-32768,-32768,-32768,    -2,-32768,     1,
  506. -32768,-32768,   240,   240,   240,   213,   215,-32768,   216,   226,
  507.    232,   235,   236,   240,   240,   778,    11,-32768,   155,-32768,
  508.    168,     8,-32768,-32768,   180,   868,   169,-32768,-32768,   174,
  509. -32768,   175,-32768,-32768,   868,-32768,   240,-32768,    16,    14,
  510.    -71,   146,-32768,-32768,-32768,   147,   176,   179,   182,   189,
  511. -32768,-32768,   -47,   -39,-32768,-32768,     2,    97,   190,   289,
  512.    240,   240,-32768,   240,   240,-32768,-32768,   502,   240,   240,
  513.    300,   305,   240,   306,   240,-32768,-32768,   240,   240,   240,
  514.    240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
  515.    240,   240,   240,   240,   240,   240,   240,   240,   240,   868,
  516.    307,   308,-32768,   309,   240,   240,   868,   102,   310,   312,
  517.    868,   352,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   313,
  518. -32768,-32768,   341,   281,     5,-32768,-32768,-32768,-32768,-32768,
  519. -32768,-32768,    86,-32768,    86,-32768,-32768,   149,-32768,    19,
  520. -32768,-32768,   868,   868,   411,   868,   868,-32768,   522,   542,
  521.    211,   214,   562,   219,   594,   840,   818,   884,   899,   913,
  522.    926,   573,   573,   140,   140,   140,   140,   131,   131,    50,
  523.     50,-32768,-32768,-32768,   868,   868,   868,-32768,-32768,-32768,
  524.    868,   868,-32768,-32768,-32768,-32768,   227,   227,   240,   225,
  525. -32768,   316,   314,-32768,   230,-32768,-32768,-32768,-32768,-32768,
  526. -32768,   233,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  527.    240,   148,   284,   798,   321,   242,-32768,   868,     9,   319,
  528.    234,   252,-32768,-32768,   868,-32768,-32768,-32768,-32768,-32768,
  529.    239,   240,   142,   324,-32768,   295,-32768,   296,   311,   317,
  530. -32768,   247,-32768,   334,   243,-32768,   614,-32768,   240,   299,
  531. -32768,   240,     9,   240,   261,-32768,-32768,   274,    48,   634,
  532. -32768,   172,   654,-32768,   686,-32768,-32768,   360,-32768,   335,
  533.    355,-32768,   292,-32768,-32768,     9,-32768,   240,-32768,    20,
  534. -32768,-32768,-32768,-32768,-32768,   337,-32768,-32768,-32768,-32768,
  535. -32768,-32768,   292,   327,   342,    -9,-32768,-32768,   706,   343,
  536.    344,   240,   374,-32768,-32768,   240,-32768,   345,   374,   374,
  537.    726,-32768,   -70,   358,   746,   368,   -17,   -12,-32768,-32768,
  538.    384,   385,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    42,
  539. -32768,   392,-32768,-32768,-32768,   243,-32768,   397,   398,-32768
  540. };
  541.  
  542. static const short yypgoto[] = {-32768,
  543.    -42,-32768,-32768,-32768,-32768,   237,-32768,-32768,-32768,-32768,
  544. -32768,-32768,-32768,-32768,-32768,   259,-32768,-32768,-32768,   249,
  545. -32768,    57,  -135,  -251,-32768,-32768,-32768,-32768,    23,-32768,
  546. -32768,-32768,-32768,-32768,    13,  -354,  -151,-32768,-32768,  -209,
  547. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  548.    -75,-32768,   -49,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  549. -32768,-32768,-32768,  -289,   130,-32768,-32768,-32768,-32768,-32768,
  550. -32768,-32768,-32768,  -331,-32768
  551. };
  552.  
  553.  
  554. #define    YYLAST        960
  555.  
  556.  
  557. static const short yytable[] = {   116,
  558.    138,   233,   235,   215,    99,   236,   237,   161,   144,   126,
  559.    164,   203,   339,   101,   102,   296,   135,   217,   396,   212,
  560.    198,   364,   236,   237,   334,    67,    68,    69,    70,    71,
  561.     72,    73,    74,    75,   220,   231,   221,    12,   396,   420,
  562.    103,   104,   147,   148,   397,   150,   152,   105,   106,   107,
  563.    159,   431,   294,   166,   167,    81,   -96,   432,   231,   108,
  564.    232,   218,    66,   213,   176,   177,   231,   200,   234,   371,
  565.     77,   109,     1,     2,     3,   207,   110,   111,   112,    78,
  566.     24,   194,   195,   196,   333,   323,   370,   211,   231,    81,
  567.    426,   340,    79,   231,   214,   427,    95,    96,   113,    33,
  568.    155,   156,    80,   162,   283,   284,   165,   238,    83,   239,
  569.    295,   243,   244,   204,   246,   247,   199,    84,   416,   249,
  570.    250,   114,   115,   253,   238,   255,   301,    85,   256,   257,
  571.    258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
  572.    268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
  573.    101,   102,   299,   300,    86,   281,   282,   417,   418,   151,
  574.    192,   193,   194,   195,   196,    87,   302,   190,   191,   192,
  575.    193,   194,   195,   196,    88,   212,    98,   103,   104,    89,
  576.     90,    91,   101,   102,   105,   106,   107,    93,    94,   205,
  577.    297,   100,   298,   358,   117,   118,   108,   326,   327,   328,
  578.    329,   330,   120,   326,   327,   328,   329,   330,   109,   103,
  579.    104,   123,   124,   110,   111,   112,   105,   106,   107,   374,
  580.    125,   127,   128,   134,   129,   131,   215,   133,   108,   101,
  581.    102,   141,   142,   144,   146,   113,    24,   314,   314,   318,
  582.    109,   149,   101,   102,   160,   110,   111,   112,   158,   169,
  583.    214,   170,   171,   222,   226,    33,   103,   104,   114,   115,
  584.    201,   325,   172,   312,   106,   107,   313,   113,   173,   103,
  585.    104,   174,   175,   202,   208,   108,   105,   106,   107,   209,
  586.    210,   367,   347,   227,   437,   206,   228,   109,   108,   229,
  587.    114,   115,   110,   111,   112,   380,   230,   241,   242,   360,
  588.    109,   398,   363,   251,   365,   110,   111,   112,   252,   254,
  589.    278,   279,   280,   285,   113,   286,   290,   292,   306,   321,
  590.    332,   307,   342,   381,   336,   344,   309,   113,   399,   322,
  591.    320,   349,   382,   383,   384,   385,   335,   114,   115,   348,
  592.    324,   343,   351,   357,    13,   361,   346,   352,   231,   368,
  593.    114,   115,   411,   354,   356,   434,   415,    67,    68,    69,
  594.     70,    71,    72,    73,    74,    75,   386,   366,   387,   377,
  595.    379,   378,   388,   402,   405,    33,   291,   412,   406,   409,
  596.    410,   333,   422,   425,    13,    14,    15,   428,   429,    45,
  597.     16,    17,    18,    19,    20,   435,   439,   440,   389,   245,
  598.    390,   223,    21,    22,    23,    24,   240,   362,   407,    25,
  599.     26,    27,    28,    29,    45,   404,     0,   317,    30,    31,
  600.     32,     0,     0,    46,    33,    14,    15,     0,     0,     0,
  601.     16,    17,    18,    19,    20,     0,     0,     0,    47,     0,
  602.      0,     0,    21,    22,    23,    24,   303,    34,    46,    25,
  603.     26,    27,    28,    29,     0,     0,     0,     0,    30,    31,
  604.     32,     0,     0,    47,    33,     0,     0,    48,     0,     0,
  605.     49,    50,    51,    52,    53,   -40,    54,    55,    56,    57,
  606.     58,    59,    60,    61,     0,     0,     0,    34,    62,    63,
  607.     64,     0,    48,     0,     0,    49,    50,    51,    52,    53,
  608.      0,    54,    55,    56,    57,    58,    59,    60,    61,     0,
  609.      0,     0,     0,    62,    63,    64,   178,     0,   179,   180,
  610.    181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
  611.    191,   192,   193,   194,   195,   196,   178,     0,   179,   180,
  612.    181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
  613.    191,   192,   193,   194,   195,   196,   178,     0,   179,   180,
  614.    181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
  615.    191,   192,   193,   194,   195,   196,   178,     0,   179,   180,
  616.    181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
  617.    191,   192,   193,   194,   195,   196,   186,   187,   188,   189,
  618.    190,   191,   192,   193,   194,   195,   196,     0,   178,   248,
  619.    179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
  620.    189,   190,   191,   192,   193,   194,   195,   196,   178,   304,
  621.    179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
  622.    189,   190,   191,   192,   193,   194,   195,   196,   178,   305,
  623.    179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
  624.    189,   190,   191,   192,   193,   194,   195,   196,   178,   308,
  625.    179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
  626.    189,   190,   191,   192,   193,   194,   195,   196,     0,     0,
  627.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  628.    178,   310,   179,   180,   181,   182,   183,   184,   185,   186,
  629.    187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
  630.    178,   359,   179,   180,   181,   182,   183,   184,   185,   186,
  631.    187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
  632.    178,   372,   179,   180,   181,   182,   183,   184,   185,   186,
  633.    187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
  634.    178,   375,   179,   180,   181,   182,   183,   184,   185,   186,
  635.    187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
  636.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  637.      0,     0,   178,   376,   179,   180,   181,   182,   183,   184,
  638.    185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
  639.    195,   196,   178,   408,   179,   180,   181,   182,   183,   184,
  640.    185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
  641.    195,   196,     0,   419,   333,   180,   181,   182,   183,   184,
  642.    185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
  643.    195,   196,     0,   424,   178,   311,   179,   180,   181,   182,
  644.    183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
  645.    193,   194,   195,   196,     0,     0,     0,     0,     0,     0,
  646.      0,     0,   178,   197,   179,   180,   181,   182,   183,   184,
  647.    185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
  648.    195,   196,   181,   182,   183,   184,   185,   186,   187,   188,
  649.    189,   190,   191,   192,   193,   194,   195,   196,   182,   183,
  650.    184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
  651.    194,   195,   196,   183,   184,   185,   186,   187,   188,   189,
  652.    190,   191,   192,   193,   194,   195,   196,   184,   185,   186,
  653.    187,   188,   189,   190,   191,   192,   193,   194,   195,   196
  654. };
  655.  
  656. static const short yycheck[] = {    49,
  657.     76,   153,   154,   139,    47,     4,     5,    10,     4,    59,
  658.     10,     4,     4,     3,     4,   225,    66,     4,   373,     4,
  659.     10,   353,     4,     5,   314,     6,     7,     8,     9,    10,
  660.     11,    12,    13,    14,   106,   106,   108,     4,   393,   110,
  661.     30,    31,    85,    86,   376,    88,    89,    37,    38,    39,
  662.     93,    10,    48,   103,   104,     4,    37,    16,   106,    49,
  663.    108,    48,    10,    48,   114,   115,   106,   117,   108,   359,
  664.     47,    61,   100,   101,   102,   125,    66,    67,    68,    47,
  665.     65,    32,    33,    34,    37,   295,    39,   137,   106,     4,
  666.    108,    83,    37,   106,    79,   108,   106,   107,    88,    84,
  667.      4,     5,    37,   106,     3,     4,   106,   106,    47,   108,
  668.    106,   161,   162,   106,   164,   165,   106,    37,   408,   169,
  669.    170,   111,   112,   173,   106,   175,   108,    37,   178,   179,
  670.    180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
  671.    190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
  672.      3,     4,     4,     5,    37,   205,   206,   409,   410,   108,
  673.     30,    31,    32,    33,    34,    37,   242,    28,    29,    30,
  674.     31,    32,    33,    34,    37,     4,     4,    30,    31,    37,
  675.     37,    37,     3,     4,    37,    38,    39,    37,    37,    10,
  676.    233,     4,   235,   345,     4,     4,    49,    56,    57,    58,
  677.     59,    60,     4,    56,    57,    58,    59,    60,    61,    30,
  678.     31,     4,     4,    66,    67,    68,    37,    38,    39,    48,
  679.      4,     4,     3,    90,     4,     4,   362,     4,    49,     3,
  680.      4,     4,     4,     4,     4,    88,    65,   287,   288,   289,
  681.     61,     4,     3,     4,     4,    66,    67,    68,    37,    37,
  682.     79,    37,    37,   108,   108,    84,    30,    31,   111,   112,
  683.    106,   311,    37,    37,    38,    39,    40,    88,    37,    30,
  684.     31,    37,    37,   106,   106,    49,    37,    38,    39,   106,
  685.    106,   357,   332,   108,   436,   106,   108,    61,    49,   108,
  686.    111,   112,    66,    67,    68,     4,   108,   108,    10,   349,
  687.     61,   377,   352,     4,   354,    66,    67,    68,     4,     4,
  688.      4,     4,     4,     4,    88,     4,     4,    37,   108,     4,
  689.     37,   108,     4,    32,    83,    74,   108,    88,   378,    16,
  690.    106,    37,    41,    42,    43,    44,    16,   111,   112,    16,
  691.    108,   108,    47,    10,     4,    47,   108,    37,   106,    76,
  692.    111,   112,   402,    37,   108,   431,   406,     6,     7,     8,
  693.      9,    10,    11,    12,    13,    14,    75,   107,    77,    10,
  694.     16,    37,    81,    37,    48,    84,    36,     4,    37,    37,
  695.     37,    37,    25,    16,     4,    45,    46,     4,     4,     4,
  696.     50,    51,    52,    53,    54,     4,     0,     0,   107,   163,
  697.    109,   143,    62,    63,    64,    65,   158,   351,   396,    69,
  698.     70,    71,    72,    73,     4,   393,    -1,   288,    78,    79,
  699.     80,    -1,    -1,    38,    84,    45,    46,    -1,    -1,    -1,
  700.     50,    51,    52,    53,    54,    -1,    -1,    -1,    53,    -1,
  701.     -1,    -1,    62,    63,    64,    65,    36,   107,    38,    69,
  702.     70,    71,    72,    73,    -1,    -1,    -1,    -1,    78,    79,
  703.     80,    -1,    -1,    53,    84,    -1,    -1,    82,    -1,    -1,
  704.     85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
  705.     95,    96,    97,    98,    -1,    -1,    -1,   107,   103,   104,
  706.    105,    -1,    82,    -1,    -1,    85,    86,    87,    88,    89,
  707.     -1,    91,    92,    93,    94,    95,    96,    97,    98,    -1,
  708.     -1,    -1,    -1,   103,   104,   105,    15,    -1,    17,    18,
  709.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  710.     29,    30,    31,    32,    33,    34,    15,    -1,    17,    18,
  711.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  712.     29,    30,    31,    32,    33,    34,    15,    -1,    17,    18,
  713.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  714.     29,    30,    31,    32,    33,    34,    15,    -1,    17,    18,
  715.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  716.     29,    30,    31,    32,    33,    34,    24,    25,    26,    27,
  717.     28,    29,    30,    31,    32,    33,    34,    -1,    15,   108,
  718.     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  719.     27,    28,    29,    30,    31,    32,    33,    34,    15,   108,
  720.     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  721.     27,    28,    29,    30,    31,    32,    33,    34,    15,   108,
  722.     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  723.     27,    28,    29,    30,    31,    32,    33,    34,    15,   108,
  724.     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  725.     27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
  726.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  727.     15,   108,    17,    18,    19,    20,    21,    22,    23,    24,
  728.     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
  729.     15,   108,    17,    18,    19,    20,    21,    22,    23,    24,
  730.     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
  731.     15,   108,    17,    18,    19,    20,    21,    22,    23,    24,
  732.     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
  733.     15,   108,    17,    18,    19,    20,    21,    22,    23,    24,
  734.     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
  735.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  736.     -1,    -1,    15,   108,    17,    18,    19,    20,    21,    22,
  737.     23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
  738.     33,    34,    15,   108,    17,    18,    19,    20,    21,    22,
  739.     23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
  740.     33,    34,    -1,   108,    37,    18,    19,    20,    21,    22,
  741.     23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
  742.     33,    34,    -1,   108,    15,    16,    17,    18,    19,    20,
  743.     21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
  744.     31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
  745.     -1,    -1,    15,   106,    17,    18,    19,    20,    21,    22,
  746.     23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
  747.     33,    34,    19,    20,    21,    22,    23,    24,    25,    26,
  748.     27,    28,    29,    30,    31,    32,    33,    34,    20,    21,
  749.     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
  750.     32,    33,    34,    21,    22,    23,    24,    25,    26,    27,
  751.     28,    29,    30,    31,    32,    33,    34,    22,    23,    24,
  752.     25,    26,    27,    28,    29,    30,    31,    32,    33,    34
  753. };
  754. /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  755. #line 3 "/usr/unsupported/share/bison.simple"
  756.  
  757. /* Skeleton output parser for bison,
  758.    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
  759.  
  760.    This program is free software; you can redistribute it and/or modify
  761.    it under the terms of the GNU General Public License as published by
  762.    the Free Software Foundation; either version 2, or (at your option)
  763.    any later version.
  764.  
  765.    This program is distributed in the hope that it will be useful,
  766.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  767.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  768.    GNU General Public License for more details.
  769.  
  770.    You should have received a copy of the GNU General Public License
  771.    along with this program; if not, write to the Free Software
  772.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  773.  
  774. /* As a special exception, when this file is copied by Bison into a
  775.    Bison output file, you may use that output file without restriction.
  776.    This special exception was added by the Free Software Foundation
  777.    in version 1.24 of Bison.  */
  778.  
  779. #ifndef alloca
  780. #ifdef __GNUC__
  781. #define alloca __builtin_alloca
  782. #else /* not GNU C.  */
  783. #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
  784. #include <alloca.h>
  785. #else /* not sparc */
  786. #if defined (MSDOS) && !defined (__TURBOC__)
  787. #include <malloc.h>
  788. #else /* not MSDOS, or __TURBOC__ */
  789. #if defined(_AIX)
  790. #include <malloc.h>
  791.  #pragma alloca
  792. #else /* not MSDOS, __TURBOC__, or _AIX */
  793. #ifdef __hpux
  794. #ifdef __cplusplus
  795. extern "C" {
  796. void *alloca (unsigned int);
  797. };
  798. #else /* not __cplusplus */
  799. void *alloca ();
  800. #endif /* not __cplusplus */
  801. #endif /* __hpux */
  802. #endif /* not _AIX */
  803. #endif /* not MSDOS, or __TURBOC__ */
  804. #endif /* not sparc.  */
  805. #endif /* not GNU C.  */
  806. #endif /* alloca not defined.  */
  807.  
  808. /* This is the parser code that is written into each bison parser
  809.   when the %semantic_parser declaration is not specified in the grammar.
  810.   It was written by Richard Stallman by simplifying the hairy parser
  811.   used when %semantic_parser is specified.  */
  812.  
  813. /* Note: there must be only one dollar sign in this file.
  814.    It is replaced by the list of actions, each action
  815.    as one case of the switch.  */
  816.  
  817. #define yyerrok        (yyerrstatus = 0)
  818. #define yyclearin    (yychar = YYEMPTY)
  819. #define YYEMPTY        -2
  820. #define YYEOF        0
  821. #define YYACCEPT    return(0)
  822. #define YYABORT     return(1)
  823. #define YYERROR        goto yyerrlab1
  824. /* Like YYERROR except do call yyerror.
  825.    This remains here temporarily to ease the
  826.    transition to the new meaning of YYERROR, for GCC.
  827.    Once GCC version 2 has supplanted version 1, this can go.  */
  828. #define YYFAIL        goto yyerrlab
  829. #define YYRECOVERING()  (!!yyerrstatus)
  830. #define YYBACKUP(token, value) \
  831. do                                \
  832.   if (yychar == YYEMPTY && yylen == 1)                \
  833.     { yychar = (token), yylval = (value);            \
  834.       yychar1 = YYTRANSLATE (yychar);                \
  835.       YYPOPSTACK;                        \
  836.       goto yybackup;                        \
  837.     }                                \
  838.   else                                \
  839.     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  840. while (0)
  841.  
  842. #define YYTERROR    1
  843. #define YYERRCODE    256
  844.  
  845. #ifndef YYPURE
  846. #define YYLEX        yylex()
  847. #endif
  848.  
  849. #ifdef YYPURE
  850. #ifdef YYLSP_NEEDED
  851. #ifdef YYLEX_PARAM
  852. #define YYLEX        yylex(&yylval, &yylloc, YYLEX_PARAM)
  853. #else
  854. #define YYLEX        yylex(&yylval, &yylloc)
  855. #endif
  856. #else /* not YYLSP_NEEDED */
  857. #ifdef YYLEX_PARAM
  858. #define YYLEX        yylex(&yylval, YYLEX_PARAM)
  859. #else
  860. #define YYLEX        yylex(&yylval)
  861. #endif
  862. #endif /* not YYLSP_NEEDED */
  863. #endif
  864.  
  865. /* If nonreentrant, generate the variables here */
  866.  
  867. #ifndef YYPURE
  868.  
  869. int    yychar;            /*  the lookahead symbol        */
  870. YYSTYPE    yylval;            /*  the semantic value of the        */
  871.                 /*  lookahead symbol            */
  872.  
  873. #ifdef YYLSP_NEEDED
  874. YYLTYPE yylloc;            /*  location data for the lookahead    */
  875.                 /*  symbol                */
  876. #endif
  877.  
  878. int yynerrs;            /*  number of parse errors so far       */
  879. #endif  /* not YYPURE */
  880.  
  881. #if YYDEBUG != 0
  882. int yydebug;            /*  nonzero means print parse trace    */
  883. /* Since this is uninitialized, it does not stop multiple parsers
  884.    from coexisting.  */
  885. #endif
  886.  
  887. /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  888.  
  889. #ifndef    YYINITDEPTH
  890. #define YYINITDEPTH 200
  891. #endif
  892.  
  893. /*  YYMAXDEPTH is the maximum size the stacks can grow to
  894.     (effective only if the built-in stack extension method is used).  */
  895.  
  896. #if YYMAXDEPTH == 0
  897. #undef YYMAXDEPTH
  898. #endif
  899.  
  900. #ifndef YYMAXDEPTH
  901. #define YYMAXDEPTH 10000
  902. #endif
  903.  
  904. /* Prevent warning if -Wstrict-prototypes.  */
  905. #ifdef __GNUC__
  906. int yyparse (void);
  907. #endif
  908.  
  909. #if __GNUC__ > 1        /* GNU C and GNU C++ define this.  */
  910. #define __yy_memcpy(FROM,TO,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
  911. #else                /* not GNU C or C++ */
  912. #ifndef __cplusplus
  913.  
  914. /* This is the most reliable way to avoid incompatibilities
  915.    in available built-in functions on various systems.  */
  916. static void
  917. __yy_memcpy (from, to, count)
  918.      char *from;
  919.      char *to;
  920.      int count;
  921. {
  922.   register char *f = from;
  923.   register char *t = to;
  924.   register int i = count;
  925.  
  926.   while (i-- > 0)
  927.     *t++ = *f++;
  928. }
  929.  
  930. #else /* __cplusplus */
  931.  
  932. /* This is the most reliable way to avoid incompatibilities
  933.    in available built-in functions on various systems.  */
  934. static void
  935. __yy_memcpy (char *from, char *to, int count)
  936. {
  937.   register char *f = from;
  938.   register char *t = to;
  939.   register int i = count;
  940.  
  941.   while (i-- > 0)
  942.     *t++ = *f++;
  943. }
  944.  
  945. #endif
  946. #endif
  947.  
  948. #line 192 "/usr/unsupported/share/bison.simple"
  949.  
  950. /* The user can define YYPARSE_PARAM as the name of an argument to be passed
  951.    into yyparse.  The argument should have type void *.
  952.    It should actually point to an object.
  953.    Grammar actions can access the variable by casting it
  954.    to the proper pointer type.  */
  955.  
  956. #ifdef YYPARSE_PARAM
  957. #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
  958. #else
  959. #define YYPARSE_PARAM
  960. #define YYPARSE_PARAM_DECL
  961. #endif
  962.  
  963. int
  964. yyparse(YYPARSE_PARAM)
  965.      YYPARSE_PARAM_DECL
  966. {
  967.   register int yystate;
  968.   register int yyn;
  969.   register short *yyssp;
  970.   register YYSTYPE *yyvsp;
  971.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  972.   int yychar1 = 0;        /*  lookahead token as an internal (translated) token number */
  973.  
  974.   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  975.   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  976.  
  977.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  978.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  979.  
  980. #ifdef YYLSP_NEEDED
  981.   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  982.   YYLTYPE *yyls = yylsa;
  983.   YYLTYPE *yylsp;
  984.  
  985. #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  986. #else
  987. #define YYPOPSTACK   (yyvsp--, yyssp--)
  988. #endif
  989.  
  990.   int yystacksize = YYINITDEPTH;
  991.  
  992. #ifdef YYPURE
  993.   int yychar;
  994.   YYSTYPE yylval;
  995.   int yynerrs;
  996. #ifdef YYLSP_NEEDED
  997.   YYLTYPE yylloc;
  998. #endif
  999. #endif
  1000.  
  1001.   YYSTYPE yyval;        /*  the variable used to return        */
  1002.                 /*  semantic values from the action    */
  1003.                 /*  routines                */
  1004.  
  1005.   int yylen;
  1006.  
  1007. #if YYDEBUG != 0
  1008.   if (yydebug)
  1009.     fprintf(stderr, "Starting parse\n");
  1010. #endif
  1011.  
  1012.   yystate = 0;
  1013.   yyerrstatus = 0;
  1014.   yynerrs = 0;
  1015.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  1016.  
  1017.   /* Initialize stack pointers.
  1018.      Waste one element of value and location stack
  1019.      so that they stay on the same level as the state stack.
  1020.      The wasted elements are never initialized.  */
  1021.  
  1022.   yyssp = yyss - 1;
  1023.   yyvsp = yyvs;
  1024. #ifdef YYLSP_NEEDED
  1025.   yylsp = yyls;
  1026. #endif
  1027.  
  1028. /* Push a new state, which is found in  yystate  .  */
  1029. /* In all cases, when you get here, the value and location stacks
  1030.    have just been pushed. so pushing a state here evens the stacks.  */
  1031. yynewstate:
  1032.  
  1033.   *++yyssp = yystate;
  1034.  
  1035.   if (yyssp >= yyss + yystacksize - 1)
  1036.     {
  1037.       /* Give user a chance to reallocate the stack */
  1038.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  1039.       YYSTYPE *yyvs1 = yyvs;
  1040.       short *yyss1 = yyss;
  1041. #ifdef YYLSP_NEEDED
  1042.       YYLTYPE *yyls1 = yyls;
  1043. #endif
  1044.  
  1045.       /* Get the current used size of the three stacks, in elements.  */
  1046.       int size = yyssp - yyss + 1;
  1047.  
  1048. #ifdef yyoverflow
  1049.       /* Each stack pointer address is followed by the size of
  1050.      the data in use in that stack, in bytes.  */
  1051. #ifdef YYLSP_NEEDED
  1052.       /* This used to be a conditional around just the two extra args,
  1053.      but that might be undefined if yyoverflow is a macro.  */
  1054.       yyoverflow("parser stack overflow",
  1055.          &yyss1, size * sizeof (*yyssp),
  1056.          &yyvs1, size * sizeof (*yyvsp),
  1057.          &yyls1, size * sizeof (*yylsp),
  1058.          &yystacksize);
  1059. #else
  1060.       yyoverflow("parser stack overflow",
  1061.          &yyss1, size * sizeof (*yyssp),
  1062.          &yyvs1, size * sizeof (*yyvsp),
  1063.          &yystacksize);
  1064. #endif
  1065.  
  1066.       yyss = yyss1; yyvs = yyvs1;
  1067. #ifdef YYLSP_NEEDED
  1068.       yyls = yyls1;
  1069. #endif
  1070. #else /* no yyoverflow */
  1071.       /* Extend the stack our own way.  */
  1072.       if (yystacksize >= YYMAXDEPTH)
  1073.     {
  1074.       yyerror("parser stack overflow");
  1075.       return 2;
  1076.     }
  1077.       yystacksize *= 2;
  1078.       if (yystacksize > YYMAXDEPTH)
  1079.     yystacksize = YYMAXDEPTH;
  1080.       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  1081.       __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1082.       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  1083.       __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1084. #ifdef YYLSP_NEEDED
  1085.       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  1086.       __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1087. #endif
  1088. #endif /* no yyoverflow */
  1089.  
  1090.       yyssp = yyss + size - 1;
  1091.       yyvsp = yyvs + size - 1;
  1092. #ifdef YYLSP_NEEDED
  1093.       yylsp = yyls + size - 1;
  1094. #endif
  1095.  
  1096. #if YYDEBUG != 0
  1097.       if (yydebug)
  1098.     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  1099. #endif
  1100.  
  1101.       if (yyssp >= yyss + yystacksize - 1)
  1102.     YYABORT;
  1103.     }
  1104.  
  1105. #if YYDEBUG != 0
  1106.   if (yydebug)
  1107.     fprintf(stderr, "Entering state %d\n", yystate);
  1108. #endif
  1109.  
  1110.   goto yybackup;
  1111.  yybackup:
  1112.  
  1113. /* Do appropriate processing given the current state.  */
  1114. /* Read a lookahead token if we need one and don't already have one.  */
  1115. /* yyresume: */
  1116.  
  1117.   /* First try to decide what to do without reference to lookahead token.  */
  1118.  
  1119.   yyn = yypact[yystate];
  1120.   if (yyn == YYFLAG)
  1121.     goto yydefault;
  1122.  
  1123.   /* Not known => get a lookahead token if don't already have one.  */
  1124.  
  1125.   /* yychar is either YYEMPTY or YYEOF
  1126.      or a valid token in external form.  */
  1127.  
  1128.   if (yychar == YYEMPTY)
  1129.     {
  1130. #if YYDEBUG != 0
  1131.       if (yydebug)
  1132.     fprintf(stderr, "Reading a token: ");
  1133. #endif
  1134.       yychar = YYLEX;
  1135.     }
  1136.  
  1137.   /* Convert token to internal form (in yychar1) for indexing tables with */
  1138.  
  1139.   if (yychar <= 0)        /* This means end of input. */
  1140.     {
  1141.       yychar1 = 0;
  1142.       yychar = YYEOF;        /* Don't call YYLEX any more */
  1143.  
  1144. #if YYDEBUG != 0
  1145.       if (yydebug)
  1146.     fprintf(stderr, "Now at end of input.\n");
  1147. #endif
  1148.     }
  1149.   else
  1150.     {
  1151.       yychar1 = YYTRANSLATE(yychar);
  1152.  
  1153. #if YYDEBUG != 0
  1154.       if (yydebug)
  1155.     {
  1156.       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  1157.       /* Give the individual parser a way to print the precise meaning
  1158.          of a token, for further debugging info.  */
  1159. #ifdef YYPRINT
  1160.       YYPRINT (stderr, yychar, yylval);
  1161. #endif
  1162.       fprintf (stderr, ")\n");
  1163.     }
  1164. #endif
  1165.     }
  1166.  
  1167.   yyn += yychar1;
  1168.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  1169.     goto yydefault;
  1170.  
  1171.   yyn = yytable[yyn];
  1172.  
  1173.   /* yyn is what to do for this token type in this state.
  1174.      Negative => reduce, -yyn is rule number.
  1175.      Positive => shift, yyn is new state.
  1176.        New state is final state => don't bother to shift,
  1177.        just return success.
  1178.      0, or most negative number => error.  */
  1179.  
  1180.   if (yyn < 0)
  1181.     {
  1182.       if (yyn == YYFLAG)
  1183.     goto yyerrlab;
  1184.       yyn = -yyn;
  1185.       goto yyreduce;
  1186.     }
  1187.   else if (yyn == 0)
  1188.     goto yyerrlab;
  1189.  
  1190.   if (yyn == YYFINAL)
  1191.     YYACCEPT;
  1192.  
  1193.   /* Shift the lookahead token.  */
  1194.  
  1195. #if YYDEBUG != 0
  1196.   if (yydebug)
  1197.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  1198. #endif
  1199.  
  1200.   /* Discard the token being shifted unless it is eof.  */
  1201.   if (yychar != YYEOF)
  1202.     yychar = YYEMPTY;
  1203.  
  1204.   *++yyvsp = yylval;
  1205. #ifdef YYLSP_NEEDED
  1206.   *++yylsp = yylloc;
  1207. #endif
  1208.  
  1209.   /* count tokens shifted since error; after three, turn off error status.  */
  1210.   if (yyerrstatus) yyerrstatus--;
  1211.  
  1212.   yystate = yyn;
  1213.   goto yynewstate;
  1214.  
  1215. /* Do the default action for the current state.  */
  1216. yydefault:
  1217.  
  1218.   yyn = yydefact[yystate];
  1219.   if (yyn == 0)
  1220.     goto yyerrlab;
  1221.  
  1222. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  1223. yyreduce:
  1224.   yylen = yyr2[yyn];
  1225.   if (yylen > 0)
  1226.     yyval = yyvsp[1-yylen]; /* implement default value of the action */
  1227.  
  1228. #if YYDEBUG != 0
  1229.   if (yydebug)
  1230.     {
  1231.       int i;
  1232.  
  1233.       fprintf (stderr, "Reducing via rule %d (line %d), ",
  1234.            yyn, yyrline[yyn]);
  1235.  
  1236.       /* Print the symbols being reduced, and their result.  */
  1237.       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  1238.     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  1239.       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  1240.     }
  1241. #endif
  1242.  
  1243.  
  1244.   switch (yyn) {
  1245.  
  1246. case 5:
  1247. #line 138 "./ldgram.y"
  1248. { ldlex_defsym(); ;
  1249.     break;}
  1250. case 6:
  1251. #line 140 "./ldgram.y"
  1252. {
  1253.           ldlex_popstate();
  1254.           lang_add_assignment(exp_assop(yyvsp[-1].token,yyvsp[-2].name,yyvsp[0].etree));
  1255.         ;
  1256.     break;}
  1257. case 7:
  1258. #line 147 "./ldgram.y"
  1259. {
  1260.           ldlex_mri_script ();
  1261.           PUSH_ERROR ("MRI style script");
  1262.         ;
  1263.     break;}
  1264. case 8:
  1265. #line 152 "./ldgram.y"
  1266. {
  1267.           ldlex_popstate ();
  1268.           mri_draw_tree ();
  1269.           POP_ERROR ();
  1270.         ;
  1271.     break;}
  1272. case 13:
  1273. #line 167 "./ldgram.y"
  1274. {
  1275.             einfo("%P%F: unrecognised keyword in MRI style script '%s'\n",yyvsp[0].name);
  1276.             ;
  1277.     break;}
  1278. case 14:
  1279. #line 170 "./ldgram.y"
  1280. {
  1281.             config.map_filename = "-";
  1282.             ;
  1283.     break;}
  1284. case 17:
  1285. #line 176 "./ldgram.y"
  1286. { mri_public(yyvsp[-2].name, yyvsp[0].etree); ;
  1287.     break;}
  1288. case 18:
  1289. #line 178 "./ldgram.y"
  1290. { mri_public(yyvsp[-2].name, yyvsp[0].etree); ;
  1291.     break;}
  1292. case 19:
  1293. #line 180 "./ldgram.y"
  1294. { mri_public(yyvsp[-1].name, yyvsp[0].etree); ;
  1295.     break;}
  1296. case 20:
  1297. #line 182 "./ldgram.y"
  1298. { mri_format(yyvsp[0].name); ;
  1299.     break;}
  1300. case 21:
  1301. #line 184 "./ldgram.y"
  1302. { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);;
  1303.     break;}
  1304. case 22:
  1305. #line 186 "./ldgram.y"
  1306. { mri_output_section(yyvsp[-1].name, yyvsp[0].etree);;
  1307.     break;}
  1308. case 23:
  1309. #line 188 "./ldgram.y"
  1310. { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);;
  1311.     break;}
  1312. case 24:
  1313. #line 190 "./ldgram.y"
  1314. { mri_align(yyvsp[-2].name,yyvsp[0].etree); ;
  1315.     break;}
  1316. case 25:
  1317. #line 192 "./ldgram.y"
  1318. { mri_align(yyvsp[-2].name,yyvsp[0].etree); ;
  1319.     break;}
  1320. case 26:
  1321. #line 194 "./ldgram.y"
  1322. { mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); ;
  1323.     break;}
  1324. case 27:
  1325. #line 196 "./ldgram.y"
  1326. { mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); ;
  1327.     break;}
  1328. case 30:
  1329. #line 200 "./ldgram.y"
  1330. { mri_name(yyvsp[0].name); ;
  1331.     break;}
  1332. case 31:
  1333. #line 202 "./ldgram.y"
  1334. { mri_alias(yyvsp[-2].name,yyvsp[0].name,0);;
  1335.     break;}
  1336. case 32:
  1337. #line 204 "./ldgram.y"
  1338. { mri_alias(yyvsp[-2].name,0,(int) yyvsp[0].integer);;
  1339.     break;}
  1340. case 33:
  1341. #line 206 "./ldgram.y"
  1342. { mri_base(yyvsp[0].etree); ;
  1343.     break;}
  1344. case 34:
  1345. #line 208 "./ldgram.y"
  1346. {  mri_truncate((unsigned int) yyvsp[0].integer); ;
  1347.     break;}
  1348. case 37:
  1349. #line 212 "./ldgram.y"
  1350. { ldfile_open_command_file (yyvsp[0].name); ;
  1351.     break;}
  1352. case 39:
  1353. #line 214 "./ldgram.y"
  1354. { lang_add_entry (yyvsp[0].name, false); ;
  1355.     break;}
  1356. case 41:
  1357. #line 219 "./ldgram.y"
  1358. { mri_order(yyvsp[0].name); ;
  1359.     break;}
  1360. case 42:
  1361. #line 220 "./ldgram.y"
  1362. { mri_order(yyvsp[0].name); ;
  1363.     break;}
  1364. case 44:
  1365. #line 226 "./ldgram.y"
  1366. { mri_load(yyvsp[0].name); ;
  1367.     break;}
  1368. case 45:
  1369. #line 227 "./ldgram.y"
  1370. { mri_load(yyvsp[0].name); ;
  1371.     break;}
  1372. case 46:
  1373. #line 232 "./ldgram.y"
  1374. { mri_only_load(yyvsp[0].name); ;
  1375.     break;}
  1376. case 47:
  1377. #line 234 "./ldgram.y"
  1378. { mri_only_load(yyvsp[0].name); ;
  1379.     break;}
  1380. case 48:
  1381. #line 238 "./ldgram.y"
  1382. { yyval.name = NULL; ;
  1383.     break;}
  1384. case 51:
  1385. #line 245 "./ldgram.y"
  1386. { ldlang_add_undef (yyvsp[0].name); ;
  1387.     break;}
  1388. case 52:
  1389. #line 247 "./ldgram.y"
  1390. { ldlang_add_undef (yyvsp[0].name); ;
  1391.     break;}
  1392. case 53:
  1393. #line 251 "./ldgram.y"
  1394. {
  1395.      ldlex_both();
  1396.     ;
  1397.     break;}
  1398. case 54:
  1399. #line 255 "./ldgram.y"
  1400. {
  1401.     ldlex_popstate();
  1402.     ;
  1403.     break;}
  1404. case 66:
  1405. #line 279 "./ldgram.y"
  1406. { lang_add_target(yyvsp[-1].name); ;
  1407.     break;}
  1408. case 67:
  1409. #line 281 "./ldgram.y"
  1410. { ldfile_add_library_path (yyvsp[-1].name, false); ;
  1411.     break;}
  1412. case 68:
  1413. #line 283 "./ldgram.y"
  1414. { lang_add_output(yyvsp[-1].name, 1); ;
  1415.     break;}
  1416. case 69:
  1417. #line 285 "./ldgram.y"
  1418. { lang_add_output_format (yyvsp[-1].name, (char *) NULL,
  1419.                         (char *) NULL, 1); ;
  1420.     break;}
  1421. case 70:
  1422. #line 288 "./ldgram.y"
  1423. { lang_add_output_format (yyvsp[-5].name, yyvsp[-3].name, yyvsp[-1].name, 1); ;
  1424.     break;}
  1425. case 71:
  1426. #line 290 "./ldgram.y"
  1427. { ldfile_set_output_arch(yyvsp[-1].name); ;
  1428.     break;}
  1429. case 72:
  1430. #line 292 "./ldgram.y"
  1431. { command_line.force_common_definition = true ; ;
  1432.     break;}
  1433. case 74:
  1434. #line 295 "./ldgram.y"
  1435. { lang_enter_group (); ;
  1436.     break;}
  1437. case 75:
  1438. #line 297 "./ldgram.y"
  1439. { lang_leave_group (); ;
  1440.     break;}
  1441. case 76:
  1442. #line 299 "./ldgram.y"
  1443. { lang_add_map(yyvsp[-1].name); ;
  1444.     break;}
  1445. case 77:
  1446. #line 301 "./ldgram.y"
  1447. { ldfile_open_command_file(yyvsp[0].name); ;
  1448.     break;}
  1449. case 79:
  1450. #line 306 "./ldgram.y"
  1451. { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
  1452.                  (char *)NULL); ;
  1453.     break;}
  1454. case 80:
  1455. #line 309 "./ldgram.y"
  1456. { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
  1457.                  (char *)NULL); ;
  1458.     break;}
  1459. case 81:
  1460. #line 312 "./ldgram.y"
  1461. { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
  1462.                  (char *)NULL); ;
  1463.     break;}
  1464. case 82:
  1465. #line 315 "./ldgram.y"
  1466. { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
  1467.                  (char *)NULL); ;
  1468.     break;}
  1469. case 83:
  1470. #line 318 "./ldgram.y"
  1471. { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
  1472.                  (char *)NULL); ;
  1473.     break;}
  1474. case 84:
  1475. #line 321 "./ldgram.y"
  1476. { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
  1477.                  (char *)NULL); ;
  1478.     break;}
  1479. case 89:
  1480. #line 337 "./ldgram.y"
  1481. { lang_add_entry (yyvsp[-1].name, false); ;
  1482.     break;}
  1483. case 91:
  1484. #line 343 "./ldgram.y"
  1485. { lang_add_wild(yyvsp[0].name, current_file); ;
  1486.     break;}
  1487. case 92:
  1488. #line 345 "./ldgram.y"
  1489. { lang_add_wild(yyvsp[0].name, current_file); ;
  1490.     break;}
  1491. case 93:
  1492. #line 350 "./ldgram.y"
  1493. {
  1494.         lang_add_wild((char *)NULL, yyvsp[0].name);
  1495.         ;
  1496.     break;}
  1497. case 94:
  1498. #line 354 "./ldgram.y"
  1499. {
  1500.             current_file = (char *)NULL;
  1501.             ;
  1502.     break;}
  1503. case 96:
  1504. #line 360 "./ldgram.y"
  1505. {
  1506.             current_file =yyvsp[0].name;
  1507.             ;
  1508.     break;}
  1509. case 98:
  1510. #line 365 "./ldgram.y"
  1511. {
  1512.             current_file = (char *)NULL;
  1513.             ;
  1514.     break;}
  1515. case 101:
  1516. #line 374 "./ldgram.y"
  1517. {
  1518.          lang_add_attribute(lang_object_symbols_statement_enum); 
  1519.               ;
  1520.     break;}
  1521. case 103:
  1522. #line 379 "./ldgram.y"
  1523. {
  1524.          
  1525.           lang_add_attribute(lang_constructors_statement_enum); 
  1526.         ;
  1527.     break;}
  1528. case 105:
  1529. #line 385 "./ldgram.y"
  1530. {
  1531.             lang_add_data((int) yyvsp[-3].integer,yyvsp[-1].etree);
  1532.             ;
  1533.     break;}
  1534. case 106:
  1535. #line 390 "./ldgram.y"
  1536. {
  1537.               lang_add_fill
  1538.                 (exp_get_value_int(yyvsp[-1].etree,
  1539.                            0,
  1540.                            "fill value",
  1541.                            lang_first_phase_enum));
  1542.             ;
  1543.     break;}
  1544. case 111:
  1545. #line 411 "./ldgram.y"
  1546. { yyval.integer = yyvsp[0].token; ;
  1547.     break;}
  1548. case 112:
  1549. #line 413 "./ldgram.y"
  1550. { yyval.integer = yyvsp[0].token; ;
  1551.     break;}
  1552. case 113:
  1553. #line 415 "./ldgram.y"
  1554. { yyval.integer = yyvsp[0].token; ;
  1555.     break;}
  1556. case 114:
  1557. #line 417 "./ldgram.y"
  1558. { yyval.integer = yyvsp[0].token; ;
  1559.     break;}
  1560. case 115:
  1561. #line 422 "./ldgram.y"
  1562. {
  1563.           yyval.integer =     exp_get_value_int(yyvsp[0].etree,
  1564.                        0,
  1565.                        "fill value",
  1566.                        lang_first_phase_enum);
  1567.         ;
  1568.     break;}
  1569. case 116:
  1570. #line 428 "./ldgram.y"
  1571. { yyval.integer = 0; ;
  1572.     break;}
  1573. case 117:
  1574. #line 435 "./ldgram.y"
  1575. { yyval.token = '+'; ;
  1576.     break;}
  1577. case 118:
  1578. #line 437 "./ldgram.y"
  1579. { yyval.token = '-'; ;
  1580.     break;}
  1581. case 119:
  1582. #line 439 "./ldgram.y"
  1583. { yyval.token = '*'; ;
  1584.     break;}
  1585. case 120:
  1586. #line 441 "./ldgram.y"
  1587. { yyval.token = '/'; ;
  1588.     break;}
  1589. case 121:
  1590. #line 443 "./ldgram.y"
  1591. { yyval.token = LSHIFT; ;
  1592.     break;}
  1593. case 122:
  1594. #line 445 "./ldgram.y"
  1595. { yyval.token = RSHIFT; ;
  1596.     break;}
  1597. case 123:
  1598. #line 447 "./ldgram.y"
  1599. { yyval.token = '&'; ;
  1600.     break;}
  1601. case 124:
  1602. #line 449 "./ldgram.y"
  1603. { yyval.token = '|'; ;
  1604.     break;}
  1605. case 127:
  1606. #line 459 "./ldgram.y"
  1607. {
  1608.           lang_add_assignment (exp_assop (yyvsp[-1].token, yyvsp[-2].name, yyvsp[0].etree));
  1609.         ;
  1610.     break;}
  1611. case 128:
  1612. #line 463 "./ldgram.y"
  1613. {
  1614.           lang_add_assignment (exp_assop ('=', yyvsp[-2].name,
  1615.                           exp_binop (yyvsp[-1].token,
  1616.                                  exp_nameop (NAME,
  1617.                                      yyvsp[-2].name),
  1618.                                  yyvsp[0].etree)));
  1619.         ;
  1620.     break;}
  1621. case 129:
  1622. #line 471 "./ldgram.y"
  1623. {
  1624.           lang_add_assignment (exp_provide (yyvsp[-3].name, yyvsp[-1].etree));
  1625.         ;
  1626.     break;}
  1627. case 136:
  1628. #line 493 "./ldgram.y"
  1629. { region = lang_memory_region_lookup(yyvsp[0].name); ;
  1630.     break;}
  1631. case 138:
  1632. #line 499 "./ldgram.y"
  1633. { region->current =
  1634.          region->origin =
  1635.          exp_get_vma(yyvsp[0].etree, 0L,"origin", lang_first_phase_enum);
  1636. ;
  1637.     break;}
  1638. case 139:
  1639. #line 505 "./ldgram.y"
  1640. { region->length = exp_get_vma(yyvsp[0].etree,
  1641.                            ~((bfd_vma)0),
  1642.                            "length",
  1643.                            lang_first_phase_enum);
  1644.         ;
  1645.     break;}
  1646. case 140:
  1647. #line 514 "./ldgram.y"
  1648. {
  1649.             lang_set_flags(®ion->flags, yyvsp[-1].name);
  1650.             ;
  1651.     break;}
  1652. case 142:
  1653. #line 523 "./ldgram.y"
  1654. { lang_startup(yyvsp[-1].name); ;
  1655.     break;}
  1656. case 144:
  1657. #line 529 "./ldgram.y"
  1658. { ldemul_hll((char *)NULL); ;
  1659.     break;}
  1660. case 145:
  1661. #line 534 "./ldgram.y"
  1662. { ldemul_hll(yyvsp[0].name); ;
  1663.     break;}
  1664. case 146:
  1665. #line 536 "./ldgram.y"
  1666. { ldemul_hll(yyvsp[0].name); ;
  1667.     break;}
  1668. case 148:
  1669. #line 544 "./ldgram.y"
  1670. { ldemul_syslib(yyvsp[0].name); ;
  1671.     break;}
  1672. case 150:
  1673. #line 550 "./ldgram.y"
  1674. { lang_float(true); ;
  1675.     break;}
  1676. case 151:
  1677. #line 552 "./ldgram.y"
  1678. { lang_float(false); ;
  1679.     break;}
  1680. case 152:
  1681. #line 556 "./ldgram.y"
  1682. { ldlex_expression(); ;
  1683.     break;}
  1684. case 153:
  1685. #line 558 "./ldgram.y"
  1686. { ldlex_popstate(); yyval.etree=yyvsp[0].etree;;
  1687.     break;}
  1688. case 154:
  1689. #line 563 "./ldgram.y"
  1690. { yyval.etree = exp_unop('-', yyvsp[0].etree); ;
  1691.     break;}
  1692. case 155:
  1693. #line 565 "./ldgram.y"
  1694. { yyval.etree = yyvsp[-1].etree; ;
  1695.     break;}
  1696. case 156:
  1697. #line 567 "./ldgram.y"
  1698. { yyval.etree = exp_unop((int) yyvsp[-3].integer,yyvsp[-1].etree); ;
  1699.     break;}
  1700. case 157:
  1701. #line 569 "./ldgram.y"
  1702. { yyval.etree = exp_unop('!', yyvsp[0].etree); ;
  1703.     break;}
  1704. case 158:
  1705. #line 571 "./ldgram.y"
  1706. { yyval.etree = yyvsp[0].etree; ;
  1707.     break;}
  1708. case 159:
  1709. #line 573 "./ldgram.y"
  1710. { yyval.etree = exp_unop('~', yyvsp[0].etree);;
  1711.     break;}
  1712. case 160:
  1713. #line 576 "./ldgram.y"
  1714. { yyval.etree = exp_binop('*', yyvsp[-2].etree, yyvsp[0].etree); ;
  1715.     break;}
  1716. case 161:
  1717. #line 578 "./ldgram.y"
  1718. { yyval.etree = exp_binop('/', yyvsp[-2].etree, yyvsp[0].etree); ;
  1719.     break;}
  1720. case 162:
  1721. #line 580 "./ldgram.y"
  1722. { yyval.etree = exp_binop('%', yyvsp[-2].etree, yyvsp[0].etree); ;
  1723.     break;}
  1724. case 163:
  1725. #line 582 "./ldgram.y"
  1726. { yyval.etree = exp_binop('+', yyvsp[-2].etree, yyvsp[0].etree); ;
  1727.     break;}
  1728. case 164:
  1729. #line 584 "./ldgram.y"
  1730. { yyval.etree = exp_binop('-' , yyvsp[-2].etree, yyvsp[0].etree); ;
  1731.     break;}
  1732. case 165:
  1733. #line 586 "./ldgram.y"
  1734. { yyval.etree = exp_binop(LSHIFT , yyvsp[-2].etree, yyvsp[0].etree); ;
  1735.     break;}
  1736. case 166:
  1737. #line 588 "./ldgram.y"
  1738. { yyval.etree = exp_binop(RSHIFT , yyvsp[-2].etree, yyvsp[0].etree); ;
  1739.     break;}
  1740. case 167:
  1741. #line 590 "./ldgram.y"
  1742. { yyval.etree = exp_binop(EQ , yyvsp[-2].etree, yyvsp[0].etree); ;
  1743.     break;}
  1744. case 168:
  1745. #line 592 "./ldgram.y"
  1746. { yyval.etree = exp_binop(NE , yyvsp[-2].etree, yyvsp[0].etree); ;
  1747.     break;}
  1748. case 169:
  1749. #line 594 "./ldgram.y"
  1750. { yyval.etree = exp_binop(LE , yyvsp[-2].etree, yyvsp[0].etree); ;
  1751.     break;}
  1752. case 170:
  1753. #line 596 "./ldgram.y"
  1754. { yyval.etree = exp_binop(GE , yyvsp[-2].etree, yyvsp[0].etree); ;
  1755.     break;}
  1756. case 171:
  1757. #line 598 "./ldgram.y"
  1758. { yyval.etree = exp_binop('<' , yyvsp[-2].etree, yyvsp[0].etree); ;
  1759.     break;}
  1760. case 172:
  1761. #line 600 "./ldgram.y"
  1762. { yyval.etree = exp_binop('>' , yyvsp[-2].etree, yyvsp[0].etree); ;
  1763.     break;}
  1764. case 173:
  1765. #line 602 "./ldgram.y"
  1766. { yyval.etree = exp_binop('&' , yyvsp[-2].etree, yyvsp[0].etree); ;
  1767.     break;}
  1768. case 174:
  1769. #line 604 "./ldgram.y"
  1770. { yyval.etree = exp_binop('^' , yyvsp[-2].etree, yyvsp[0].etree); ;
  1771.     break;}
  1772. case 175:
  1773. #line 606 "./ldgram.y"
  1774. { yyval.etree = exp_binop('|' , yyvsp[-2].etree, yyvsp[0].etree); ;
  1775.     break;}
  1776. case 176:
  1777. #line 608 "./ldgram.y"
  1778. { yyval.etree = exp_trinop('?' , yyvsp[-4].etree, yyvsp[-2].etree, yyvsp[0].etree); ;
  1779.     break;}
  1780. case 177:
  1781. #line 610 "./ldgram.y"
  1782. { yyval.etree = exp_binop(ANDAND , yyvsp[-2].etree, yyvsp[0].etree); ;
  1783.     break;}
  1784. case 178:
  1785. #line 612 "./ldgram.y"
  1786. { yyval.etree = exp_binop(OROR , yyvsp[-2].etree, yyvsp[0].etree); ;
  1787.     break;}
  1788. case 179:
  1789. #line 614 "./ldgram.y"
  1790. { yyval.etree = exp_nameop(DEFINED, yyvsp[-1].name); ;
  1791.     break;}
  1792. case 180:
  1793. #line 616 "./ldgram.y"
  1794. { yyval.etree = exp_intop(yyvsp[0].integer); ;
  1795.     break;}
  1796. case 181:
  1797. #line 618 "./ldgram.y"
  1798. { yyval.etree = exp_nameop(SIZEOF_HEADERS,0); ;
  1799.     break;}
  1800. case 182:
  1801. #line 621 "./ldgram.y"
  1802. { yyval.etree = exp_nameop(SIZEOF,yyvsp[-1].name); ;
  1803.     break;}
  1804. case 183:
  1805. #line 623 "./ldgram.y"
  1806. { yyval.etree = exp_nameop(ADDR,yyvsp[-1].name); ;
  1807.     break;}
  1808. case 184:
  1809. #line 625 "./ldgram.y"
  1810. { yyval.etree = exp_unop(ABSOLUTE, yyvsp[-1].etree); ;
  1811.     break;}
  1812. case 185:
  1813. #line 627 "./ldgram.y"
  1814. { yyval.etree = exp_unop(ALIGN_K,yyvsp[-1].etree); ;
  1815.     break;}
  1816. case 186:
  1817. #line 629 "./ldgram.y"
  1818. { yyval.etree = exp_unop(ALIGN_K,yyvsp[-1].etree); ;
  1819.     break;}
  1820. case 187:
  1821. #line 631 "./ldgram.y"
  1822. { yyval.etree = exp_nameop(NAME,yyvsp[0].name); ;
  1823.     break;}
  1824. case 188:
  1825. #line 636 "./ldgram.y"
  1826. { yyval.etree = yyvsp[-1].etree; ;
  1827.     break;}
  1828. case 189:
  1829. #line 637 "./ldgram.y"
  1830. { yyval.etree = 0; ;
  1831.     break;}
  1832. case 190:
  1833. #line 640 "./ldgram.y"
  1834. { ldlex_expression(); ;
  1835.     break;}
  1836. case 191:
  1837. #line 642 "./ldgram.y"
  1838. { ldlex_popstate(); ;
  1839.     break;}
  1840. case 192:
  1841. #line 644 "./ldgram.y"
  1842. {
  1843.               lang_enter_output_section_statement(yyvsp[-5].name, yyvsp[-3].etree,
  1844.                                   sectype,
  1845.                                   0, 0, 0, yyvsp[-2].etree);
  1846.             ;
  1847.     break;}
  1848. case 193:
  1849. #line 650 "./ldgram.y"
  1850. {ldlex_expression();;
  1851.     break;}
  1852. case 194:
  1853. #line 651 "./ldgram.y"
  1854. {
  1855.           ldlex_popstate();
  1856.           lang_leave_output_section_statement(yyvsp[0].integer, yyvsp[-2].name);
  1857.         ;
  1858.     break;}
  1859. case 196:
  1860. #line 660 "./ldgram.y"
  1861. { ldlex_expression (); ;
  1862.     break;}
  1863. case 197:
  1864. #line 662 "./ldgram.y"
  1865. {
  1866.           ldlex_popstate ();
  1867.           lang_add_assignment (exp_assop ('=', ".", yyvsp[0].etree));
  1868.         ;
  1869.     break;}
  1870. case 199:
  1871. #line 670 "./ldgram.y"
  1872. { sectype = noload_section; ;
  1873.     break;}
  1874. case 200:
  1875. #line 671 "./ldgram.y"
  1876. { sectype = dsect_section; ;
  1877.     break;}
  1878. case 201:
  1879. #line 672 "./ldgram.y"
  1880. { sectype = copy_section; ;
  1881.     break;}
  1882. case 202:
  1883. #line 673 "./ldgram.y"
  1884. { sectype = info_section; ;
  1885.     break;}
  1886. case 203:
  1887. #line 674 "./ldgram.y"
  1888. { sectype = overlay_section; ;
  1889.     break;}
  1890. case 205:
  1891. #line 679 "./ldgram.y"
  1892. { sectype = normal_section; ;
  1893.     break;}
  1894. case 206:
  1895. #line 683 "./ldgram.y"
  1896. { yyval.etree = yyvsp[-2].etree; ;
  1897.     break;}
  1898. case 207:
  1899. #line 684 "./ldgram.y"
  1900. { yyval.etree = (etree_type *)NULL;  ;
  1901.     break;}
  1902. case 208:
  1903. #line 689 "./ldgram.y"
  1904. { yyval.etree = yyvsp[-3].etree; ;
  1905.     break;}
  1906. case 209:
  1907. #line 691 "./ldgram.y"
  1908. { yyval.etree = yyvsp[-7].etree; ;
  1909.     break;}
  1910. case 210:
  1911. #line 696 "./ldgram.y"
  1912. { yyval.name = yyvsp[0].name; ;
  1913.     break;}
  1914. case 211:
  1915. #line 697 "./ldgram.y"
  1916. { yyval.name = "*default*"; ;
  1917.     break;}
  1918. case 213:
  1919. #line 703 "./ldgram.y"
  1920. {
  1921.           lang_section_in_phdr (yyvsp[0].name);
  1922.         ;
  1923.     break;}
  1924. case 217:
  1925. #line 718 "./ldgram.y"
  1926. { ldlex_expression (); ;
  1927.     break;}
  1928. case 218:
  1929. #line 719 "./ldgram.y"
  1930. { ldlex_popstate (); ;
  1931.     break;}
  1932. case 219:
  1933. #line 721 "./ldgram.y"
  1934. {
  1935.           lang_new_phdr (yyvsp[-5].name, yyvsp[-3].etree, yyvsp[-2].phdr.filehdr, yyvsp[-2].phdr.phdrs, yyvsp[-2].phdr.at,
  1936.                  yyvsp[-2].phdr.flags);
  1937.         ;
  1938.     break;}
  1939. case 220:
  1940. #line 729 "./ldgram.y"
  1941. {
  1942.           yyval.etree = yyvsp[0].etree;
  1943.  
  1944.           if (yyvsp[0].etree->type.node_class == etree_name
  1945.               && yyvsp[0].etree->type.node_code == NAME)
  1946.             {
  1947.               const char *s;
  1948.               unsigned int i;
  1949.               static const char * const phdr_types[] =
  1950.             {
  1951.               "PT_NULL", "PT_LOAD", "PT_DYNAMIC",
  1952.               "PT_INTERP", "PT_NOTE", "PT_SHLIB",
  1953.               "PT_PHDR"
  1954.             };
  1955.  
  1956.               s = yyvsp[0].etree->name.name;
  1957.               for (i = 0;
  1958.                i < sizeof phdr_types / sizeof phdr_types[0];
  1959.                i++)
  1960.             if (strcmp (s, phdr_types[i]) == 0)
  1961.               {
  1962.                 yyval.etree = exp_intop (i);
  1963.                 break;
  1964.               }
  1965.             }
  1966.         ;
  1967.     break;}
  1968. case 221:
  1969. #line 759 "./ldgram.y"
  1970. {
  1971.           memset (&yyval.phdr, 0, sizeof (struct phdr_info));
  1972.         ;
  1973.     break;}
  1974. case 222:
  1975. #line 763 "./ldgram.y"
  1976. {
  1977.           yyval.phdr = yyvsp[0].phdr;
  1978.           if (strcmp (yyvsp[-2].name, "FILEHDR") == 0 && yyvsp[-1].etree == NULL)
  1979.             yyval.phdr.filehdr = true;
  1980.           else if (strcmp (yyvsp[-2].name, "PHDRS") == 0 && yyvsp[-1].etree == NULL)
  1981.             yyval.phdr.phdrs = true;
  1982.           else if (strcmp (yyvsp[-2].name, "FLAGS") == 0 && yyvsp[-1].etree != NULL)
  1983.             yyval.phdr.flags = yyvsp[-1].etree;
  1984.           else
  1985.             einfo ("%X%P:%S: PHDRS syntax error at `%s'\n", yyvsp[-2].name);
  1986.         ;
  1987.     break;}
  1988. case 223:
  1989. #line 775 "./ldgram.y"
  1990. {
  1991.           yyval.phdr = yyvsp[0].phdr;
  1992.           yyval.phdr.at = yyvsp[-2].etree;
  1993.         ;
  1994.     break;}
  1995. case 224:
  1996. #line 783 "./ldgram.y"
  1997. {
  1998.           yyval.etree = NULL;
  1999.         ;
  2000.     break;}
  2001. case 225:
  2002. #line 787 "./ldgram.y"
  2003. {
  2004.           yyval.etree = yyvsp[-1].etree;
  2005.         ;
  2006.     break;}
  2007. }
  2008.    /* the action file gets copied in in place of this dollarsign */
  2009. #line 487 "/usr/unsupported/share/bison.simple"
  2010.  
  2011.   yyvsp -= yylen;
  2012.   yyssp -= yylen;
  2013. #ifdef YYLSP_NEEDED
  2014.   yylsp -= yylen;
  2015. #endif
  2016.  
  2017. #if YYDEBUG != 0
  2018.   if (yydebug)
  2019.     {
  2020.       short *ssp1 = yyss - 1;
  2021.       fprintf (stderr, "state stack now");
  2022.       while (ssp1 != yyssp)
  2023.     fprintf (stderr, " %d", *++ssp1);
  2024.       fprintf (stderr, "\n");
  2025.     }
  2026. #endif
  2027.  
  2028.   *++yyvsp = yyval;
  2029.  
  2030. #ifdef YYLSP_NEEDED
  2031.   yylsp++;
  2032.   if (yylen == 0)
  2033.     {
  2034.       yylsp->first_line = yylloc.first_line;
  2035.       yylsp->first_column = yylloc.first_column;
  2036.       yylsp->last_line = (yylsp-1)->last_line;
  2037.       yylsp->last_column = (yylsp-1)->last_column;
  2038.       yylsp->text = 0;
  2039.     }
  2040.   else
  2041.     {
  2042.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  2043.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  2044.     }
  2045. #endif
  2046.  
  2047.   /* Now "shift" the result of the reduction.
  2048.      Determine what state that goes to,
  2049.      based on the state we popped back to
  2050.      and the rule number reduced by.  */
  2051.  
  2052.   yyn = yyr1[yyn];
  2053.  
  2054.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  2055.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  2056.     yystate = yytable[yystate];
  2057.   else
  2058.     yystate = yydefgoto[yyn - YYNTBASE];
  2059.  
  2060.   goto yynewstate;
  2061.  
  2062. yyerrlab:   /* here on detecting error */
  2063.  
  2064.   if (! yyerrstatus)
  2065.     /* If not already recovering from an error, report this error.  */
  2066.     {
  2067.       ++yynerrs;
  2068.  
  2069. #ifdef YYERROR_VERBOSE
  2070.       yyn = yypact[yystate];
  2071.  
  2072.       if (yyn > YYFLAG && yyn < YYLAST)
  2073.     {
  2074.       int size = 0;
  2075.       char *msg;
  2076.       int x, count;
  2077.  
  2078.       count = 0;
  2079.       /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  2080.       for (x = (yyn < 0 ? -yyn : 0);
  2081.            x < (sizeof(yytname) / sizeof(char *)); x++)
  2082.         if (yycheck[x + yyn] == x)
  2083.           size += strlen(yytname[x]) + 15, count++;
  2084.       msg = (char *) malloc(size + 15);
  2085.       if (msg != 0)
  2086.         {
  2087.           strcpy(msg, "parse error");
  2088.  
  2089.           if (count < 5)
  2090.         {
  2091.           count = 0;
  2092.           for (x = (yyn < 0 ? -yyn : 0);
  2093.                x < (sizeof(yytname) / sizeof(char *)); x++)
  2094.             if (yycheck[x + yyn] == x)
  2095.               {
  2096.             strcat(msg, count == 0 ? ", expecting `" : " or `");
  2097.             strcat(msg, yytname[x]);
  2098.             strcat(msg, "'");
  2099.             count++;
  2100.               }
  2101.         }
  2102.           yyerror(msg);
  2103.           free(msg);
  2104.         }
  2105.       else
  2106.         yyerror ("parse error; also virtual memory exceeded");
  2107.     }
  2108.       else
  2109. #endif /* YYERROR_VERBOSE */
  2110.     yyerror("parse error");
  2111.     }
  2112.  
  2113.   goto yyerrlab1;
  2114. yyerrlab1:   /* here on error raised explicitly by an action */
  2115.  
  2116.   if (yyerrstatus == 3)
  2117.     {
  2118.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  2119.  
  2120.       /* return failure if at end of input */
  2121.       if (yychar == YYEOF)
  2122.     YYABORT;
  2123.  
  2124. #if YYDEBUG != 0
  2125.       if (yydebug)
  2126.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  2127. #endif
  2128.  
  2129.       yychar = YYEMPTY;
  2130.     }
  2131.  
  2132.   /* Else will try to reuse lookahead token
  2133.      after shifting the error token.  */
  2134.  
  2135.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  2136.  
  2137.   goto yyerrhandle;
  2138.  
  2139. yyerrdefault:  /* current state does not do anything special for the error token. */
  2140.  
  2141. #if 0
  2142.   /* This is wrong; only states that explicitly want error tokens
  2143.      should shift them.  */
  2144.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  2145.   if (yyn) goto yydefault;
  2146. #endif
  2147.  
  2148. yyerrpop:   /* pop the current state because it cannot handle the error token */
  2149.  
  2150.   if (yyssp == yyss) YYABORT;
  2151.   yyvsp--;
  2152.   yystate = *--yyssp;
  2153. #ifdef YYLSP_NEEDED
  2154.   yylsp--;
  2155. #endif
  2156.  
  2157. #if YYDEBUG != 0
  2158.   if (yydebug)
  2159.     {
  2160.       short *ssp1 = yyss - 1;
  2161.       fprintf (stderr, "Error: state stack now");
  2162.       while (ssp1 != yyssp)
  2163.     fprintf (stderr, " %d", *++ssp1);
  2164.       fprintf (stderr, "\n");
  2165.     }
  2166. #endif
  2167.  
  2168. yyerrhandle:
  2169.  
  2170.   yyn = yypact[yystate];
  2171.   if (yyn == YYFLAG)
  2172.     goto yyerrdefault;
  2173.  
  2174.   yyn += YYTERROR;
  2175.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  2176.     goto yyerrdefault;
  2177.  
  2178.   yyn = yytable[yyn];
  2179.   if (yyn < 0)
  2180.     {
  2181.       if (yyn == YYFLAG)
  2182.     goto yyerrpop;
  2183.       yyn = -yyn;
  2184.       goto yyreduce;
  2185.     }
  2186.   else if (yyn == 0)
  2187.     goto yyerrpop;
  2188.  
  2189.   if (yyn == YYFINAL)
  2190.     YYACCEPT;
  2191.  
  2192. #if YYDEBUG != 0
  2193.   if (yydebug)
  2194.     fprintf(stderr, "Shifting error token, ");
  2195. #endif
  2196.  
  2197.   *++yyvsp = yylval;
  2198. #ifdef YYLSP_NEEDED
  2199.   *++yylsp = yylloc;
  2200. #endif
  2201.  
  2202.   yystate = yyn;
  2203.   goto yynewstate;
  2204. }
  2205. #line 792 "./ldgram.y"
  2206.  
  2207. void
  2208. yyerror(arg) 
  2209.      const char *arg;
  2210.   if (ldfile_assumed_script)
  2211.     einfo ("%P:%s: file format not recognized; treating as linker script\n",
  2212.        ldfile_input_filename);
  2213.   if (error_index > 0 && error_index < ERROR_NAME_MAX)
  2214.      einfo ("%P%F:%S: %s in %s\n", arg, error_names[error_index-1]);
  2215.   else
  2216.      einfo ("%P%F:%S: %s\n", arg);
  2217. }
  2218.