home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / gnu / djgpp / src / binutils.2 / ld / ldgram.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-30  |  73.0 KB  |  2,323 lines

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