Ignore:
Timestamp:
Apr 19, 2000, 4:46:07 PM (25 years ago)
Author:
sandervl
Message:

update with latest wine code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/wrc/y.tab.c

    r1355 r3426  
    107107 * Copyright  Martin von Loewis, 1994
    108108 * Copyright 1998 Bertho A. Stultiens (BS)
     109 *           1999 Juergen Schmied (JS)
    109110 *
     111 * 6-Nov-1999 JS        - see CHANGES
     112 *
    110113 * 29-Dec-1998 AdH      - Grammar and function extensions.
    111114 *                           grammar: TOOLBAR resources, Named ICONs in
     
    208211#include "preproc.h"
    209212#include "parser.h"
     213#include "windef.h"
     214#include "wingdi.h"
    210215#include "winuser.h"
    211216
     
    214219#endif
    215220
    216 DWORD andmask;          /* Used to parse 'NOT NUMBER' expressions */
    217221int indialog = 0;       /* Signal flex that we're parsing a dialog */
    218222int want_rscname = 0;   /* Set when a resource's name is required */
     
    262266dialogex_t *dialogex_font(font_id_t *f, dialogex_t *dlg);
    263267dialogex_t *dialogex_caption(string_t *s, dialogex_t *dlg);
    264 dialogex_t *dialogex_exstyle(int st, dialogex_t *dlg);
    265 dialogex_t *dialogex_style(int st, dialogex_t *dlg);
     268dialogex_t *dialogex_exstyle(style_t *st, dialogex_t *dlg);
     269dialogex_t *dialogex_style(style_t *st, dialogex_t *dlg);
    266270name_id_t *convert_ctlclass(name_id_t *cls);
    267 control_t *ins_ctrl(int type, int style, control_t *ctrl, control_t *prev);
     271control_t *ins_ctrl(int type, int special_style, control_t *ctrl, control_t *prev);
    268272dialog_t *dialog_version(version_t *v, dialog_t *dlg);
    269273dialog_t *dialog_characteristics(characts_t *c, dialog_t *dlg);
     
    273277dialog_t *dialog_font(font_id_t *f, dialog_t *dlg);
    274278dialog_t *dialog_caption(string_t *s, dialog_t *dlg);
    275 dialog_t *dialog_exstyle(int st, dialog_t *dlg);
    276 dialog_t *dialog_style(int st, dialog_t *dlg);
     279dialog_t *dialog_exstyle(style_t * st, dialog_t *dlg);
     280dialog_t *dialog_style(style_t * st, dialog_t *dlg);
    277281resource_t *build_stt_resources(stringtable_t *stthead);
    278282stringtable_t *find_stringtable(lvc_t *lvc);
     
    281285
    282286
    283 #line 179 "parser.y"
     287#line 183 "parser.y"
    284288typedef union{
    285289        string_t        *str;
     
    323327        dlginit_t       *dginit;
    324328        style_pair_t    *styles;
     329        style_t         *style;
    325330} YYSTYPE;
    326331#ifndef YYDEBUG
     
    338343
    339344
    340 #define YYFINAL         597
     345#define YYFINAL         604
    341346#define YYFLAG          -32768
    342347#define YYNTBASE        112
     
    397402   328,   332,   336,   340,   344,   348,   352,   356,   360,   364,
    398403   368,   372,   376,   380,   391,   404,   415,   416,   421,   428,
    399    437,   455,   471,   476,   477,   480,   481,   484,   489,   491,
    400    493,   508,   509,   513,   517,   521,   524,   527,   531,   535,
    401    538,   541,   544,   545,   549,   553,   557,   561,   565,   569,
    402    573,   577,   581,   585,   589,   593,   597,   601,   605,   609,
    403    613,   624,   644,   661,   675,   687,   688,   690,   691,   694,
    404    704,   705,   708,   713,   717,   718,   725,   729,   735,   736,
    405    740,   744,   748,   752,   756,   760,   765,   769,   770,   775,
    406    779,   785,   786,   789,   795,   802,   803,   806,   811,   818,
    407    827,   832,   836,   837,   842,   843,   845,   851,   852,   862,
    408    872,   876,   880,   884,   888,   892,   893,   896,   902,   903,
    409    906,   908,   913,   918,   920,   924,   934,   935,   939,   942,
    410    943,   946,   949,   951,   953,   955,   957,   959,   961,   963,
    411    964,   967,   970,   973,   978,   981,   984,   988,   990,   992,
    412    994,   996,  1000,  1004,  1008,  1012,  1013,  1015,  1018,  1019,
    413   1023,  1027,  1031,  1035,  1039,  1043,  1046,  1049,  1053,  1055,
    414   1058,  1060
     404   437,   455,   471,   476,   477,   480,   481,   484,   489,   493,
     405   497,   499,   502,   504,   506,   521,   522,   526,   530,   534,
     406   537,   540,   544,   548,   551,   554,   557,   558,   562,   566,
     407   570,   574,   578,   582,   586,   590,   594,   598,   602,   606,
     408   610,   614,   618,   622,   626,   637,   657,   674,   688,   700,
     409   701,   703,   704,   707,   717,   718,   721,   726,   730,   731,
     410   738,   742,   748,   749,   753,   757,   761,   765,   769,   773,
     411   778,   782,   783,   788,   792,   798,   799,   802,   808,   815,
     412   816,   819,   824,   831,   840,   845,   849,   850,   855,   856,
     413   858,   864,   865,   875,   885,   889,   893,   897,   901,   905,
     414   906,   909,   915,   916,   919,   921,   926,   931,   933,   937,
     415   947,   948,   952,   955,   956,   959,   962,   964,   966,   968,
     416   970,   972,   974,   976,   977,   980,   983,   986,   991,   994,
     417   997,  1001,  1003,  1005,  1007,  1009,  1013,  1017,  1021,  1025,
     418  1026,  1028,  1030,  1034,  1038,  1042,  1046,  1050,  1054,  1057,
     419  1060,  1064,  1066,  1069,  1071
    415420};
    416421
     
    428433    16,     0,     9,   109,    16,   110,     0,    11,     0,    12,
    429434     0,    16,    16,     0,    16,   109,     0,    16,   104,     0,
    430    119,   121,     0,   164,     0,   181,     0,   187,     0,    16,
     435   119,   121,     0,   165,     0,   182,     0,   188,     0,    16,
    431436     0,   119,     0,    15,     0,   131,     0,   122,     0,   123,
    432      0,   134,     0,   145,     0,   128,     0,   124,     0,   125,
    433      0,   155,     0,   159,     0,   126,     0,   127,     0,   175,
    434      0,   129,     0,   168,     0,    20,   177,    17,     0,    20,
    435    177,   184,     0,    21,   177,    17,     0,    21,   177,   184,
    436      0,    30,   177,    17,     0,    31,   177,    17,     0,    31,
    437    177,   184,     0,    26,    17,     0,    27,   177,   180,   184,
    438      0,    90,   177,   180,   184,     0,   130,   177,    17,     0,
    439    130,   177,   184,     0,    13,     0,    15,     0,    19,   177,
    440    180,    88,   132,    89,     0,     0,   132,    15,   111,   187,
    441    133,     0,   132,   187,   111,   187,   133,     0,     0,   133,
     437     0,   134,     0,   146,     0,   128,     0,   124,     0,   125,
     438     0,   156,     0,   160,     0,   126,     0,   127,     0,   176,
     439     0,   129,     0,   169,     0,    20,   178,    17,     0,    20,
     440   178,   185,     0,    21,   178,    17,     0,    21,   178,   185,
     441     0,    30,   178,    17,     0,    31,   178,    17,     0,    31,
     442   178,   185,     0,    26,    17,     0,    27,   178,   181,   185,
     443     0,    90,   178,   181,   185,     0,   130,   178,    17,     0,
     444   130,   178,   185,     0,    13,     0,    15,     0,    19,   178,
     445   181,    88,   132,    89,     0,     0,   132,    15,   111,   188,
     446   133,     0,   132,   188,   111,   188,   133,     0,     0,   133,
    442447   111,    58,     0,   133,   111,    51,     0,   133,   111,    44,
    443448     0,   133,   111,    52,     0,   133,   111,    53,     0,   133,
    444    111,    54,     0,    22,   177,   187,   111,   187,   111,   187,
    445    111,   187,   135,    88,   136,    89,     0,     0,   135,    70,
    446    187,     0,   135,    69,   187,     0,   135,    67,    15,     0,
     449   111,    54,     0,    22,   178,   188,   111,   188,   111,   188,
     450   111,   188,   135,    88,   136,    89,     0,     0,   135,    70,
     451   144,     0,   135,    69,   144,     0,   135,    67,    15,     0,
    447452   135,   141,     0,   135,    66,   120,     0,   135,    24,   119,
    448      0,   135,   181,     0,   135,   182,     0,   135,   183,     0,
     453     0,   135,   182,     0,   135,   183,     0,   135,   184,     0,
    449454     0,   136,    44,   140,     0,   136,    45,   138,     0,   136,
    450455    42,   138,     0,   136,    41,   138,     0,   136,    43,   138,
     
    454459    33,   137,     0,   136,    34,   137,     0,   136,    48,   137,
    455460     0,   136,    47,   137,     0,   136,    46,   137,     0,   136,
    456     31,   120,   111,   187,   111,   187,   111,   187,   139,     0,
    457     15,   111,   187,   111,   187,   111,   187,   111,   187,   111,
    458    187,   142,     0,   187,   111,   187,   111,   187,   111,   187,
    459    111,   187,   142,     0,     0,   111,   187,   111,   187,     0,
    460    111,   187,   111,   187,   111,   187,     0,   111,   187,   111,
    461    187,   111,   187,   111,   187,     0,   120,   111,   187,   111,
    462    144,   111,   187,   111,   187,   111,   187,   111,   187,   111,
    463    187,   111,   187,     0,   120,   111,   187,   111,   144,   111,
    464    187,   111,   187,   111,   187,   111,   187,   111,   187,     0,
    465     30,   187,   111,    15,     0,     0,   111,   187,     0,     0,
    466    111,   187,     0,   111,   187,   111,   187,     0,   187,     0,
    467     15,     0,    23,   177,   187,   111,   187,   111,   187,   111,
    468    187,   152,   146,    88,   147,    89,     0,     0,   146,    70,
    469    187,     0,   146,    69,   187,     0,   146,    67,    15,     0,
    470    146,   141,     0,   146,   153,     0,   146,    66,   120,     0,
    471    146,    24,   119,     0,   146,   181,     0,   146,   182,     0,
    472    146,   183,     0,     0,   147,    44,   148,     0,   147,    45,
    473    150,     0,   147,    42,   150,     0,   147,    41,   150,     0,
    474    147,    43,   150,     0,   147,    35,   149,     0,   147,    36,
    475    149,     0,   147,    40,   149,     0,   147,    37,   149,     0,
    476    147,    38,   149,     0,   147,    32,   149,     0,   147,    39,
    477    149,     0,   147,    33,   149,     0,   147,    34,   149,     0,
    478    147,    48,   149,     0,   147,    47,   149,     0,   147,    46,
    479    149,     0,   147,    31,   120,   111,   187,   111,   187,   111,
    480    187,   139,     0,   120,   111,   187,   111,   144,   111,   187,
    481    111,   187,   111,   187,   111,   187,   111,   187,   111,   186,
    482    152,   151,     0,   120,   111,   187,   111,   144,   111,   187,
    483    111,   187,   111,   187,   111,   187,   111,   187,   151,     0,
    484     15,   111,   187,   111,   187,   111,   187,   111,   187,   111,
    485    187,   143,   151,     0,   187,   111,   187,   111,   187,   111,
    486    187,   111,   187,   143,   151,     0,     0,   184,     0,     0,
    487    111,   187,     0,    30,   187,   111,    15,   111,   187,   111,
    488    187,   154,     0,     0,   111,   187,     0,    24,   177,   180,
    489    156,     0,    88,   157,    89,     0,     0,   157,    82,    15,
    490    111,   187,   158,     0,   157,    82,    84,     0,   157,    83,
    491     15,   158,   156,     0,     0,   111,    56,   158,     0,   111,
    492     55,   158,     0,   111,    85,   158,     0,   111,    57,   158,
    493      0,   111,    80,   158,     0,   111,    81,   158,     0,    25,
    494    177,   180,   160,     0,    88,   161,    89,     0,     0,   161,
    495     82,    15,   162,     0,   161,    82,    84,     0,   161,    83,
    496     15,   163,   160,     0,     0,   111,   187,     0,   111,   186,
    497    111,   186,   158,     0,   111,   186,   111,   186,   111,   187,
    498      0,     0,   111,   187,     0,   111,   186,   111,   187,     0,
    499    111,   186,   111,   186,   111,   187,     0,   111,   186,   111,
    500    186,   111,   186,   111,   187,     0,   165,    88,   166,    89,
    501      0,    29,   177,   180,     0,     0,   166,   187,   167,    15,
    502      0,     0,   111,     0,    28,   169,    88,   170,    89,     0,
    503      0,   169,    73,   187,   111,   187,   111,   187,   111,   187,
    504      0,   169,    74,   187,   111,   187,   111,   187,   111,   187,
    505      0,   169,    78,   187,     0,   169,    75,   187,     0,   169,
    506     76,   187,     0,   169,    77,   187,     0,   169,    79,   187,
    507      0,     0,   170,   171,     0,    49,    15,    88,   172,    89,
    508      0,     0,   172,   173,     0,   171,     0,    50,    15,   111,
    509     15,     0,    50,    15,   111,   174,     0,   187,     0,   174,
    510    111,   187,     0,    86,   177,   187,   111,   187,   180,    88,
    511    176,    89,     0,     0,   176,    87,   187,     0,   176,    84,
    512      0,     0,   177,   178,     0,   177,   179,     0,    63,     0,
    513     65,     0,    61,     0,    59,     0,    62,     0,    64,     0,
    514     60,     0,     0,   180,   181,     0,   180,   182,     0,   180,
    515    183,     0,    72,   187,   111,   187,     0,    68,   187,     0,
    516     71,   187,     0,    88,   185,    89,     0,    18,     0,    13,
    517      0,    14,     0,    15,     0,   185,   167,    18,     0,   185,
    518    167,    13,     0,   185,   167,    14,     0,   185,   167,    15,
    519      0,     0,   187,     0,   188,   189,     0,     0,   189,   102,
    520    189,     0,   189,   103,   189,     0,   189,    93,   189,     0,
    521    189,    95,   189,     0,   189,   104,   189,     0,   189,   105,
    522    189,     0,   106,   189,     0,   103,   189,     0,   109,   189,
    523    110,     0,   190,     0,   108,   190,     0,    13,     0,    14,
    524      0
     461    31,   120,   168,   188,   111,   188,   111,   188,   139,     0,
     462    15,   168,   188,   111,   188,   111,   188,   111,   188,   111,
     463   188,   142,     0,   188,   111,   188,   111,   188,   111,   188,
     464   111,   188,   142,     0,     0,   111,   188,   111,   188,     0,
     465   111,   188,   111,   188,   111,   144,     0,   111,   188,   111,
     466   188,   111,   144,   111,   144,     0,   120,   168,   188,   111,
     467   145,   111,   144,   111,   188,   111,   188,   111,   188,   111,
     468   188,   111,   144,     0,   120,   168,   188,   111,   145,   111,
     469   144,   111,   188,   111,   188,   111,   188,   111,   188,     0,
     470    30,   188,   111,    15,     0,     0,   111,   144,     0,     0,
     471   111,   144,     0,   111,   144,   111,   144,     0,   144,    93,
     472   144,     0,   109,   144,   110,     0,   190,     0,   108,   190,
     473     0,   188,     0,    15,     0,    23,   178,   188,   111,   188,
     474   111,   188,   111,   188,   153,   147,    88,   148,    89,     0,
     475     0,   147,    70,   144,     0,   147,    69,   144,     0,   147,
     476    67,    15,     0,   147,   141,     0,   147,   154,     0,   147,
     477    66,   120,     0,   147,    24,   119,     0,   147,   182,     0,
     478   147,   183,     0,   147,   184,     0,     0,   148,    44,   149,
     479     0,   148,    45,   151,     0,   148,    42,   151,     0,   148,
     480    41,   151,     0,   148,    43,   151,     0,   148,    35,   150,
     481     0,   148,    36,   150,     0,   148,    40,   150,     0,   148,
     482    37,   150,     0,   148,    38,   150,     0,   148,    32,   150,
     483     0,   148,    39,   150,     0,   148,    33,   150,     0,   148,
     484    34,   150,     0,   148,    48,   150,     0,   148,    47,   150,
     485     0,   148,    46,   150,     0,   148,    31,   120,   168,   188,
     486   111,   188,   111,   188,   139,     0,   120,   168,   188,   111,
     487   145,   111,   144,   111,   188,   111,   188,   111,   188,   111,
     488   188,   111,   144,   153,   152,     0,   120,   168,   188,   111,
     489   145,   111,   144,   111,   188,   111,   188,   111,   188,   111,
     490   188,   152,     0,    15,   168,   188,   111,   188,   111,   188,
     491   111,   188,   111,   188,   143,   152,     0,   188,   111,   188,
     492   111,   188,   111,   188,   111,   188,   143,   152,     0,     0,
     493   185,     0,     0,   111,   188,     0,    30,   188,   111,    15,
     494   111,   188,   111,   188,   155,     0,     0,   111,   188,     0,
     495    24,   178,   181,   157,     0,    88,   158,    89,     0,     0,
     496   158,    82,    15,   168,   188,   159,     0,   158,    82,    84,
     497     0,   158,    83,    15,   159,   157,     0,     0,   111,    56,
     498   159,     0,   111,    55,   159,     0,   111,    85,   159,     0,
     499   111,    57,   159,     0,   111,    80,   159,     0,   111,    81,
     500   159,     0,    25,   178,   181,   161,     0,    88,   162,    89,
     501     0,     0,   162,    82,    15,   163,     0,   162,    82,    84,
     502     0,   162,    83,    15,   164,   161,     0,     0,   111,   188,
     503     0,   111,   187,   111,   187,   159,     0,   111,   187,   111,
     504   187,   111,   188,     0,     0,   111,   188,     0,   111,   187,
     505   111,   188,     0,   111,   187,   111,   187,   111,   188,     0,
     506   111,   187,   111,   187,   111,   187,   111,   188,     0,   166,
     507    88,   167,    89,     0,    29,   178,   181,     0,     0,   167,
     508   188,   168,    15,     0,     0,   111,     0,    28,   170,    88,
     509   171,    89,     0,     0,   170,    73,   188,   111,   188,   111,
     510   188,   111,   188,     0,   170,    74,   188,   111,   188,   111,
     511   188,   111,   188,     0,   170,    78,   188,     0,   170,    75,
     512   188,     0,   170,    76,   188,     0,   170,    77,   188,     0,
     513   170,    79,   188,     0,     0,   171,   172,     0,    49,    15,
     514    88,   173,    89,     0,     0,   173,   174,     0,   172,     0,
     515    50,    15,   111,    15,     0,    50,    15,   111,   175,     0,
     516   188,     0,   175,   111,   188,     0,    86,   178,   188,   111,
     517   188,   181,    88,   177,    89,     0,     0,   177,    87,   188,
     518     0,   177,    84,     0,     0,   178,   179,     0,   178,   180,
     519     0,    63,     0,    65,     0,    61,     0,    59,     0,    62,
     520     0,    64,     0,    60,     0,     0,   181,   182,     0,   181,
     521   183,     0,   181,   184,     0,    72,   188,   111,   188,     0,
     522    68,   188,     0,    71,   188,     0,    88,   186,    89,     0,
     523    18,     0,    13,     0,    14,     0,    15,     0,   186,   168,
     524    18,     0,   186,   168,    13,     0,   186,   168,    14,     0,
     525   186,   168,    15,     0,     0,   188,     0,   189,     0,   189,
     526   102,   189,     0,   189,   103,   189,     0,   189,    93,   189,
     527     0,   189,    95,   189,     0,   189,   104,   189,     0,   189,
     528   105,   189,     0,   106,   189,     0,   103,   189,     0,   109,
     529   189,   110,     0,   190,     0,   108,   190,     0,    13,     0,
     530    14,     0
    525531};
    526532
     
    529535#if YYDEBUG != 0
    530536static const short yyrline[] = { 0,
    531    303,   323,   324,   349,   350,   355,   356,   357,   358,   359,
    532    360,   363,   364,   365,   366,   367,   368,   369,   370,   371,
    533    372,   373,   374,   375,   376,   377,   378,   379,   383,   384,
    534    385,   386,   390,   391,   392,   393,   394,   399,   414,   422,
    535    435,   441,   452,   453,   463,   464,   465,   479,   480,   486,
    536    487,   488,   502,   503,   509,   510,   511,   512,   513,   517,
    537    518,   522,   523,   528,   532,   533,   541,   549,   562,   575,
    538    576,   595,   607,   617,   641,   642,   643,   646,   647,   648,
    539    649,   650,   651,   652,   657,   688,   689,   690,   691,   692,
    540    693,   694,   695,   696,   697,   700,   701,   702,   703,   704,
    541    705,   706,   707,   708,   709,   711,   712,   713,   714,   715,
    542    716,   717,   718,   720,   730,   750,   766,   769,   774,   781,
    543    792,   806,   821,   825,   826,   830,   831,   832,   836,   841,
    544    849,   888,   889,   890,   891,   892,   893,   894,   895,   896,
    545    897,   898,   901,   902,   903,   904,   905,   906,   907,   908,
    546    909,   910,   912,   913,   914,   915,   916,   917,   918,   919,
    547    921,   931,   957,   973,  1001,  1024,  1025,  1028,  1029,  1033,
    548   1040,  1041,  1045,  1068,  1072,  1073,  1082,  1088,  1107,  1108,
    549   1109,  1110,  1111,  1112,  1113,  1117,  1142,  1146,  1147,  1163,
    550   1169,  1189,  1190,  1194,  1202,  1213,  1214,  1218,  1224,  1232,
    551   1252,  1293,  1304,  1305,  1335,  1336,  1341,  1348,  1349,  1359,
    552   1369,  1376,  1383,  1390,  1397,  1407,  1408,  1417,  1425,  1426,
    553   1435,  1440,  1446,  1455,  1456,  1460,  1486,  1487,  1492,  1501,
    554   1502,  1512,  1527,  1528,  1529,  1530,  1533,  1534,  1535,  1539,
    555   1540,  1548,  1556,  1567,  1571,  1575,  1579,  1583,  1584,  1585,
    556   1586,  1587,  1588,  1589,  1590,  1597,  1598,  1600,  1603,  1606,
    557   1607,  1608,  1609,  1610,  1611,  1612,  1613,  1615,  1616,  1617,
    558   1620,  1621
     537   310,   330,   331,   356,   357,   362,   363,   364,   365,   366,
     538   367,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     539   379,   380,   381,   382,   383,   384,   385,   386,   390,   391,
     540   392,   393,   397,   398,   399,   400,   401,   406,   421,   429,
     541   442,   450,   461,   462,   472,   473,   474,   488,   489,   495,
     542   496,   497,   511,   512,   518,   519,   520,   521,   522,   526,
     543   527,   531,   532,   537,   541,   542,   550,   558,   571,   584,
     544   585,   604,   616,   626,   650,   651,   652,   655,   656,   657,
     545   658,   659,   660,   661,   666,   701,   702,   703,   704,   705,
     546   706,   707,   708,   709,   710,   713,   714,   715,   716,   717,
     547   718,   719,   720,   721,   722,   724,   725,   726,   727,   728,
     548   729,   730,   731,   733,   743,   762,   777,   780,   785,   792,
     549   803,   817,   832,   837,   838,   842,   843,   844,   848,   849,
     550   850,   851,   855,   860,   868,   913,   914,   915,   916,   917,
     551   918,   919,   920,   921,   922,   923,   926,   927,   928,   929,
     552   930,   931,   932,   933,   934,   935,   937,   938,   939,   940,
     553   941,   942,   943,   944,   946,   956,   981,   997,  1025,  1048,
     554  1049,  1052,  1053,  1057,  1064,  1065,  1069,  1092,  1096,  1097,
     555  1106,  1112,  1131,  1132,  1133,  1134,  1135,  1136,  1137,  1141,
     556  1166,  1170,  1171,  1187,  1193,  1213,  1214,  1218,  1226,  1237,
     557  1238,  1242,  1248,  1256,  1276,  1317,  1328,  1329,  1361,  1362,
     558  1367,  1374,  1375,  1385,  1395,  1402,  1409,  1416,  1423,  1433,
     559  1434,  1443,  1451,  1452,  1461,  1466,  1472,  1481,  1482,  1486,
     560  1512,  1513,  1518,  1527,  1528,  1538,  1553,  1554,  1555,  1556,
     561  1559,  1560,  1561,  1565,  1566,  1574,  1582,  1593,  1597,  1601,
     562  1605,  1609,  1610,  1611,  1612,  1613,  1614,  1615,  1616,  1623,
     563  1624,  1626,  1629,  1630,  1631,  1632,  1633,  1634,  1635,  1636,
     564  1638,  1639,  1640,  1643,  1644
    559565};
    560566#endif
     
    581587"usertype","accelerators","events","acc_opt","dialog","dlg_attributes","ctrls",
    582588"lab_ctrl","ctrl_desc","iconinfo","gen_ctrl","opt_font","optional_style","optional_style_pair",
    583 "ctlclass","dialogex","dlgex_attribs","exctrls","gen_exctrl","lab_exctrl","exctrl_desc",
    584 "opt_data","helpid","opt_exfont","opt_expr","menu","menu_body","item_definitions",
    585 "item_options","menuex","menuex_body","itemex_definitions","itemex_options",
    586 "itemex_p_options","stringtable","stt_head","strings","opt_comma","versioninfo",
    587 "fix_version","ver_blocks","ver_block","ver_values","ver_value","ver_words",
    588 "toolbar","toolbar_items","loadmemopts","lamo","lama","opt_lvc","opt_language",
    589 "opt_characts","opt_version","raw_data","raw_elements","e_expr","expr","dummy",
    590 "xpr","any_num", NULL
     589"style","ctlclass","dialogex","dlgex_attribs","exctrls","gen_exctrl","lab_exctrl",
     590"exctrl_desc","opt_data","helpid","opt_exfont","opt_expr","menu","menu_body",
     591"item_definitions","item_options","menuex","menuex_body","itemex_definitions",
     592"itemex_options","itemex_p_options","stringtable","stt_head","strings","opt_comma",
     593"versioninfo","fix_version","ver_blocks","ver_block","ver_values","ver_value",
     594"ver_words","toolbar","toolbar_items","loadmemopts","lamo","lama","opt_lvc",
     595"opt_language","opt_characts","opt_version","raw_data","raw_elements","e_expr",
     596"expr","xpr","any_num", NULL
    591597};
    592598#endif
     
    606612   136,   136,   136,   136,   137,   138,   139,   139,   139,   139,
    607613   140,   140,   141,   142,   142,   143,   143,   143,   144,   144,
    608    145,   146,   146,   146,   146,   146,   146,   146,   146,   146,
    609    146,   146,   147,   147,   147,   147,   147,   147,   147,   147,
    610    147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
    611    147,   148,   148,   149,   150,   151,   151,   152,   152,   153,
    612    154,   154,   155,   156,   157,   157,   157,   157,   158,   158,
    613    158,   158,   158,   158,   158,   159,   160,   161,   161,   161,
    614    161,   162,   162,   162,   162,   163,   163,   163,   163,   163,
    615    164,   165,   166,   166,   167,   167,   168,   169,   169,   169,
    616    169,   169,   169,   169,   169,   170,   170,   171,   172,   172,
    617    173,   173,   173,   174,   174,   175,   176,   176,   176,   177,
    618    177,   177,   178,   178,   178,   178,   179,   179,   179,   180,
    619    180,   180,   180,   181,   182,   183,   184,   185,   185,   185,
    620    185,   185,   185,   185,   185,   186,   186,   187,   188,   189,
    621    189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
    622    190,   190
     614   144,   144,   145,   145,   146,   147,   147,   147,   147,   147,
     615   147,   147,   147,   147,   147,   147,   148,   148,   148,   148,
     616   148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
     617   148,   148,   148,   148,   148,   149,   149,   150,   151,   152,
     618   152,   153,   153,   154,   155,   155,   156,   157,   158,   158,
     619   158,   158,   159,   159,   159,   159,   159,   159,   159,   160,
     620   161,   162,   162,   162,   162,   163,   163,   163,   163,   164,
     621   164,   164,   164,   164,   165,   166,   167,   167,   168,   168,
     622   169,   170,   170,   170,   170,   170,   170,   170,   170,   171,
     623   171,   172,   173,   173,   174,   174,   174,   175,   175,   176,
     624   177,   177,   177,   178,   178,   178,   179,   179,   179,   179,
     625   180,   180,   180,   181,   181,   181,   181,   182,   183,   184,
     626   185,   186,   186,   186,   186,   186,   186,   186,   186,   187,
     627   187,   188,   189,   189,   189,   189,   189,   189,   189,   189,
     628   189,   189,   189,   190,   190
    623629};
    624630
     
    636642     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
    637643     3,     3,     3,    10,    12,    10,     0,     4,     6,     8,
    638     17,    15,     4,     0,     2,     0,     2,     4,     1,     1,
    639     14,     0,     3,     3,     3,     2,     2,     3,     3,     2,
    640      2,     2,     0,     3,     3,     3,     3,     3,     3,     3,
     644    17,    15,     4,     0,     2,     0,     2,     4,     3,     3,
     645     1,     2,     1,     1,    14,     0,     3,     3,     3,     2,
     646     2,     3,     3,     2,     2,     2,     0,     3,     3,     3,
    641647     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
    642     10,    19,    16,    13,    11,     0,     1,     0,     2,     9,
    643      0,     2,     4,     3,     0,     6,     3,     5,     0,     3,
    644      3,     3,     3,     3,     3,     4,     3,     0,     4,     3,
    645      5,     0,     2,     5,     6,     0,     2,     4,     6,     8,
    646      4,     3,     0,     4,     0,     1,     5,     0,     9,     9,
    647      3,     3,     3,     3,     3,     0,     2,     5,     0,     2,
    648      1,     4,     4,     1,     3,     9,     0,     3,     2,     0,
    649      2,     2,     1,     1,     1,     1,     1,     1,     1,     0,
    650      2,     2,     2,     4,     2,     2,     3,     1,     1,     1,
    651      1,     3,     3,     3,     3,     0,     1,     2,     0,     3,
    652      3,     3,     3,     3,     3,     2,     2,     3,     1,     2,
    653      1,     1
     648     3,     3,     3,     3,    10,    19,    16,    13,    11,     0,
     649     1,     0,     2,     9,     0,     2,     4,     3,     0,     6,
     650     3,     5,     0,     3,     3,     3,     3,     3,     3,     4,
     651     3,     0,     4,     3,     5,     0,     2,     5,     6,     0,
     652     2,     4,     6,     8,     4,     3,     0,     4,     0,     1,
     653     5,     0,     9,     9,     3,     3,     3,     3,     3,     0,
     654     2,     5,     0,     2,     1,     4,     4,     1,     3,     9,
     655     0,     3,     2,     0,     2,     2,     1,     1,     1,     1,
     656     1,     1,     1,     0,     2,     2,     2,     4,     2,     2,
     657     3,     1,     1,     1,     1,     3,     3,     3,     3,     0,
     658     1,     1,     3,     3,     3,     3,     3,     3,     2,     2,
     659     3,     1,     2,     1,     1
    654660};
    655661
    656662static const short yydefact[] = {     2,
    657    259,     0,     0,     0,     0,     0,     0,    33,    34,    42,
    658    230,   259,     4,     5,     3,     0,    39,     0,    40,    41,
    659      0,     0,   271,   272,    30,     0,     0,     0,     0,     0,
    660      0,    12,    29,     0,     0,    10,     0,    11,    35,    37,
    661     36,   240,     0,    72,    73,   230,   230,   230,   230,   230,
    662    230,   230,     0,   230,   208,   230,   230,   230,   230,    38,
    663     46,    47,    51,    52,    55,    56,    50,    58,   230,    45,
    664     48,    49,    53,    54,    59,    57,   203,     0,     0,     0,
    665      0,   258,   269,    31,     0,    25,    26,    24,    27,     0,
    666      6,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    667      0,     0,     7,     8,     9,   236,   239,   235,   237,   233,
    668    238,   234,   231,   232,   202,   259,   240,     0,     0,   259,
    669    259,   240,   240,    67,   240,     0,     0,     0,   259,   240,
    670      0,   259,   267,   266,   270,     0,     0,     0,     0,     0,
    671      0,     0,     0,    28,    13,    14,    17,    18,    19,    20,
    672     22,    21,    23,    15,    16,   259,   259,   241,   242,   243,
    673    244,     0,    60,     0,    61,    62,    63,     0,     0,     0,
    674      0,     0,   259,   259,   259,   259,   259,   259,   259,   216,
    675     64,    65,    66,     0,     0,    70,    71,   201,   205,   268,
    676    262,   263,   260,   261,   264,   265,    32,   245,   246,    75,
    677    249,   250,   251,   248,   205,   259,   259,   175,   173,   188,
    678    186,    68,     0,     0,   212,   213,   214,   211,   215,     0,
    679    259,    69,   206,     0,   259,   247,     0,     0,     0,     0,
    680      0,   259,   259,     0,   207,   217,   240,   204,     0,    74,
    681      0,   253,   254,   255,   252,   259,   259,     0,     0,   174,
    682      0,     0,   187,     0,     0,     0,     0,   259,   259,     0,
    683      0,     0,   177,   179,   192,   190,   196,   259,   259,   219,
    684    227,    78,    78,   259,   259,   259,     0,     0,   259,   189,
    685    259,     0,     0,     0,     0,     0,    76,    77,    86,   168,
    686    179,   179,   179,   179,   179,   179,   179,   178,     0,   193,
    687      0,   197,   191,   259,   259,     0,   218,   221,   220,   229,
    688    259,   226,     0,     0,   259,   132,   176,   181,   180,   183,
    689    184,   185,   182,   259,   259,   209,   210,     0,   228,    81,
    690     80,    82,    83,    84,    79,   259,   259,   259,     0,   259,
    691    259,    96,    90,    93,    94,    95,   169,     0,   179,   257,
    692      0,   198,   259,    42,    92,     0,    44,    43,    91,    89,
    693     88,    87,     0,   259,   259,   259,     0,   259,   259,   143,
    694    136,   137,   140,   141,   142,   259,   194,   259,   222,   223,
    695    224,     0,   259,     0,     0,     0,     0,     0,     0,     0,
    696      0,     0,   259,   259,   259,   259,   259,     0,     0,     0,
    697     85,   139,     0,   138,   135,   134,   133,     0,   195,     0,
    698    199,   259,   123,     0,     0,   107,   109,   110,   102,   103,
    699    105,   106,   108,   104,   100,     0,    99,   101,     0,    97,
    700     98,   113,   112,   111,     0,   259,     0,     0,     0,     0,
    701      0,     0,     0,     0,     0,   259,   259,   259,   259,   259,
    702      0,     0,     0,   131,   259,   225,   259,   259,   259,   259,
    703    123,     0,     0,   154,   156,   157,   149,   150,   152,   153,
    704    155,   151,   147,     0,   146,   148,     0,   144,   145,   160,
    705    159,   158,   200,     0,     0,     0,     0,   259,   259,   259,
    706    259,   259,   259,   259,   259,   259,     0,     0,     0,     0,
    707      0,     0,     0,     0,   130,     0,   129,   259,   259,   259,
    708    259,   259,   259,   259,   259,   259,   171,     0,     0,     0,
    709      0,   117,     0,     0,     0,   259,   170,   259,   259,   259,
    710    259,   259,   114,   259,   259,   259,   172,   117,     0,     0,
    711      0,     0,     0,   124,     0,   161,   259,   259,   259,   259,
    712    259,   259,   116,   259,     0,   126,     0,   118,   124,   125,
    713      0,   259,   259,   166,   259,   259,   115,   259,   126,   127,
    714    165,   167,     0,   119,     0,   166,   259,   259,   259,   259,
    715    164,   128,     0,   120,   122,   259,   259,   166,   121,   256,
    716    163,   168,   166,   162,     0,     0,     0
     663     1,     0,     0,     0,     0,     0,     0,    33,    34,   274,
     664   275,    42,   234,     0,     0,     0,     0,     0,     4,     5,
     665     3,     0,    39,     0,    40,    41,   262,   272,     0,    30,
     666     0,     0,     0,     0,     0,     0,    12,    29,     0,     0,
     667    10,     0,    11,    35,    37,    36,   244,     0,   270,   269,
     668   273,     0,    72,    73,   234,   234,   234,   234,   234,   234,
     669   234,     0,   234,   212,   234,   234,   234,   234,    38,    46,
     670    47,    51,    52,    55,    56,    50,    58,   234,    45,    48,
     671    49,    53,    54,    59,    57,   207,     0,     0,     0,     0,
     672     0,     0,    31,     0,    25,    26,    24,    27,     0,     6,
     673     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     674     0,     7,     8,     9,   240,   243,   239,   241,   237,   242,
     675   238,   235,   236,   206,     0,   271,   244,     0,     0,     0,
     676     0,   244,   244,    67,   244,     0,     0,     0,     0,   244,
     677     0,     0,   265,   266,   263,   264,   267,   268,     0,    28,
     678    13,    14,    17,    18,    19,    20,    22,    21,    23,    15,
     679    16,     0,     0,   245,   246,   247,   248,     0,    60,     0,
     680    61,    62,    63,     0,     0,     0,     0,     0,     0,     0,
     681     0,     0,     0,     0,     0,   220,    64,    65,    66,     0,
     682     0,    70,    71,   205,   209,    32,   249,   250,    75,   253,
     683   254,   255,   252,   209,     0,     0,   179,   177,   192,   190,
     684    68,     0,     0,   216,   217,   218,   215,   219,     0,     0,
     685    69,   210,     0,     0,   251,     0,     0,     0,     0,     0,
     686     0,     0,     0,   211,   221,   244,   208,     0,    74,     0,
     687   257,   258,   259,   256,     0,     0,     0,     0,   178,     0,
     688     0,   191,     0,     0,     0,     0,     0,     0,     0,     0,
     689   209,   181,   183,   196,   194,   200,     0,     0,   223,   231,
     690    78,    78,     0,     0,     0,     0,     0,   260,   193,   260,
     691     0,     0,     0,     0,     0,    76,    77,    86,   172,   183,
     692   183,   183,   183,   183,   183,   183,   182,     0,   197,     0,
     693   201,   195,     0,     0,     0,   222,   225,   224,   233,     0,
     694   230,     0,     0,     0,   136,   180,   185,   184,   187,   188,
     695   189,   186,   260,   260,   213,   214,     0,   232,    81,    80,
     696    82,    83,    84,    79,     0,     0,     0,     0,     0,     0,
     697    96,    90,    93,    94,    95,   173,     0,   183,   261,     0,
     698   202,     0,    42,    92,     0,    44,    43,    91,    89,     0,
     699     0,    88,   131,    87,     0,     0,     0,     0,     0,     0,
     700     0,   147,   140,   141,   144,   145,   146,     0,   198,   260,
     701   226,   227,   228,     0,   132,     0,     0,     0,     0,     0,
     702     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     703     0,     0,     0,     0,     0,    85,   143,     0,   142,   139,
     704   138,   137,     0,   199,     0,   203,     0,   123,   130,   129,
     705   209,   209,   107,   109,   110,   102,   103,   105,   106,   108,
     706   104,   100,     0,    99,   101,   209,    97,    98,   113,   112,
     707   111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     708     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     709   135,     0,   229,     0,     0,     0,     0,   123,   209,   209,
     710   158,   160,   161,   153,   154,   156,   157,   159,   155,   151,
     711     0,   150,   152,   209,   148,   149,   164,   163,   162,   204,
     712     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     713     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     714     0,   134,     0,   133,     0,     0,     0,     0,     0,     0,
     715     0,     0,     0,   175,     0,     0,     0,     0,   117,     0,
     716     0,     0,     0,   174,     0,     0,     0,     0,     0,   114,
     717     0,     0,     0,   176,   117,     0,     0,     0,     0,     0,
     718   124,     0,   165,     0,     0,     0,     0,     0,     0,   116,
     719     0,     0,   126,     0,   118,   124,   125,     0,     0,     0,
     720   170,     0,     0,   115,     0,   126,   127,   169,   171,     0,
     721   119,     0,   170,     0,     0,     0,     0,   168,   128,     0,
     722   120,   122,     0,     0,   170,   121,     0,   167,   172,   170,
     723   166,     0,     0,     0
    717724};
    718725
    719 static const short yydefgoto[] = {   595,
    720      1,    13,    31,    32,    14,    15,   358,   359,    60,    61,
    721     62,    63,    64,    65,    66,    67,    68,    69,    70,   225,
    722    287,    71,   314,   363,   416,   425,   533,   430,   343,   553,
    723    564,   506,    72,   348,   408,   478,   464,   473,   571,   316,
    724    372,   527,    73,   209,   230,   278,    74,   211,   231,   280,
    725    282,    17,    18,   132,   224,    75,   126,   220,   236,   285,
    726    309,   380,    76,   286,    42,   113,   114,   115,   158,   159,
    727    160,   572,   205,   299,    20,    21,    82,    33
     726static const short yydefgoto[] = {   602,
     727     1,    19,    36,    37,    20,    21,   357,   358,    69,    70,
     728    71,    72,    73,    74,    75,    76,    77,    78,    79,   224,
     729   286,    80,   313,   365,   423,   432,   540,   437,   342,   560,
     730   571,   362,   513,    81,   347,   413,   485,   471,   480,   578,
     731   315,   374,   534,    82,   208,   229,   277,    83,   210,   230,
     732   279,   281,    23,    24,   142,   223,    84,   136,   219,   235,
     733   284,   308,   382,    85,   285,    47,   122,   123,   124,   164,
     734   165,   166,   579,   204,   298,    26,    27,    28
    728735};
    729736
    730737static const short yypact[] = {-32768,
    731    199,     9,    20,    28,     6,     9,    51,-32768,-32768,    -7,
    732 -32768,-32768,-32768,-32768,-32768,   253,-32768,    18,-32768,-32768,
    733    -10,    -8,-32768,-32768,-32768,     9,     9,     9,     9,     9,
    734     77,-32768,-32768,    61,    70,-32768,    90,-32768,-32768,-32768,
    735 -32768,   484,     8,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    736 -32768,-32768,   126,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     738    39,    10,    -4,     0,    -1,    10,    15,-32768,-32768,-32768,
     739-32768,   -15,-32768,   197,   197,   197,    82,   197,-32768,-32768,
     740-32768,   442,-32768,   -68,-32768,-32768,   390,-32768,     6,-32768,
     741    10,    10,    10,    10,    10,   298,-32768,-32768,    31,    56,
     742-32768,   351,-32768,-32768,-32768,-32768,   611,   -41,    50,-32768,
     743-32768,   483,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     744-32768,    55,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    737745-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    738 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   -10,   -10,    13,
    739    -10,   570,-32768,-32768,   137,-32768,-32768,-32768,-32768,   525,
    740 -32768,     9,     9,     9,     9,     9,     9,     9,     9,     9,
    741      9,     9,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    742 -32768,-32768,-32768,-32768,   308,-32768,   484,   271,   309,   484,
    743    484,   484,   484,-32768,   484,   453,   179,   327,   484,   484,
    744    343,    81,   -70,-32768,-32768,   467,   -10,   -10,   -10,   -10,
    745    -10,   -10,    62,-32768,   584,   391,   371,   311,   311,   116,
    746    116,   116,   116,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    747 -32768,    42,-32768,   237,-32768,-32768,-32768,    72,    74,   129,
    748    214,   219,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    749 -32768,-32768,-32768,    87,   219,-32768,-32768,-32768,    97,-32768,
    750    206,   -14,   -70,   -70,-32768,-32768,-32768,-32768,-32768,-32768,
    751 -32768,-32768,-32768,-32768,    -4,-32768,-32768,-32768,-32768,-32768,
    752 -32768,-32768,   103,   105,-32768,-32768,-32768,-32768,-32768,   -30,
    753 -32768,-32768,-32768,   222,    -5,-32768,   336,   134,   143,   144,
    754    215,-32768,-32768,   245,-32768,-32768,-32768,-32768,   154,-32768,
    755    159,-32768,-32768,-32768,-32768,-32768,-32768,    -1,   281,-32768,
    756      2,   285,-32768,   194,   195,   201,   274,-32768,-32768,   205,
    757    212,   213,-32768,   216,   227,-32768,   229,-32768,-32768,-32768,
    758 -32768,-32768,-32768,-32768,-32768,-32768,   168,   259,   241,-32768,
    759    241,   267,   247,   250,   -17,   -44,   252,   252,-32768,   256,
    760    216,   216,   216,   216,   216,   216,   216,-32768,   264,   266,
    761    282,   266,-32768,-32768,-32768,   379,-32768,-32768,-32768,-32768,
    762 -32768,-32768,   178,     7,-32768,-32768,-32768,-32768,-32768,-32768,
    763 -32768,-32768,-32768,   -29,   241,-32768,-32768,   284,-32768,-32768,
    764 -32768,-32768,-32768,-32768,-32768,   380,-32768,   279,   383,-32768,
    765 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   354,   288,-32768,
    766    290,   266,   401,-32768,-32768,   306,-32768,-32768,-32768,-32768,
    767 -32768,-32768,   418,   380,-32768,   279,   403,-32768,-32768,-32768,
    768 -32768,-32768,-32768,-32768,-32768,   168,-32768,   241,-32768,   316,
    769 -32768,   404,   279,   413,   413,   413,   413,   413,   413,   413,
    770    413,   413,-32768,-32768,-32768,   279,-32768,   413,   413,   413,
    771 -32768,-32768,   318,-32768,-32768,-32768,-32768,   548,-32768,   319,
    772    266,-32768,-32768,   321,   322,-32768,-32768,-32768,-32768,-32768,
    773 -32768,-32768,-32768,-32768,-32768,   326,-32768,-32768,   328,-32768,
    774 -32768,-32768,-32768,-32768,   425,   279,   426,   426,   426,   426,
    775    426,   426,   426,   426,   426,-32768,-32768,-32768,   279,-32768,
    776    426,   426,   426,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    777    333,   364,   375,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    778 -32768,-32768,-32768,   384,-32768,-32768,   394,-32768,-32768,-32768,
    779 -32768,-32768,-32768,   395,   397,   398,   399,-32768,-32768,-32768,
    780 -32768,-32768,-32768,-32768,-32768,   496,   402,   410,   414,   422,
    781    423,   441,   444,   446,-32768,   447,-32768,-32768,-32768,-32768,
    782 -32768,   496,-32768,-32768,-32768,-32768,   448,   450,   452,   462,
    783    465,   493,   495,   500,   501,-32768,-32768,-32768,-32768,-32768,
    784 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   493,   502,   503,
    785    504,   507,   518,   519,   520,-32768,-32768,-32768,-32768,-32768,
    786 -32768,-32768,-32768,-32768,   521,   522,   523,   527,   519,-32768,
    787    536,-32768,-32768,   424,-32768,-32768,-32768,-32768,   522,   537,
    788 -32768,-32768,   538,   539,   540,   424,-32768,-32768,-32768,-32768,
    789 -32768,-32768,   553,-32768,   555,-32768,-32768,   -59,-32768,    43,
    790 -32768,   256,   424,-32768,   515,   564,-32768
     746-32768,-32768,-32768,-32768,-32768,-32768,   197,   197,   197,   197,
     747   197,   197,-32768,    58,-32768,-32768,-32768,-32768,   449,-32768,
     748    10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
     749    10,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     750-32768,-32768,-32768,   349,   197,-32768,   611,   345,   417,   110,
     751   110,   611,   611,-32768,   611,   558,    19,   439,   110,   611,
     752   454,   114,   517,   125,    50,    50,-32768,-32768,   -25,-32768,
     753   690,   700,   556,   706,   706,    85,    85,    85,    85,-32768,
     754-32768,   197,   197,-32768,-32768,-32768,-32768,   153,-32768,   401,
     755-32768,-32768,-32768,   -14,     7,   195,   255,   262,   197,   197,
     756   197,   197,   197,   197,   197,-32768,-32768,-32768,-32768,    53,
     757   262,-32768,-32768,-32768,    78,-32768,-32768,-32768,-32768,-32768,
     758-32768,-32768,-32768,   -13,   197,   197,-32768,-32768,-32768,-32768,
     759-32768,    88,   123,-32768,-32768,-32768,-32768,-32768,   -22,   197,
     760-32768,-32768,   135,    73,-32768,   516,   132,   148,    74,    95,
     761   197,   197,   178,-32768,-32768,-32768,-32768,   154,-32768,   157,
     762-32768,-32768,-32768,-32768,   197,   197,    -9,   254,-32768,    -7,
     763   257,-32768,   173,   184,    22,   276,   197,   197,   214,   220,
     764    78,-32768,   224,   230,-32768,   234,   197,   197,-32768,-32768,
     765-32768,-32768,   197,   197,   197,   111,   209,   197,-32768,   197,
     766   258,   240,   245,    76,   268,   252,   252,-32768,   267,   224,
     767   224,   224,   224,   224,   224,   224,-32768,   269,   273,   280,
     768   273,-32768,   197,   197,   297,-32768,-32768,-32768,-32768,   197,
     769-32768,   723,   530,   197,-32768,-32768,-32768,-32768,-32768,-32768,
     770-32768,-32768,   197,   197,-32768,-32768,   282,-32768,-32768,-32768,
     771-32768,-32768,-32768,-32768,   193,   197,    77,   364,    35,    35,
     772-32768,-32768,-32768,-32768,-32768,-32768,   618,   291,-32768,   292,
     773   273,    43,-32768,-32768,   302,-32768,-32768,-32768,-32768,    82,
     774    35,   294,-32768,   294,   676,   193,   197,    77,   420,    35,
     775    35,-32768,-32768,-32768,-32768,-32768,-32768,   201,-32768,   197,
     776-32768,   328,-32768,   425,-32768,    48,    35,    77,   426,   426,
     777   426,   426,   426,   426,   426,   426,   426,   197,   197,   197,
     778    77,   197,   426,   426,   426,-32768,-32768,   335,-32768,-32768,
     779   294,   294,   694,-32768,   347,   273,   197,-32768,-32768,-32768,
     780    78,    78,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     781-32768,-32768,   348,-32768,-32768,    78,-32768,-32768,-32768,-32768,
     782-32768,   459,    77,   469,   469,   469,   469,   469,   469,   469,
     783   469,   469,   197,   197,   197,    77,   197,   469,   469,   469,
     784-32768,   197,-32768,   197,   197,   197,   197,   376,    78,    78,
     785-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     786   378,-32768,-32768,    78,-32768,-32768,-32768,-32768,-32768,-32768,
     787   379,   380,   385,   386,   197,   197,   197,   197,   197,   197,
     788   197,   197,   146,   398,   400,   409,   411,   412,   413,   415,
     789   422,-32768,   424,-32768,   197,   197,   197,   197,   146,   197,
     790   197,   197,    35,   427,   428,   433,   444,   445,   447,   453,
     791   455,   101,   197,-32768,   197,   197,   197,    35,   197,-32768,
     792   197,   197,   197,-32768,   447,   456,   458,   149,   466,   468,
     793   470,   472,-32768,   197,   197,   197,   197,   197,    35,-32768,
     794   197,   478,   479,   480,   502,   470,   294,   503,   197,    35,
     795   465,   197,    35,-32768,   197,   479,   151,-32768,-32768,   504,
     796   218,   505,   465,    35,   197,    35,   197,-32768,   294,   506,
     797   294,   527,   197,    35,   -71,   294,    35,-32768,   231,   465,
     798-32768,   512,   537,-32768
    791799};
    792800
    793801static const short yypgoto[] = {-32768,
    794 -32768,-32768,    40,-32768,-32768,-32768,     1,  -355,-32768,-32768,
     802-32768,-32768,    28,-32768,-32768,-32768,     1,  -248,-32768,-32768,
    795803-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    796    363,-32768,-32768,-32768,   254,  -266,   133,-32768,   329,   108,
    797    110,   176,-32768,-32768,-32768,-32768,   217,  -300,  -546,    98,
    798 -32768,-32768,-32768,   411,-32768,  -137,-32768,   409,-32768,-32768,
    799 -32768,-32768,-32768,-32768,   487,-32768,-32768,-32768,   408,-32768,
    800 -32768,-32768,-32768,-32768,   551,-32768,-32768,  -110,     0,  -293,
    801   -290,   -80,-32768,  -275,   -12,-32768,   180,   -16
     804   308,-32768,-32768,-32768,    33,  -202,    49,-32768,   293,    94,
     805    63,  -333,   142,-32768,-32768,-32768,-32768,   312,   -84,  -223,
     806    68,-32768,-32768,-32768,   391,-32768,    26,-32768,   397,-32768,
     807-32768,-32768,-32768,-32768,-32768,  -190,-32768,-32768,-32768,   395,
     808-32768,-32768,-32768,-32768,-32768,   688,-32768,-32768,  -122,     2,
     809  -278,  -274,   107,-32768,  -259,   108,   186,    -2
    802810};
    803811
    804812
    805 #define YYLAST          693
    806 
    807 
    808 static const short yytable[] = {    43,
    809     19,    16,    23,    24,    83,   301,   162,    84,    39,   239,
    810    404,   170,   171,   262,   172,    36,   265,    22,   234,   185,
    811    345,    23,    24,   346,    25,    23,    24,   414,   164,   581,
    812    336,   234,   306,   141,   142,    34,   337,   165,   167,   310,
    813    429,   591,   311,    35,   312,    37,   594,   183,   349,   351,
    814    187,   590,  -256,  -256,   374,  -259,  -259,   375,   235,  -256,
    815     38,    83,    83,   135,    83,    86,    87,    88,    89,    90,
    816    103,   307,   338,   339,   156,   340,   341,   157,    12,   104,
    817    462,  -256,   263,   240,   226,   266,    91,   139,   140,   141,
    818    142,   212,    78,   477,   342,    79,    40,    80,    81,   105,
    819     85,    41,   410,   161,   222,    77,   223,   168,   169,   156,
    820     26,    27,   157,    12,    28,    29,   184,    30,   116,   189,
    821     83,    83,    83,    83,    83,    83,   257,   427,   428,   200,
    822    431,   145,   146,   147,   148,   149,   150,   151,   152,   153,
    823    154,   155,   124,   198,   199,  -259,   475,   476,  -259,   479,
    824   -259,  -259,   143,   317,   318,   319,   320,   321,   322,   323,
    825    213,   214,   215,   216,   217,   218,   219,    92,    93,   188,
    826     94,   197,    95,    96,    97,    98,    99,   100,   101,   102,
    827     92,    93,   206,    94,   207,    95,    96,    97,    98,    99,
    828    100,   101,   102,   228,   229,   181,   156,   221,    -1,   157,
    829     12,     2,     3,     4,     5,     6,     7,   223,   237,     8,
    830      9,   377,   241,   232,    10,   233,   208,   101,   102,   254,
    831    255,   330,   292,   293,   294,   248,   249,    11,   331,   332,
    832    333,   334,   250,   260,   261,   335,   238,   106,   107,   108,
    833    109,   110,   111,   112,   246,   272,   273,   295,   296,   201,
    834    202,   203,   297,   247,   204,   283,   284,   133,   134,   256,
    835    136,   289,   290,   291,   258,    44,   300,    45,   302,   259,
    836     12,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    837     55,   156,    56,    57,   157,    12,   156,   163,   270,   157,
    838     12,   326,   327,   357,   354,   264,   251,   252,   329,   267,
    839    138,   210,   347,   253,   268,   269,   164,   139,   140,   141,
    840    142,   350,   352,   344,   592,   274,   191,   192,   193,   194,
    841    195,   196,   275,   276,   356,   166,   277,   361,   362,   106,
    842    107,   108,   109,   110,   111,   112,   355,   279,    58,   281,
    843    381,   156,    59,   182,   157,    12,   208,   373,   242,   243,
    844    244,  -256,   403,   245,   210,   406,   407,   304,   164,   186,
    845    305,   271,   313,   409,   402,   411,   315,   106,   107,   108,
    846    109,   110,   111,   112,   324,   156,  -257,   364,   157,    12,
    847    426,   426,   426,   365,   426,   106,   107,   108,   109,   110,
    848    111,   112,   325,   328,   353,   354,   164,   360,   376,   456,
    849    378,   106,   107,   108,   109,   110,   111,   112,    97,    98,
    850     99,   100,   101,   102,   164,   379,   382,   405,   413,   366,
    851    367,   156,   368,   369,   157,    12,   412,   415,   435,   455,
    852    164,   457,   458,   474,   474,   474,   459,   474,   460,   461,
    853    463,   370,   483,   488,   484,   485,   486,   487,   383,   384,
    854    385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
    855    395,   396,   397,   398,   399,   400,    95,    96,    97,    98,
    856     99,   100,   101,   102,   489,   497,   498,   499,   500,   501,
    857    502,   503,   504,   507,    94,   490,    95,    96,    97,    98,
    858     99,   100,   101,   102,   491,   517,   518,   519,   520,   507,
    859    522,   523,   524,   525,   492,   493,   401,   494,   495,   496,
    860    505,   164,   508,   537,   596,   538,   539,   540,   541,   542,
    861    509,   543,   544,   545,   510,   173,   174,   175,   176,   177,
    862    178,   179,   511,   512,   555,   556,   557,   558,   559,   560,
    863    180,   561,   106,   107,   108,   109,   110,   111,   112,   569,
    864    570,   513,   573,   574,   514,   575,   515,   516,   526,   137,
    865    528,   138,   529,   597,   582,   583,   584,   585,   139,   140,
    866    141,   142,   530,   588,   589,   531,   190,   350,   436,   437,
    867    438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
    868    448,   449,   450,   451,   452,   453,   117,   118,   119,   120,
    869    121,   122,   123,   532,   125,   534,   127,   128,   129,   130,
    870    535,   536,   547,   548,   549,    92,    93,   550,    94,   131,
    871     95,    96,    97,    98,    99,   100,   101,   102,   551,   552,
    872    554,   562,   563,   565,   144,   288,   454,   566,   417,   418,
    873    419,   420,   421,   422,   423,   424,   568,   577,   578,   579,
    874    580,   432,   433,   434,   465,   466,   467,   468,   469,   470,
    875    471,   472,   137,   586,   138,   587,   567,   480,   481,   482,
    876    546,   139,   140,   141,   142,    93,   371,    94,   576,    95,
    877     96,    97,    98,    99,   100,   101,   102,   521,   298,   593,
    878    303,   227,   308
     813#define YYLAST          809
     814
     815
     816static const short yytable[] = {    38,
     817    44,    22,    25,    38,   168,   261,   364,   264,    41,   176,
     818   177,    39,   178,   226,    51,    40,   170,   191,    29,    86,
     819   300,    93,    10,    11,    43,    30,   233,   386,    38,    38,
     820    38,    38,    38,    42,   344,   187,   411,   412,   345,   597,
     821   112,     2,     3,     4,     5,     6,     7,    10,    11,     8,
     822     9,    10,    11,   420,    12,    10,    11,   381,    95,    96,
     823    97,    98,    99,   348,   350,   113,   234,    13,   376,   125,
     824   275,   134,   377,   149,   262,   225,   265,   115,   116,   117,
     825   118,   119,   120,   121,   196,    10,    11,   238,    45,    10,
     826    11,   356,   353,    46,    10,    11,   205,   222,    38,    38,
     827    38,    38,    38,    38,    38,    38,    38,    38,    38,   269,
     828    14,    31,    32,   256,    94,    33,    34,   206,    35,   409,
     829   415,    48,    10,    11,   233,   305,    10,    11,   151,   152,
     830   153,   154,   155,   156,   157,   158,   159,   160,   161,   421,
     831   387,    15,   360,   361,    16,    15,    17,    18,    16,   237,
     832    17,    18,   436,    91,    92,   247,   248,   419,    10,    11,
     833   512,   239,   249,   220,   306,   291,   292,   293,   115,   116,
     834   117,   118,   119,   120,   121,    15,   250,   251,    16,    15,
     835    17,    18,    16,   252,    17,    18,   110,   111,   222,   532,
     836   294,   295,   255,   387,   469,   296,   434,   435,   231,   438,
     837    49,    50,   194,    52,   548,    10,    11,   484,   353,    10,
     838    11,   543,    15,    10,    11,    16,    15,    17,    18,    16,
     839   162,    17,    18,   163,    14,   567,    89,    90,    91,    92,
     840   464,   465,   167,   232,   171,   173,   577,   174,   175,   581,
     841   199,   387,   245,   387,   189,   467,   190,   193,    15,   195,
     842   589,    16,   591,    17,    18,   291,   292,   293,   246,   556,
     843   596,   584,   162,   599,   257,   163,    14,   258,   263,   197,
     844   198,   266,   143,   144,   145,   146,   147,   148,   496,   497,
     845   294,   295,   207,   267,   211,   296,   212,   213,   214,   215,
     846   216,   217,   218,   499,   268,    15,   207,   221,    16,    15,
     847    17,    18,    16,    15,    17,    18,    16,   100,    17,    18,
     848   387,   327,   227,   228,   343,   316,   317,   318,   319,   320,
     849   321,   322,   162,   387,   273,   163,    14,   236,   586,   162,
     850   274,   240,   163,    14,   276,   354,   363,   363,   253,   254,
     851   278,   314,   209,   162,   280,   209,   163,    14,   375,   170,
     852   303,   309,   259,   260,   310,   304,   311,   385,   363,   588,
     853   114,   169,   312,   270,   271,   272,   407,   363,   363,   482,
     854   483,   598,   486,   379,   282,   283,   601,   314,   359,   323,
     855   288,   289,   290,  -261,   363,   299,   387,   301,   101,   102,
     856   324,   103,   352,   104,   105,   106,   107,   108,   109,   110,
     857   111,   378,   380,   115,   116,   117,   118,   119,   120,   121,
     858   325,   326,   384,   200,   201,   202,   162,   328,   203,   163,
     859    14,   346,   424,   425,   426,   427,   428,   429,   430,   431,
     860   349,   351,   170,   172,   410,   439,   440,   441,   417,   418,
     861   422,   101,   102,   355,   103,   442,   104,   105,   106,   107,
     862   108,   109,   110,   111,    53,   188,    54,   462,   466,   383,
     863    55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
     864   192,    65,    66,   468,   408,   115,   116,   117,   118,   119,
     865   120,   121,    87,   470,    88,   414,   495,   416,   498,   500,
     866   501,    89,    90,    91,    92,   502,   503,   115,   116,   117,
     867   118,   119,   120,   121,   170,   433,   433,   433,   515,   433,
     868   516,   603,   115,   116,   117,   118,   119,   120,   121,   517,
     869   363,   518,   519,   520,   463,   521,   170,    67,   241,   242,
     870   243,    68,   522,   244,   523,   363,   604,   533,   535,   101,
     871   102,   170,   103,   536,   104,   105,   106,   107,   108,   109,
     872   110,   111,   170,   335,   537,   538,   363,   539,   150,   336,
     873   481,   481,   481,   541,   481,   542,   554,   363,   555,   490,
     874   363,   491,   492,   493,   494,    87,   557,    88,   558,   287,
     875   559,   363,   561,   363,    89,    90,    91,    92,   569,   570,
     876   572,   363,   126,   553,   363,   337,   338,   162,   339,   340,
     877   163,    14,   504,   505,   506,   507,   508,   509,   510,   511,
     878   514,    88,   573,   575,   585,   587,   593,   341,    89,    90,
     879    91,    92,   524,   525,   526,   527,   514,   529,   530,   531,
     880   179,   180,   181,   182,   183,   184,   185,   594,   583,   373,
     881   544,   366,   545,   546,   547,   186,   549,   367,   550,   551,
     882   552,   104,   105,   106,   107,   108,   109,   110,   111,   574,
     883   528,   562,   563,   564,   565,   566,   600,   297,   568,   115,
     884   116,   117,   118,   119,   120,   121,   576,   302,   307,   580,
     885     0,     0,   582,   368,   369,   162,   370,   371,   163,    14,
     886     0,     0,   590,     0,   592,     0,     0,     0,     0,     0,
     887   595,     0,     0,     0,     0,   372,   388,   389,   390,   391,
     888   392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     889   402,   403,   404,   405,   443,   444,   445,   446,   447,   448,
     890   449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
     891   459,   460,   127,   128,   129,   130,   131,   132,   133,     0,
     892   135,     0,   137,   138,   139,   140,   472,   473,   474,   475,
     893   476,   477,   478,   479,   406,   141,   329,     0,     0,   487,
     894   488,   489,     0,   330,   331,   332,   333,     0,     0,     0,
     895   334,   102,   461,   103,     0,   104,   105,   106,   107,   108,
     896   109,   110,   111,   103,     0,   104,   105,   106,   107,   108,
     897   109,   110,   111,   106,   107,   108,   109,   110,   111
    879898};
    880899
    881 static const short yycheck[] = {    12,
    882      1,     1,    13,    14,    21,   281,   117,    16,    16,    15,
    883    366,   122,   123,    15,   125,    10,    15,     9,    49,   130,
    884    314,    13,    14,   314,    16,    13,    14,   383,    88,   576,
    885     24,    49,    50,   104,   105,    16,    30,   118,   119,    84,
    886    396,   588,    87,    16,    89,     6,   593,   128,   324,   325,
    887    131,   111,    82,    83,   348,    13,    14,   348,    89,    89,
    888     10,    78,    79,    80,    81,    26,    27,    28,    29,    30,
    889     10,    89,    66,    67,    68,    69,    70,    71,    72,    10,
    890    436,   111,    84,    89,    89,    84,    10,   102,   103,   104,
    891    105,   172,   103,   449,    88,   106,   104,   108,   109,    10,
    892    109,   109,   378,   116,   185,    88,   111,   120,   121,    68,
    893    102,   103,    71,    72,   106,   107,   129,   109,   111,   132,
    894    137,   138,   139,   140,   141,   142,   237,   394,   395,    88,
    895    397,    92,    93,    94,    95,    96,    97,    98,    99,   100,
    896    101,   102,    17,   156,   157,   103,   447,   448,   106,   450,
    897    108,   109,    16,   291,   292,   293,   294,   295,   296,   297,
    898    173,   174,   175,   176,   177,   178,   179,    91,    92,    89,
    899     94,   110,    96,    97,    98,    99,   100,   101,   102,   103,
    900     91,    92,   111,    94,   111,    96,    97,    98,    99,   100,
    901    101,   102,   103,   206,   207,    17,    68,   111,     0,    71,
    902     72,     3,     4,     5,     6,     7,     8,   111,   221,    11,
    903     12,   349,   225,   111,    16,   111,    88,   102,   103,   232,
    904    233,    44,    55,    56,    57,    82,    83,    29,    51,    52,
    905     53,    54,    89,   246,   247,    58,    15,    59,    60,    61,
    906     62,    63,    64,    65,   111,   258,   259,    80,    81,    13,
    907     14,    15,    85,   111,    18,   268,   269,    78,    79,    15,
    908     81,   274,   275,   276,   111,    13,   279,    15,   281,   111,
    909     72,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    910     28,    68,    30,    31,    71,    72,    68,    17,    88,    71,
    911     72,   304,   305,    15,    16,    15,    82,    83,   311,    15,
    912     95,    88,   315,    89,   111,   111,    88,   102,   103,   104,
    913    105,   324,   325,   314,   590,   111,   137,   138,   139,   140,
    914    141,   142,   111,   111,   337,    17,   111,   340,   341,    59,
    915     60,    61,    62,    63,    64,    65,   336,   111,    86,   111,
    916    353,    68,    90,    17,    71,    72,    88,   348,    13,    14,
    917     15,   111,   365,    18,    88,   368,   369,   111,    88,    17,
    918    111,    88,   111,   376,   364,   378,   111,    59,    60,    61,
    919     62,    63,    64,    65,   111,    68,   111,    24,    71,    72,
    920    393,   394,   395,    30,   397,    59,    60,    61,    62,    63,
    921     64,    65,   111,    15,   111,    16,    88,    15,   111,   412,
    922    111,    59,    60,    61,    62,    63,    64,    65,    98,    99,
    923    100,   101,   102,   103,    88,    15,   111,    15,    15,    66,
    924     67,    68,    69,    70,    71,    72,   111,    15,   111,   111,
    925     88,   111,   111,   446,   447,   448,   111,   450,   111,    15,
    926     15,    88,   455,   111,   457,   458,   459,   460,    31,    32,
    927     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
    928     43,    44,    45,    46,    47,    48,    96,    97,    98,    99,
    929    100,   101,   102,   103,   111,   488,   489,   490,   491,   492,
    930    493,   494,   495,   496,    94,   111,    96,    97,    98,    99,
    931    100,   101,   102,   103,   111,   508,   509,   510,   511,   512,
    932    513,   514,   515,   516,   111,   111,    89,   111,   111,   111,
    933     15,    88,   111,   526,     0,   528,   529,   530,   531,   532,
    934    111,   534,   535,   536,   111,    73,    74,    75,    76,    77,
    935     78,    79,   111,   111,   547,   548,   549,   550,   551,   552,
    936     88,   554,    59,    60,    61,    62,    63,    64,    65,   562,
    937    563,   111,   565,   566,   111,   568,   111,   111,   111,    93,
    938    111,    95,   111,     0,   577,   578,   579,   580,   102,   103,
    939    104,   105,   111,   586,   587,   111,   110,   590,    31,    32,
    940     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
    941     43,    44,    45,    46,    47,    48,    46,    47,    48,    49,
    942     50,    51,    52,   111,    54,   111,    56,    57,    58,    59,
    943    111,   111,   111,   111,   111,    91,    92,   111,    94,    69,
    944     96,    97,    98,    99,   100,   101,   102,   103,   111,   111,
    945    111,   111,   111,   111,   110,   273,    89,   111,   385,   386,
    946    387,   388,   389,   390,   391,   392,   111,   111,   111,   111,
    947    111,   398,   399,   400,   438,   439,   440,   441,   442,   443,
    948    444,   445,    93,   111,    95,   111,   559,   451,   452,   453,
    949    538,   102,   103,   104,   105,    92,   348,    94,   569,    96,
    950     97,    98,    99,   100,   101,   102,   103,   512,   278,   592,
    951    282,   205,   285
     900static const short yycheck[] = {     2,
     901    16,     1,     1,     6,   127,    15,   340,    15,    10,   132,
     902   133,    16,   135,   204,    17,    16,    88,   140,     9,    88,
     903   280,    16,    13,    14,    10,    16,    49,   361,    31,    32,
     904    33,    34,    35,     6,   313,    17,   370,   371,   313,   111,
     905    10,     3,     4,     5,     6,     7,     8,    13,    14,    11,
     906    12,    13,    14,   387,    16,    13,    14,    15,    31,    32,
     907    33,    34,    35,   323,   324,    10,    89,    29,   347,   111,
     908   261,    17,   347,    16,    84,    89,    84,    59,    60,    61,
     909    62,    63,    64,    65,   110,    13,    14,    15,   104,    13,
     910    14,    15,    16,   109,    13,    14,   111,   111,   101,   102,
     911   103,   104,   105,   106,   107,   108,   109,   110,   111,    88,
     912    72,   102,   103,   236,   109,   106,   107,   111,   109,   368,
     913   380,    14,    13,    14,    49,    50,    13,    14,   101,   102,
     914   103,   104,   105,   106,   107,   108,   109,   110,   111,   388,
     915    93,   103,   108,   109,   106,   103,   108,   109,   106,    15,
     916   108,   109,   401,   104,   105,    82,    83,   110,    13,    14,
     917    15,    89,    89,   111,    89,    55,    56,    57,    59,    60,
     918    61,    62,    63,    64,    65,   103,    82,    83,   106,   103,
     919   108,   109,   106,    89,   108,   109,   102,   103,   111,   523,
     920    80,    81,    15,    93,   443,    85,   399,   400,   111,   402,
     921    15,    16,    89,    18,   538,    13,    14,   456,    16,    13,
     922    14,   111,   103,    13,    14,   106,   103,   108,   109,   106,
     923    68,   108,   109,    71,    72,   559,   102,   103,   104,   105,
     924   421,   422,   125,   111,   128,   129,   570,   130,   131,   573,
     925    88,    93,   111,    93,   138,   436,   139,   141,   103,   142,
     926   584,   106,   586,   108,   109,    55,    56,    57,   111,   111,
     927   594,   111,    68,   597,   111,    71,    72,   111,    15,   162,
     928   163,    15,    87,    88,    89,    90,    91,    92,   469,   470,
     929    80,    81,    88,   111,   178,    85,   179,   180,   181,   182,
     930   183,   184,   185,   484,   111,   103,    88,   191,   106,   103,
     931   108,   109,   106,   103,   108,   109,   106,    10,   108,   109,
     932    93,    15,   205,   206,   313,   290,   291,   292,   293,   294,
     933   295,   296,    68,    93,   111,    71,    72,   220,   111,    68,
     934   111,   224,    71,    72,   111,   335,   339,   340,   231,   232,
     935   111,   111,    88,    68,   111,    88,    71,    72,   347,    88,
     936   111,    84,   245,   246,    87,   111,    89,   360,   361,   583,
     937    10,    17,   111,    88,   257,   258,   366,   370,   371,   454,
     938   455,   595,   457,   348,   267,   268,   600,   111,    15,   111,
     939   273,   274,   275,   111,   387,   278,    93,   280,    91,    92,
     940   111,    94,   111,    96,    97,    98,    99,   100,   101,   102,
     941   103,   111,   111,    59,    60,    61,    62,    63,    64,    65,
     942   303,   304,   111,    13,    14,    15,    68,   310,    18,    71,
     943    72,   314,   390,   391,   392,   393,   394,   395,   396,   397,
     944   323,   324,    88,    17,    15,   403,   404,   405,   111,    15,
     945    15,    91,    92,   336,    94,   111,    96,    97,    98,    99,
     946   100,   101,   102,   103,    13,    17,    15,   111,   111,   352,
     947    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     948    17,    30,    31,    15,   367,    59,    60,    61,    62,    63,
     949    64,    65,    93,    15,    95,   378,   111,   380,   111,   111,
     950   111,   102,   103,   104,   105,   111,   111,    59,    60,    61,
     951    62,    63,    64,    65,    88,   398,   399,   400,   111,   402,
     952   111,     0,    59,    60,    61,    62,    63,    64,    65,   111,
     953   523,   111,   111,   111,   417,   111,    88,    86,    13,    14,
     954    15,    90,   111,    18,   111,   538,     0,   111,   111,    91,
     955    92,    88,    94,   111,    96,    97,    98,    99,   100,   101,
     956   102,   103,    88,    24,   111,   111,   559,   111,   110,    30,
     957   453,   454,   455,   111,   457,   111,   111,   570,   111,   462,
     958   573,   464,   465,   466,   467,    93,   111,    95,   111,   272,
     959   111,   584,   111,   586,   102,   103,   104,   105,   111,   111,
     960   111,   594,   110,   545,   597,    66,    67,    68,    69,    70,
     961    71,    72,   495,   496,   497,   498,   499,   500,   501,   502,
     962   503,    95,   111,   111,   111,   111,   111,    88,   102,   103,
     963   104,   105,   515,   516,   517,   518,   519,   520,   521,   522,
     964    73,    74,    75,    76,    77,    78,    79,   111,   576,   347,
     965   533,    24,   535,   536,   537,    88,   539,    30,   541,   542,
     966   543,    96,    97,    98,    99,   100,   101,   102,   103,   566,
     967   519,   554,   555,   556,   557,   558,   599,   277,   561,    59,
     968    60,    61,    62,    63,    64,    65,   569,   281,   284,   572,
     969    -1,    -1,   575,    66,    67,    68,    69,    70,    71,    72,
     970    -1,    -1,   585,    -1,   587,    -1,    -1,    -1,    -1,    -1,
     971   593,    -1,    -1,    -1,    -1,    88,    31,    32,    33,    34,
     972    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
     973    45,    46,    47,    48,    31,    32,    33,    34,    35,    36,
     974    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
     975    47,    48,    55,    56,    57,    58,    59,    60,    61,    -1,
     976    63,    -1,    65,    66,    67,    68,   445,   446,   447,   448,
     977   449,   450,   451,   452,    89,    78,    44,    -1,    -1,   458,
     978   459,   460,    -1,    51,    52,    53,    54,    -1,    -1,    -1,
     979    58,    92,    89,    94,    -1,    96,    97,    98,    99,   100,
     980   101,   102,   103,    94,    -1,    96,    97,    98,    99,   100,
     981   101,   102,   103,    98,    99,   100,   101,   102,   103
    952982};
    953983/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
     
    14521482
    14531483case 1:
    1454 #line 303 "parser.y"
     1484#line 310 "parser.y"
    14551485{
    14561486                resource_t *rsc;
     
    14711501    break;}
    14721502case 2:
    1473 #line 323 "parser.y"
     1503#line 330 "parser.y"
    14741504{ yyval.res = NULL; want_rscname = 1; ;
    14751505    break;}
    14761506case 3:
    1477 #line 324 "parser.y"
     1507#line 331 "parser.y"
    14781508{
    14791509                if(yyvsp[0].res)
     
    15031533    break;}
    15041534case 4:
    1505 #line 349 "parser.y"
     1535#line 356 "parser.y"
    15061536{ yyval.res = yyvsp[-1].res; want_rscname = 1; ;
    15071537    break;}
    15081538case 5:
    1509 #line 350 "parser.y"
     1539#line 357 "parser.y"
    15101540{ yyval.res = yyvsp[-1].res; want_rscname = 1; ;
    15111541    break;}
    15121542case 6:
    1513 #line 355 "parser.y"
     1543#line 362 "parser.y"
    15141544{ pop_start(); push_if(yyvsp[-1].iptr ? *(yyvsp[-1].iptr) : 0, 0, 0); if(yyvsp[-1].iptr) free(yyvsp[-1].iptr);;
    15151545    break;}
    15161546case 7:
    1517 #line 356 "parser.y"
     1547#line 363 "parser.y"
    15181548{ pop_start(); push_if(pp_lookup(yyvsp[-1].str->str.cstr) != NULL, 0, 0); ;
    15191549    break;}
    15201550case 8:
    1521 #line 357 "parser.y"
     1551#line 364 "parser.y"
    15221552{ pop_start(); push_if(pp_lookup(yyvsp[-1].str->str.cstr) == NULL, 0, 0); ;
    15231553    break;}
    15241554case 9:
    1525 #line 358 "parser.y"
     1555#line 365 "parser.y"
    15261556{ pop_start(); push_if(yyvsp[-1].iptr ? *(yyvsp[-1].iptr) : 0, pop_if(), 0); if(yyvsp[-1].iptr) free(yyvsp[-1].iptr); ;
    15271557    break;}
    15281558case 10:
    1529 #line 359 "parser.y"
     1559#line 366 "parser.y"
    15301560{ pop_start(); push_if(1, pop_if(), 0); ;
    15311561    break;}
    15321562case 11:
    1533 #line 360 "parser.y"
     1563#line 367 "parser.y"
    15341564{ pop_if(); ;
    15351565    break;}
    15361566case 12:
    1537 #line 363 "parser.y"
     1567#line 370 "parser.y"
    15381568{ yyval.iptr = yyvsp[0].iptr; ;
    15391569    break;}
    15401570case 13:
    1541 #line 364 "parser.y"
     1571#line 371 "parser.y"
    15421572{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr || *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15431573    break;}
    15441574case 14:
    1545 #line 365 "parser.y"
     1575#line 372 "parser.y"
    15461576{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr && *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15471577    break;}
    15481578case 15:
    1549 #line 366 "parser.y"
     1579#line 373 "parser.y"
    15501580{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr  + *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15511581    break;}
    15521582case 16:
    1553 #line 367 "parser.y"
     1583#line 374 "parser.y"
    15541584{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr  - *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15551585    break;}
    15561586case 17:
    1557 #line 368 "parser.y"
     1587#line 375 "parser.y"
    15581588{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr  ^ *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15591589    break;}
    15601590case 18:
    1561 #line 369 "parser.y"
     1591#line 376 "parser.y"
    15621592{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr == *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15631593    break;}
    15641594case 19:
    1565 #line 370 "parser.y"
     1595#line 377 "parser.y"
    15661596{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr != *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15671597    break;}
    15681598case 20:
    1569 #line 371 "parser.y"
     1599#line 378 "parser.y"
    15701600{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr  < *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15711601    break;}
    15721602case 21:
    1573 #line 372 "parser.y"
     1603#line 379 "parser.y"
    15741604{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr  > *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15751605    break;}
    15761606case 22:
    1577 #line 373 "parser.y"
     1607#line 380 "parser.y"
    15781608{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr <= *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15791609    break;}
    15801610case 23:
    1581 #line 374 "parser.y"
     1611#line 381 "parser.y"
    15821612{ yyval.iptr = new_int(yyvsp[-2].iptr && yyvsp[0].iptr ? (*yyvsp[-2].iptr >= *yyvsp[0].iptr) : 0); if(yyvsp[-2].iptr) free(yyvsp[-2].iptr); if(yyvsp[0].iptr) free(yyvsp[0].iptr); ;
    15831613    break;}
    15841614case 24:
    1585 #line 375 "parser.y"
     1615#line 382 "parser.y"
    15861616{ yyval.iptr = yyvsp[0].iptr; if(yyvsp[0].iptr) *yyvsp[0].iptr = ~(*yyvsp[0].iptr); ;
    15871617    break;}
    15881618case 25:
    1589 #line 376 "parser.y"
     1619#line 383 "parser.y"
    15901620{ yyval.iptr = yyvsp[0].iptr; ;
    15911621    break;}
    15921622case 26:
    1593 #line 377 "parser.y"
     1623#line 384 "parser.y"
    15941624{ yyval.iptr = yyvsp[0].iptr; if(yyvsp[0].iptr) *yyvsp[0].iptr = -(*yyvsp[0].iptr); ;
    15951625    break;}
    15961626case 27:
    1597 #line 378 "parser.y"
     1627#line 385 "parser.y"
    15981628{ yyval.iptr = yyvsp[0].iptr; if(yyvsp[0].iptr) *yyvsp[0].iptr = !(*yyvsp[0].iptr); ;
    15991629    break;}
    16001630case 28:
    1601 #line 379 "parser.y"
     1631#line 386 "parser.y"
    16021632{ yyval.iptr = yyvsp[-1].iptr; ;
    16031633    break;}
    16041634case 29:
    1605 #line 383 "parser.y"
     1635#line 390 "parser.y"
    16061636{ yyval.iptr = new_int(yyvsp[0].num); ;
    16071637    break;}
    16081638case 30:
    1609 #line 384 "parser.y"
     1639#line 391 "parser.y"
    16101640{ yyval.iptr = NULL; ;
    16111641    break;}
    16121642case 31:
    1613 #line 385 "parser.y"
     1643#line 392 "parser.y"
    16141644{ yyval.iptr = new_int(pp_lookup(yyvsp[0].str->str.cstr) != NULL); ;
    16151645    break;}
    16161646case 32:
    1617 #line 386 "parser.y"
     1647#line 393 "parser.y"
    16181648{ yyval.iptr = new_int(pp_lookup(yyvsp[-1].str->str.cstr) != NULL); ;
    16191649    break;}
    16201650case 33:
    1621 #line 390 "parser.y"
     1651#line 397 "parser.y"
    16221652{ strip_til_semicolon(); ;
    16231653    break;}
    16241654case 34:
    1625 #line 391 "parser.y"
     1655#line 398 "parser.y"
     1656{ strip_extern(); ;
     1657    break;}
     1658case 35:
     1659#line 399 "parser.y"
    16261660{ strip_til_semicolon(); ;
    16271661    break;}
    1628 case 35:
    1629 #line 392 "parser.y"
     1662case 36:
     1663#line 400 "parser.y"
     1664{ strip_til_parenthesis(); ;
     1665    break;}
     1666case 37:
     1667#line 401 "parser.y"
    16301668{ strip_til_semicolon(); ;
    16311669    break;}
    1632 case 36:
    1633 #line 393 "parser.y"
    1634 { strip_til_parenthesis(); ;
    1635     break;}
    1636 case 37:
    1637 #line 394 "parser.y"
    1638 { strip_til_semicolon(); ;
    1639     break;}
    16401670case 38:
    1641 #line 399 "parser.y"
     1671#line 406 "parser.y"
    16421672{
    16431673                yyval.res = yyvsp[0].res;
     
    16571687    break;}
    16581688case 39:
    1659 #line 414 "parser.y"
     1689#line 421 "parser.y"
    16601690{
    16611691                /* Don't do anything, stringtables are converted to
     
    16681698    break;}
    16691699case 40:
    1670 #line 422 "parser.y"
     1700#line 429 "parser.y"
    16711701{
    16721702                if(!win32)
     
    16791709    break;}
    16801710case 41:
    1681 #line 435 "parser.y"
    1682 {
     1711#line 442 "parser.y"
     1712{
     1713                if(yyvsp[0].num > 65535 || yyvsp[0].num < -32768)
     1714                        yyerror("Resource's ID out of range (%d)", yyvsp[0].num);
    16831715                yyval.nid = new_name_id();
    16841716                yyval.nid->type = name_ord;
     
    16881720    break;}
    16891721case 42:
    1690 #line 441 "parser.y"
     1722#line 450 "parser.y"
    16911723{
    16921724                yyval.nid = new_name_id();
     
    16971729    break;}
    16981730case 43:
    1699 #line 452 "parser.y"
     1731#line 461 "parser.y"
    17001732{ yyval.nid = yyvsp[0].nid; ;
    17011733    break;}
    17021734case 44:
    1703 #line 453 "parser.y"
     1735#line 462 "parser.y"
    17041736{
    17051737                yyval.nid = new_name_id();
     
    17101742    break;}
    17111743case 45:
    1712 #line 463 "parser.y"
     1744#line 472 "parser.y"
    17131745{ yyval.res = new_resource(res_acc, yyvsp[0].acc, yyvsp[0].acc->memopt, yyvsp[0].acc->lvc.language); ;
    17141746    break;}
    17151747case 46:
    1716 #line 464 "parser.y"
     1748#line 473 "parser.y"
    17171749{ yyval.res = new_resource(res_bmp, yyvsp[0].bmp, yyvsp[0].bmp->memopt, dup_language(currentlanguage)); ;
    17181750    break;}
    17191751case 47:
    1720 #line 465 "parser.y"
     1752#line 474 "parser.y"
    17211753{
    17221754                resource_t *rsc;
     
    17351767    break;}
    17361768case 48:
    1737 #line 479 "parser.y"
     1769#line 488 "parser.y"
    17381770{ yyval.res = new_resource(res_dlg, yyvsp[0].dlg, yyvsp[0].dlg->memopt, yyvsp[0].dlg->lvc.language); ;
    17391771    break;}
    17401772case 49:
    1741 #line 480 "parser.y"
     1773#line 489 "parser.y"
    17421774{
    17431775                if(win32)
     
    17481780    break;}
    17491781case 50:
    1750 #line 486 "parser.y"
     1782#line 495 "parser.y"
    17511783{ yyval.res = new_resource(res_dlginit, yyvsp[0].dginit, yyvsp[0].dginit->memopt, yyvsp[0].dginit->lvc.language); ;
    17521784    break;}
    17531785case 51:
    1754 #line 487 "parser.y"
     1786#line 496 "parser.y"
    17551787{ yyval.res = new_resource(res_fnt, yyvsp[0].fnt, yyvsp[0].fnt->memopt, dup_language(currentlanguage)); ;
    17561788    break;}
    17571789case 52:
    1758 #line 488 "parser.y"
     1790#line 497 "parser.y"
    17591791{
    17601792                resource_t *rsc;
     
    17731805    break;}
    17741806case 53:
    1775 #line 502 "parser.y"
     1807#line 511 "parser.y"
    17761808{ yyval.res = new_resource(res_men, yyvsp[0].men, yyvsp[0].men->memopt, yyvsp[0].men->lvc.language); ;
    17771809    break;}
    17781810case 54:
    1779 #line 503 "parser.y"
     1811#line 512 "parser.y"
    17801812{
    17811813                if(win32)
     
    17861818    break;}
    17871819case 55:
    1788 #line 509 "parser.y"
     1820#line 518 "parser.y"
    17891821{ yyval.res = new_resource(res_msg, yyvsp[0].msg, WRC_MO_MOVEABLE | WRC_MO_DISCARDABLE, dup_language(currentlanguage)); ;
    17901822    break;}
    17911823case 56:
    1792 #line 510 "parser.y"
     1824#line 519 "parser.y"
    17931825{ yyval.res = new_resource(res_rdt, yyvsp[0].rdt, yyvsp[0].rdt->memopt, yyvsp[0].rdt->lvc.language); ;
    17941826    break;}
    17951827case 57:
    1796 #line 511 "parser.y"
     1828#line 520 "parser.y"
    17971829{ yyval.res = new_resource(res_toolbar, yyvsp[0].tlbar, yyvsp[0].tlbar->memopt, yyvsp[0].tlbar->lvc.language); ;
    17981830    break;}
    17991831case 58:
    1800 #line 512 "parser.y"
     1832#line 521 "parser.y"
    18011833{ yyval.res = new_resource(res_usr, yyvsp[0].usr, yyvsp[0].usr->memopt, dup_language(currentlanguage)); ;
    18021834    break;}
    18031835case 59:
    1804 #line 513 "parser.y"
     1836#line 522 "parser.y"
    18051837{ yyval.res = new_resource(res_ver, yyvsp[0].veri, WRC_MO_MOVEABLE | WRC_MO_DISCARDABLE, dup_language(currentlanguage)); ;
    18061838    break;}
    18071839case 60:
    1808 #line 517 "parser.y"
     1840#line 526 "parser.y"
    18091841{ yyval.bmp = new_bitmap(load_file(yyvsp[0].str), yyvsp[-1].iptr); ;
    18101842    break;}
    18111843case 61:
    1812 #line 518 "parser.y"
     1844#line 527 "parser.y"
    18131845{ yyval.bmp = new_bitmap(yyvsp[0].raw, yyvsp[-1].iptr); ;
    18141846    break;}
    18151847case 62:
    1816 #line 522 "parser.y"
     1848#line 531 "parser.y"
    18171849{ yyval.curg = new_cursor_group(load_file(yyvsp[0].str), yyvsp[-1].iptr); ;
    18181850    break;}
    18191851case 63:
    1820 #line 523 "parser.y"
     1852#line 532 "parser.y"
    18211853{ yyval.curg = new_cursor_group(yyvsp[0].raw, yyvsp[-1].iptr); ;
    18221854    break;}
    18231855case 64:
    1824 #line 528 "parser.y"
     1856#line 537 "parser.y"
    18251857{ yyval.fnt = new_font(load_file(yyvsp[0].str), yyvsp[-1].iptr); ;
    18261858    break;}
    18271859case 65:
    1828 #line 532 "parser.y"
     1860#line 541 "parser.y"
    18291861{ yyval.icog = new_icon_group(load_file(yyvsp[0].str), yyvsp[-1].iptr); ;
    18301862    break;}
    18311863case 66:
    1832 #line 533 "parser.y"
     1864#line 542 "parser.y"
    18331865{ yyval.icog = new_icon_group(yyvsp[0].raw, yyvsp[-1].iptr); ;
    18341866    break;}
    18351867case 67:
    1836 #line 541 "parser.y"
     1868#line 550 "parser.y"
    18371869{
    18381870                if(!win32)
     
    18421874    break;}
    18431875case 68:
    1844 #line 549 "parser.y"
     1876#line 558 "parser.y"
    18451877{
    18461878                yyval.rdt = new_rcdata(yyvsp[0].raw, yyvsp[-2].iptr);
     
    18551887    break;}
    18561888case 69:
    1857 #line 562 "parser.y"
     1889#line 571 "parser.y"
    18581890{
    18591891                yyval.dginit = new_dlginit(yyvsp[0].raw, yyvsp[-2].iptr);
     
    18681900    break;}
    18691901case 70:
    1870 #line 575 "parser.y"
     1902#line 584 "parser.y"
    18711903{ yyval.usr = new_user(yyvsp[-2].nid, load_file(yyvsp[0].str), yyvsp[-1].iptr); ;
    18721904    break;}
    18731905case 71:
    1874 #line 576 "parser.y"
     1906#line 585 "parser.y"
    18751907{ yyval.usr = new_user(yyvsp[-2].nid, yyvsp[0].raw, yyvsp[-1].iptr); ;
    18761908    break;}
    18771909case 72:
    1878 #line 595 "parser.y"
     1910#line 604 "parser.y"
    18791911{
    18801912                yyval.nid = new_name_id();
     
    18851917    break;}
    18861918case 73:
    1887 #line 607 "parser.y"
     1919#line 616 "parser.y"
    18881920{
    18891921                yyval.nid = new_name_id();
     
    18941926    break;}
    18951927case 74:
    1896 #line 617 "parser.y"
     1928#line 626 "parser.y"
    18971929{
    18981930                yyval.acc = new_accelerator();
     
    19191951    break;}
    19201952case 75:
    1921 #line 641 "parser.y"
     1953#line 650 "parser.y"
    19221954{ yyval.event=NULL; ;
    19231955    break;}
    19241956case 76:
    1925 #line 642 "parser.y"
     1957#line 651 "parser.y"
    19261958{ yyval.event=add_string_event(yyvsp[-3].str, yyvsp[-1].num, yyvsp[0].num, yyvsp[-4].event); ;
    19271959    break;}
    19281960case 77:
    1929 #line 643 "parser.y"
     1961#line 652 "parser.y"
    19301962{ yyval.event=add_event(yyvsp[-3].num, yyvsp[-1].num, yyvsp[0].num, yyvsp[-4].event); ;
    19311963    break;}
    19321964case 78:
    1933 #line 646 "parser.y"
     1965#line 655 "parser.y"
    19341966{ yyval.num=0; ;
    19351967    break;}
    19361968case 79:
    1937 #line 647 "parser.y"
     1969#line 656 "parser.y"
    19381970{ yyval.num=yyvsp[-2].num | WRC_AF_NOINVERT; ;
    19391971    break;}
    19401972case 80:
    1941 #line 648 "parser.y"
     1973#line 657 "parser.y"
    19421974{ yyval.num=yyvsp[-2].num | WRC_AF_SHIFT; ;
    19431975    break;}
    19441976case 81:
    1945 #line 649 "parser.y"
     1977#line 658 "parser.y"
    19461978{ yyval.num=yyvsp[-2].num | WRC_AF_CONTROL; ;
    19471979    break;}
    19481980case 82:
    1949 #line 650 "parser.y"
     1981#line 659 "parser.y"
    19501982{ yyval.num=yyvsp[-2].num | WRC_AF_ALT; ;
    19511983    break;}
    19521984case 83:
    1953 #line 651 "parser.y"
     1985#line 660 "parser.y"
    19541986{ yyval.num=yyvsp[-2].num | WRC_AF_ASCII; ;
    19551987    break;}
    19561988case 84:
    1957 #line 652 "parser.y"
     1989#line 661 "parser.y"
    19581990{ yyval.num=yyvsp[-2].num | WRC_AF_VIRTKEY; ;
    19591991    break;}
    19601992case 85:
    1961 #line 658 "parser.y"
     1993#line 667 "parser.y"
    19621994{
    19631995                if(yyvsp[-11].iptr)
     
    19762008                if(!yyval.dlg->gotstyle)
    19772009                {
    1978                         yyval.dlg->style = WS_POPUP;
     2010                        yyval.dlg->style->or_mask = WS_POPUP;
    19792011                        yyval.dlg->gotstyle = TRUE;
    19802012                }
    19812013                if(yyval.dlg->title)
    1982                         yyval.dlg->style |= WS_CAPTION;
     2014                        yyval.dlg->style->or_mask |= WS_CAPTION;
    19832015                if(yyval.dlg->font)
    1984                         yyval.dlg->style |= DS_SETFONT;
     2016                        yyval.dlg->style->or_mask |= DS_SETFONT;
     2017
     2018                yyval.dlg->style->or_mask &= ~(yyval.dlg->style->and_mask);
     2019                yyval.dlg->style->and_mask = 0;
     2020
    19852021                indialog = FALSE;
    19862022                if(!yyval.dlg->lvc.language)
     
    19892025    break;}
    19902026case 86:
    1991 #line 688 "parser.y"
     2027#line 701 "parser.y"
    19922028{ yyval.dlg=new_dialog(); ;
    19932029    break;}
    19942030case 87:
    1995 #line 689 "parser.y"
    1996 { yyval.dlg=dialog_style(yyvsp[0].num,yyvsp[-2].dlg); ;
     2031#line 702 "parser.y"
     2032{ yyval.dlg=dialog_style(yyvsp[0].style,yyvsp[-2].dlg); ;
    19972033    break;}
    19982034case 88:
    1999 #line 690 "parser.y"
    2000 { yyval.dlg=dialog_exstyle(yyvsp[0].num,yyvsp[-2].dlg); ;
     2035#line 703 "parser.y"
     2036{ yyval.dlg=dialog_exstyle(yyvsp[0].style,yyvsp[-2].dlg); ;
    20012037    break;}
    20022038case 89:
    2003 #line 691 "parser.y"
     2039#line 704 "parser.y"
    20042040{ yyval.dlg=dialog_caption(yyvsp[0].str,yyvsp[-2].dlg); ;
    20052041    break;}
    20062042case 90:
    2007 #line 692 "parser.y"
     2043#line 705 "parser.y"
    20082044{ yyval.dlg=dialog_font(yyvsp[0].fntid,yyvsp[-1].dlg); ;
    20092045    break;}
    20102046case 91:
    2011 #line 693 "parser.y"
     2047#line 706 "parser.y"
    20122048{ yyval.dlg=dialog_class(yyvsp[0].nid,yyvsp[-2].dlg); ;
    20132049    break;}
    20142050case 92:
    2015 #line 694 "parser.y"
     2051#line 707 "parser.y"
    20162052{ yyval.dlg=dialog_menu(yyvsp[0].nid,yyvsp[-2].dlg); ;
    20172053    break;}
    20182054case 93:
    2019 #line 695 "parser.y"
     2055#line 708 "parser.y"
    20202056{ yyval.dlg=dialog_language(yyvsp[0].lan,yyvsp[-1].dlg); ;
    20212057    break;}
    20222058case 94:
    2023 #line 696 "parser.y"
     2059#line 709 "parser.y"
    20242060{ yyval.dlg=dialog_characteristics(yyvsp[0].chars,yyvsp[-1].dlg); ;
    20252061    break;}
    20262062case 95:
    2027 #line 697 "parser.y"
     2063#line 710 "parser.y"
    20282064{ yyval.dlg=dialog_version(yyvsp[0].ver,yyvsp[-1].dlg); ;
    20292065    break;}
    20302066case 96:
    2031 #line 700 "parser.y"
     2067#line 713 "parser.y"
    20322068{ yyval.ctl = NULL; ;
    20332069    break;}
    20342070case 97:
    2035 #line 701 "parser.y"
     2071#line 714 "parser.y"
    20362072{ yyval.ctl=ins_ctrl(-1, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20372073    break;}
    20382074case 98:
    2039 #line 702 "parser.y"
     2075#line 715 "parser.y"
    20402076{ yyval.ctl=ins_ctrl(CT_EDIT, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20412077    break;}
    20422078case 99:
    2043 #line 703 "parser.y"
     2079#line 716 "parser.y"
    20442080{ yyval.ctl=ins_ctrl(CT_LISTBOX, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20452081    break;}
    20462082case 100:
    2047 #line 704 "parser.y"
     2083#line 717 "parser.y"
    20482084{ yyval.ctl=ins_ctrl(CT_COMBOBOX, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20492085    break;}
    20502086case 101:
    2051 #line 705 "parser.y"
     2087#line 718 "parser.y"
    20522088{ yyval.ctl=ins_ctrl(CT_SCROLLBAR, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20532089    break;}
    20542090case 102:
    2055 #line 706 "parser.y"
     2091#line 719 "parser.y"
    20562092{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_CHECKBOX, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20572093    break;}
    20582094case 103:
    2059 #line 707 "parser.y"
     2095#line 720 "parser.y"
    20602096{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_DEFPUSHBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20612097    break;}
    20622098case 104:
    2063 #line 708 "parser.y"
     2099#line 721 "parser.y"
    20642100{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_GROUPBOX, yyvsp[0].ctl, yyvsp[-2].ctl);;
    20652101    break;}
    20662102case 105:
    2067 #line 709 "parser.y"
     2103#line 722 "parser.y"
    20682104{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_PUSHBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20692105    break;}
    20702106case 106:
    2071 #line 711 "parser.y"
     2107#line 724 "parser.y"
    20722108{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_RADIOBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20732109    break;}
    20742110case 107:
    2075 #line 712 "parser.y"
     2111#line 725 "parser.y"
    20762112{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_AUTO3STATE, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20772113    break;}
    20782114case 108:
    2079 #line 713 "parser.y"
     2115#line 726 "parser.y"
    20802116{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_3STATE, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20812117    break;}
    20822118case 109:
    2083 #line 714 "parser.y"
     2119#line 727 "parser.y"
    20842120{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_AUTOCHECKBOX, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20852121    break;}
    20862122case 110:
    2087 #line 715 "parser.y"
     2123#line 728 "parser.y"
    20882124{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_AUTORADIOBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20892125    break;}
    20902126case 111:
    2091 #line 716 "parser.y"
     2127#line 729 "parser.y"
    20922128{ yyval.ctl=ins_ctrl(CT_STATIC, SS_LEFT, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20932129    break;}
    20942130case 112:
    2095 #line 717 "parser.y"
     2131#line 730 "parser.y"
    20962132{ yyval.ctl=ins_ctrl(CT_STATIC, SS_CENTER, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    20972133    break;}
    20982134case 113:
    2099 #line 718 "parser.y"
     2135#line 731 "parser.y"
    21002136{ yyval.ctl=ins_ctrl(CT_STATIC, SS_RIGHT, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    21012137    break;}
    21022138case 114:
    2103 #line 720 "parser.y"
     2139#line 733 "parser.y"
    21042140{
    21052141                yyvsp[0].ctl->title = yyvsp[-7].nid;
     
    21112147    break;}
    21122148case 115:
    2113 #line 730 "parser.y"
     2149#line 743 "parser.y"
    21142150{
    21152151                yyval.ctl=new_control();
     
    21222158                yyval.ctl->width = yyvsp[-3].num;
    21232159                yyval.ctl->height = yyvsp[-1].num;
    2124                 if(yyvsp[0].iptr)
    2125                 {
    2126                         yyval.ctl->style = *(yyvsp[0].iptr);
     2160                if(yyvsp[0].style)
     2161                {
     2162                        yyval.ctl->style = yyvsp[0].style;
    21272163                        yyval.ctl->gotstyle = TRUE;
    2128                         free(yyvsp[0].iptr);
    21292164                }
    21302165                ;
    21312166    break;}
    21322167case 116:
    2133 #line 750 "parser.y"
     2168#line 762 "parser.y"
    21342169{
    21352170                yyval.ctl = new_control();
     
    21392174                yyval.ctl->width = yyvsp[-3].num;
    21402175                yyval.ctl->height = yyvsp[-1].num;
    2141                 if(yyvsp[0].iptr)
    2142                 {
    2143                         yyval.ctl->style = *(yyvsp[0].iptr);
     2176                if(yyvsp[0].style)
     2177                {
     2178                        yyval.ctl->style = yyvsp[0].style;
    21442179                        yyval.ctl->gotstyle = TRUE;
    2145                         free(yyvsp[0].iptr);
    21462180                }
    21472181                ;
    21482182    break;}
    21492183case 117:
    2150 #line 767 "parser.y"
     2184#line 778 "parser.y"
    21512185{ yyval.ctl = new_control(); ;
    21522186    break;}
    21532187case 118:
    2154 #line 769 "parser.y"
     2188#line 780 "parser.y"
    21552189{
    21562190                yyval.ctl = new_control();
     
    21602194    break;}
    21612195case 119:
    2162 #line 774 "parser.y"
     2196#line 785 "parser.y"
    21632197{
    21642198                yyval.ctl = new_control();
    21652199                yyval.ctl->width = yyvsp[-4].num;
    21662200                yyval.ctl->height = yyvsp[-2].num;
    2167                 yyval.ctl->style = yyvsp[0].num;
     2201                yyval.ctl->style = yyvsp[0].style;
    21682202                yyval.ctl->gotstyle = TRUE;
    21692203                ;
    21702204    break;}
    21712205case 120:
    2172 #line 781 "parser.y"
     2206#line 792 "parser.y"
    21732207{
    21742208                yyval.ctl = new_control();
    21752209                yyval.ctl->width = yyvsp[-6].num;
    21762210                yyval.ctl->height = yyvsp[-4].num;
    2177                 yyval.ctl->style = yyvsp[-2].num;
     2211                yyval.ctl->style = yyvsp[-2].style;
    21782212                yyval.ctl->gotstyle = TRUE;
    2179                 yyval.ctl->exstyle = yyvsp[0].num;
     2213                yyval.ctl->exstyle = yyvsp[0].style;
    21802214                yyval.ctl->gotexstyle = TRUE;
    21812215                ;
    21822216    break;}
    21832217case 121:
    2184 #line 792 "parser.y"
     2218#line 803 "parser.y"
    21852219{
    21862220                yyval.ctl=new_control();
     
    21882222                yyval.ctl->id = yyvsp[-14].num;
    21892223                yyval.ctl->ctlclass = convert_ctlclass(yyvsp[-12].nid);
    2190                 yyval.ctl->style = yyvsp[-10].num;
     2224                yyval.ctl->style = yyvsp[-10].style;
    21912225                yyval.ctl->gotstyle = TRUE;
    21922226                yyval.ctl->x = yyvsp[-8].num;
     
    21942228                yyval.ctl->width = yyvsp[-4].num;
    21952229                yyval.ctl->height = yyvsp[-2].num;
    2196                 yyval.ctl->exstyle = yyvsp[0].num;
     2230                yyval.ctl->exstyle = yyvsp[0].style;
    21972231                yyval.ctl->gotexstyle = TRUE;
    21982232                ;
    21992233    break;}
    22002234case 122:
    2201 #line 806 "parser.y"
     2235#line 817 "parser.y"
    22022236{
    22032237                yyval.ctl=new_control();
     
    22052239                yyval.ctl->id = yyvsp[-12].num;
    22062240                yyval.ctl->ctlclass = convert_ctlclass(yyvsp[-10].nid);
    2207                 yyval.ctl->style = yyvsp[-8].num;
     2241                yyval.ctl->style = yyvsp[-8].style;
    22082242                yyval.ctl->gotstyle = TRUE;
    22092243                yyval.ctl->x = yyvsp[-6].num;
     
    22142248    break;}
    22152249case 123:
    2216 #line 821 "parser.y"
     2250#line 832 "parser.y"
    22172251{ yyval.fntid = new_font_id(yyvsp[-2].num, yyvsp[0].str, 0, 0); ;
    22182252    break;}
    22192253case 124:
    2220 #line 825 "parser.y"
    2221 { yyval.iptr = NULL; ;
     2254#line 837 "parser.y"
     2255{ yyval.style = NULL; ;
    22222256    break;}
    22232257case 125:
    2224 #line 826 "parser.y"
    2225 { yyval.iptr = new_int(yyvsp[0].num); ;
     2258#line 838 "parser.y"
     2259{ yyval.style = yyvsp[0].style; ;
    22262260    break;}
    22272261case 126:
    2228 #line 830 "parser.y"
     2262#line 842 "parser.y"
    22292263{ yyval.styles = NULL; ;
    22302264    break;}
    22312265case 127:
    2232 #line 831 "parser.y"
    2233 { yyval.styles = new_style_pair(yyvsp[0].num, 0); ;
     2266#line 843 "parser.y"
     2267{ yyval.styles = new_style_pair(yyvsp[0].style, 0); ;
    22342268    break;}
    22352269case 128:
    2236 #line 832 "parser.y"
    2237 { yyval.styles = new_style_pair(yyvsp[-2].num, yyvsp[0].num); ;
     2270#line 844 "parser.y"
     2271{ yyval.styles = new_style_pair(yyvsp[-2].style, yyvsp[0].style); ;
    22382272    break;}
    22392273case 129:
    2240 #line 836 "parser.y"
     2274#line 848 "parser.y"
     2275{ yyval.style = new_style(yyvsp[-2].style->or_mask | yyvsp[0].style->or_mask, yyvsp[-2].style->and_mask | yyvsp[0].style->and_mask); free(yyvsp[-2].style); free(yyvsp[0].style);;
     2276    break;}
     2277case 130:
     2278#line 849 "parser.y"
     2279{ yyval.style = yyvsp[-1].style; ;
     2280    break;}
     2281case 131:
     2282#line 850 "parser.y"
     2283{ yyval.style = new_style(yyvsp[0].num, 0); ;
     2284    break;}
     2285case 132:
     2286#line 851 "parser.y"
     2287{ yyval.style = new_style(0, yyvsp[0].num); ;
     2288    break;}
     2289case 133:
     2290#line 855 "parser.y"
    22412291{
    22422292                yyval.nid = new_name_id();
     
    22452295                ;
    22462296    break;}
    2247 case 130:
    2248 #line 841 "parser.y"
     2297case 134:
     2298#line 860 "parser.y"
    22492299{
    22502300                yyval.nid = new_name_id();
     
    22532303                ;
    22542304    break;}
    2255 case 131:
    2256 #line 850 "parser.y"
     2305case 135:
     2306#line 869 "parser.y"
    22572307{
    22582308                if(!win32)
     
    22772327                yyvsp[-3].dlgex->controls = get_control_head(yyvsp[-1].ctl);
    22782328                yyval.dlgex = yyvsp[-3].dlgex;
     2329
     2330                assert(yyval.dlgex->style != NULL);
    22792331                if(!yyval.dlgex->gotstyle)
    22802332                {
    2281                         yyval.dlgex->style = WS_POPUP;
     2333                        yyval.dlgex->style->or_mask = WS_POPUP;
    22822334                        yyval.dlgex->gotstyle = TRUE;
    22832335                }
    22842336                if(yyval.dlgex->title)
    2285                         yyval.dlgex->style |= WS_CAPTION;
     2337                        yyval.dlgex->style->or_mask |= WS_CAPTION;
    22862338                if(yyval.dlgex->font)
    2287                         yyval.dlgex->style |= DS_SETFONT;
     2339                        yyval.dlgex->style->or_mask |= DS_SETFONT;
     2340
     2341                yyval.dlgex->style->or_mask &= ~(yyval.dlgex->style->and_mask);
     2342                yyval.dlgex->style->and_mask = 0;
     2343
    22882344                indialog = FALSE;
    22892345                if(!yyval.dlgex->lvc.language)
     
    22912347                ;
    22922348    break;}
    2293 case 132:
    2294 #line 888 "parser.y"
     2349case 136:
     2350#line 913 "parser.y"
    22952351{ yyval.dlgex=new_dialogex(); ;
    22962352    break;}
    2297 case 133:
    2298 #line 889 "parser.y"
    2299 { yyval.dlgex=dialogex_style(yyvsp[0].num,yyvsp[-2].dlgex); ;
    2300     break;}
    2301 case 134:
    2302 #line 890 "parser.y"
    2303 { yyval.dlgex=dialogex_exstyle(yyvsp[0].num,yyvsp[-2].dlgex); ;
    2304     break;}
    2305 case 135:
    2306 #line 891 "parser.y"
     2353case 137:
     2354#line 914 "parser.y"
     2355{ yyval.dlgex=dialogex_style(yyvsp[0].style,yyvsp[-2].dlgex); ;
     2356    break;}
     2357case 138:
     2358#line 915 "parser.y"
     2359{ yyval.dlgex=dialogex_exstyle(yyvsp[0].style,yyvsp[-2].dlgex); ;
     2360    break;}
     2361case 139:
     2362#line 916 "parser.y"
    23072363{ yyval.dlgex=dialogex_caption(yyvsp[0].str,yyvsp[-2].dlgex); ;
    23082364    break;}
    2309 case 136:
    2310 #line 892 "parser.y"
     2365case 140:
     2366#line 917 "parser.y"
    23112367{ yyval.dlgex=dialogex_font(yyvsp[0].fntid,yyvsp[-1].dlgex); ;
    23122368    break;}
    2313 case 137:
    2314 #line 893 "parser.y"
     2369case 141:
     2370#line 918 "parser.y"
    23152371{ yyval.dlgex=dialogex_font(yyvsp[0].fntid,yyvsp[-1].dlgex); ;
    23162372    break;}
    2317 case 138:
    2318 #line 894 "parser.y"
     2373case 142:
     2374#line 919 "parser.y"
    23192375{ yyval.dlgex=dialogex_class(yyvsp[0].nid,yyvsp[-2].dlgex); ;
    23202376    break;}
    2321 case 139:
    2322 #line 895 "parser.y"
     2377case 143:
     2378#line 920 "parser.y"
    23232379{ yyval.dlgex=dialogex_menu(yyvsp[0].nid,yyvsp[-2].dlgex); ;
    23242380    break;}
    2325 case 140:
    2326 #line 896 "parser.y"
     2381case 144:
     2382#line 921 "parser.y"
    23272383{ yyval.dlgex=dialogex_language(yyvsp[0].lan,yyvsp[-1].dlgex); ;
    23282384    break;}
    2329 case 141:
    2330 #line 897 "parser.y"
     2385case 145:
     2386#line 922 "parser.y"
    23312387{ yyval.dlgex=dialogex_characteristics(yyvsp[0].chars,yyvsp[-1].dlgex); ;
    23322388    break;}
    2333 case 142:
    2334 #line 898 "parser.y"
     2389case 146:
     2390#line 923 "parser.y"
    23352391{ yyval.dlgex=dialogex_version(yyvsp[0].ver,yyvsp[-1].dlgex); ;
    23362392    break;}
    2337 case 143:
    2338 #line 901 "parser.y"
     2393case 147:
     2394#line 926 "parser.y"
    23392395{ yyval.ctl = NULL; ;
    23402396    break;}
    2341 case 144:
    2342 #line 902 "parser.y"
     2397case 148:
     2398#line 927 "parser.y"
    23432399{ yyval.ctl=ins_ctrl(-1, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23442400    break;}
    2345 case 145:
    2346 #line 903 "parser.y"
     2401case 149:
     2402#line 928 "parser.y"
    23472403{ yyval.ctl=ins_ctrl(CT_EDIT, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23482404    break;}
    2349 case 146:
    2350 #line 904 "parser.y"
     2405case 150:
     2406#line 929 "parser.y"
    23512407{ yyval.ctl=ins_ctrl(CT_LISTBOX, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23522408    break;}
    2353 case 147:
    2354 #line 905 "parser.y"
     2409case 151:
     2410#line 930 "parser.y"
    23552411{ yyval.ctl=ins_ctrl(CT_COMBOBOX, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23562412    break;}
    2357 case 148:
    2358 #line 906 "parser.y"
     2413case 152:
     2414#line 931 "parser.y"
    23592415{ yyval.ctl=ins_ctrl(CT_SCROLLBAR, 0, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23602416    break;}
    2361 case 149:
    2362 #line 907 "parser.y"
     2417case 153:
     2418#line 932 "parser.y"
    23632419{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_CHECKBOX, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23642420    break;}
    2365 case 150:
    2366 #line 908 "parser.y"
     2421case 154:
     2422#line 933 "parser.y"
    23672423{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_DEFPUSHBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23682424    break;}
    2369 case 151:
    2370 #line 909 "parser.y"
     2425case 155:
     2426#line 934 "parser.y"
    23712427{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_GROUPBOX, yyvsp[0].ctl, yyvsp[-2].ctl);;
    23722428    break;}
    2373 case 152:
    2374 #line 910 "parser.y"
     2429case 156:
     2430#line 935 "parser.y"
    23752431{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_PUSHBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23762432    break;}
    2377 case 153:
    2378 #line 912 "parser.y"
     2433case 157:
     2434#line 937 "parser.y"
    23792435{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_RADIOBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23802436    break;}
    2381 case 154:
    2382 #line 913 "parser.y"
     2437case 158:
     2438#line 938 "parser.y"
    23832439{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_AUTO3STATE, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23842440    break;}
    2385 case 155:
    2386 #line 914 "parser.y"
     2441case 159:
     2442#line 939 "parser.y"
    23872443{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_3STATE, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23882444    break;}
    2389 case 156:
    2390 #line 915 "parser.y"
     2445case 160:
     2446#line 940 "parser.y"
    23912447{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_AUTOCHECKBOX, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23922448    break;}
    2393 case 157:
    2394 #line 916 "parser.y"
     2449case 161:
     2450#line 941 "parser.y"
    23952451{ yyval.ctl=ins_ctrl(CT_BUTTON, BS_AUTORADIOBUTTON, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    23962452    break;}
    2397 case 158:
    2398 #line 917 "parser.y"
     2453case 162:
     2454#line 942 "parser.y"
    23992455{ yyval.ctl=ins_ctrl(CT_STATIC, SS_LEFT, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    24002456    break;}
    2401 case 159:
    2402 #line 918 "parser.y"
     2457case 163:
     2458#line 943 "parser.y"
    24032459{ yyval.ctl=ins_ctrl(CT_STATIC, SS_CENTER, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    24042460    break;}
    2405 case 160:
    2406 #line 919 "parser.y"
     2461case 164:
     2462#line 944 "parser.y"
    24072463{ yyval.ctl=ins_ctrl(CT_STATIC, SS_RIGHT, yyvsp[0].ctl, yyvsp[-2].ctl); ;
    24082464    break;}
    2409 case 161:
    2410 #line 921 "parser.y"
     2465case 165:
     2466#line 946 "parser.y"
    24112467{
    24122468                yyvsp[0].ctl->title = yyvsp[-7].nid;
     
    24172473                ;
    24182474    break;}
    2419 case 162:
    2420 #line 932 "parser.y"
     2475case 166:
     2476#line 957 "parser.y"
    24212477{
    24222478                yyval.ctl=new_control();
     
    24242480                yyval.ctl->id = yyvsp[-16].num;
    24252481                yyval.ctl->ctlclass = convert_ctlclass(yyvsp[-14].nid);
    2426                 yyval.ctl->style = yyvsp[-12].num;
     2482                yyval.ctl->style = yyvsp[-12].style;
    24272483                yyval.ctl->gotstyle = TRUE;
    24282484                yyval.ctl->x = yyvsp[-10].num;
     
    24302486                yyval.ctl->width = yyvsp[-6].num;
    24312487                yyval.ctl->height = yyvsp[-4].num;
    2432                 if(yyvsp[-2].iptr)
    2433                 {
    2434                         yyval.ctl->exstyle = *(yyvsp[-2].iptr);
     2488                if(yyvsp[-2].style)
     2489                {
     2490                        yyval.ctl->exstyle = yyvsp[-2].style;
    24352491                        yyval.ctl->gotexstyle = TRUE;
    2436                         free(yyvsp[-2].iptr);
    24372492                }
    24382493                if(yyvsp[-1].iptr)
     
    24452500                ;
    24462501    break;}
    2447 case 163:
    2448 #line 957 "parser.y"
     2502case 167:
     2503#line 981 "parser.y"
    24492504{
    24502505                yyval.ctl=new_control();
    24512506                yyval.ctl->title = yyvsp[-15].nid;
    24522507                yyval.ctl->id = yyvsp[-13].num;
    2453                 yyval.ctl->style = yyvsp[-9].num;
     2508                yyval.ctl->style = yyvsp[-9].style;
    24542509                yyval.ctl->gotstyle = TRUE;
    24552510                yyval.ctl->ctlclass = convert_ctlclass(yyvsp[-11].nid);
     
    24612516                ;
    24622517    break;}
    2463 case 164:
    2464 #line 973 "parser.y"
     2518case 168:
     2519#line 997 "parser.y"
    24652520{
    24662521                yyval.ctl=new_control();
     
    24892544                ;
    24902545    break;}
    2491 case 165:
    2492 #line 1001 "parser.y"
     2546case 169:
     2547#line 1025 "parser.y"
    24932548{
    24942549                yyval.ctl = new_control();
     
    25132568                ;
    25142569    break;}
    2515 case 166:
    2516 #line 1024 "parser.y"
     2570case 170:
     2571#line 1048 "parser.y"
    25172572{ yyval.raw = NULL; ;
    25182573    break;}
    2519 case 167:
    2520 #line 1025 "parser.y"
     2574case 171:
     2575#line 1049 "parser.y"
    25212576{ yyval.raw = yyvsp[0].raw; ;
    25222577    break;}
    2523 case 168:
    2524 #line 1028 "parser.y"
     2578case 172:
     2579#line 1052 "parser.y"
    25252580{ yyval.iptr = NULL; ;
    25262581    break;}
    2527 case 169:
    2528 #line 1029 "parser.y"
     2582case 173:
     2583#line 1053 "parser.y"
    25292584{ yyval.iptr = new_int(yyvsp[0].num); ;
    25302585    break;}
    2531 case 170:
    2532 #line 1033 "parser.y"
     2586case 174:
     2587#line 1057 "parser.y"
    25332588{ yyval.fntid = new_font_id(yyvsp[-7].num, yyvsp[-5].str, yyvsp[-3].num, yyvsp[-1].num); ;
    25342589    break;}
    2535 case 171:
    2536 #line 1040 "parser.y"
     2590case 175:
     2591#line 1064 "parser.y"
    25372592{ yyval.fntid = NULL; ;
    25382593    break;}
    2539 case 172:
    2540 #line 1041 "parser.y"
     2594case 176:
     2595#line 1065 "parser.y"
    25412596{ yyval.fntid = NULL; ;
    25422597    break;}
    2543 case 173:
    2544 #line 1045 "parser.y"
     2598case 177:
     2599#line 1069 "parser.y"
    25452600{
    25462601                if(!yyvsp[0].menitm)
     
    25642619                ;
    25652620    break;}
    2566 case 174:
    2567 #line 1068 "parser.y"
     2621case 178:
     2622#line 1092 "parser.y"
    25682623{ yyval.menitm = yyvsp[-1].menitm; ;
    25692624    break;}
    2570 case 175:
    2571 #line 1072 "parser.y"
     2625case 179:
     2626#line 1096 "parser.y"
    25722627{yyval.menitm = NULL;;
    25732628    break;}
    2574 case 176:
    2575 #line 1073 "parser.y"
     2629case 180:
     2630#line 1097 "parser.y"
    25762631{
    25772632                yyval.menitm=new_menu_item();
     
    25842639                ;
    25852640    break;}
    2586 case 177:
    2587 #line 1082 "parser.y"
     2641case 181:
     2642#line 1106 "parser.y"
    25882643{
    25892644                yyval.menitm=new_menu_item();
     
    25932648                ;
    25942649    break;}
    2595 case 178:
    2596 #line 1088 "parser.y"
     2650case 182:
     2651#line 1112 "parser.y"
    25972652{
    25982653                yyval.menitm = new_menu_item();
     
    26042659                ;
    26052660    break;}
    2606 case 179:
    2607 #line 1107 "parser.y"
     2661case 183:
     2662#line 1131 "parser.y"
    26082663{ yyval.num = 0; ;
    26092664    break;}
    2610 case 180:
    2611 #line 1108 "parser.y"
     2665case 184:
     2666#line 1132 "parser.y"
    26122667{ yyval.num = yyvsp[0].num | MF_CHECKED; ;
    26132668    break;}
    2614 case 181:
    2615 #line 1109 "parser.y"
     2669case 185:
     2670#line 1133 "parser.y"
    26162671{ yyval.num = yyvsp[0].num | MF_GRAYED; ;
    26172672    break;}
    2618 case 182:
    2619 #line 1110 "parser.y"
     2673case 186:
     2674#line 1134 "parser.y"
    26202675{ yyval.num = yyvsp[0].num | MF_HELP; ;
    26212676    break;}
    2622 case 183:
    2623 #line 1111 "parser.y"
     2677case 187:
     2678#line 1135 "parser.y"
    26242679{ yyval.num = yyvsp[0].num | MF_DISABLED; ;
    26252680    break;}
    2626 case 184:
    2627 #line 1112 "parser.y"
     2681case 188:
     2682#line 1136 "parser.y"
    26282683{ yyval.num = yyvsp[0].num | MF_MENUBARBREAK; ;
    26292684    break;}
    2630 case 185:
    2631 #line 1113 "parser.y"
     2685case 189:
     2686#line 1137 "parser.y"
    26322687{ yyval.num = yyvsp[0].num | MF_MENUBREAK; ;
    26332688    break;}
    2634 case 186:
    2635 #line 1117 "parser.y"
     2689case 190:
     2690#line 1141 "parser.y"
    26362691{
    26372692                if(!win32)
     
    26572712                ;
    26582713    break;}
    2659 case 187:
    2660 #line 1142 "parser.y"
     2714case 191:
     2715#line 1166 "parser.y"
    26612716{ yyval.menexitm = yyvsp[-1].menexitm; ;
    26622717    break;}
    2663 case 188:
    2664 #line 1146 "parser.y"
     2718case 192:
     2719#line 1170 "parser.y"
    26652720{yyval.menexitm = NULL; ;
    26662721    break;}
    2667 case 189:
    2668 #line 1147 "parser.y"
     2722case 193:
     2723#line 1171 "parser.y"
    26692724{
    26702725                yyval.menexitm = new_menuex_item();
     
    26842739                ;
    26852740    break;}
    2686 case 190:
    2687 #line 1163 "parser.y"
     2741case 194:
     2742#line 1187 "parser.y"
    26882743{
    26892744                yyval.menexitm = new_menuex_item();
     
    26932748                ;
    26942749    break;}
    2695 case 191:
    2696 #line 1169 "parser.y"
     2750case 195:
     2751#line 1193 "parser.y"
    26972752{
    26982753                yyval.menexitm = new_menuex_item();
     
    27132768                ;
    27142769    break;}
    2715 case 192:
    2716 #line 1189 "parser.y"
     2770case 196:
     2771#line 1213 "parser.y"
    27172772{ yyval.exopt = new_itemex_opt(0, 0, 0, 0); ;
    27182773    break;}
    2719 case 193:
    2720 #line 1190 "parser.y"
     2774case 197:
     2775#line 1214 "parser.y"
    27212776{
    27222777                yyval.exopt = new_itemex_opt(yyvsp[0].num, 0, 0, 0);
     
    27242779                ;
    27252780    break;}
    2726 case 194:
    2727 #line 1194 "parser.y"
     2781case 198:
     2782#line 1218 "parser.y"
    27282783{
    27292784                yyval.exopt = new_itemex_opt(yyvsp[-3].iptr ? *(yyvsp[-3].iptr) : 0, yyvsp[-1].iptr ? *(yyvsp[-1].iptr) : 0, yyvsp[0].num, 0);
     
    27352790                ;
    27362791    break;}
    2737 case 195:
    2738 #line 1202 "parser.y"
     2792case 199:
     2793#line 1226 "parser.y"
    27392794{
    27402795                yyval.exopt = new_itemex_opt(yyvsp[-4].iptr ? *(yyvsp[-4].iptr) : 0, yyvsp[-2].iptr ? *(yyvsp[-2].iptr) : 0, yyvsp[0].num, 0);
     
    27462801                ;
    27472802    break;}
    2748 case 196:
    2749 #line 1213 "parser.y"
     2803case 200:
     2804#line 1237 "parser.y"
    27502805{ yyval.exopt = new_itemex_opt(0, 0, 0, 0); ;
    27512806    break;}
    2752 case 197:
    2753 #line 1214 "parser.y"
     2807case 201:
     2808#line 1238 "parser.y"
    27542809{
    27552810                yyval.exopt = new_itemex_opt(yyvsp[0].num, 0, 0, 0);
     
    27572812                ;
    27582813    break;}
    2759 case 198:
    2760 #line 1218 "parser.y"
     2814case 202:
     2815#line 1242 "parser.y"
    27612816{
    27622817                yyval.exopt = new_itemex_opt(yyvsp[-2].iptr ? *(yyvsp[-2].iptr) : 0, yyvsp[0].num, 0, 0);
     
    27662821                ;
    27672822    break;}
    2768 case 199:
    2769 #line 1224 "parser.y"
     2823case 203:
     2824#line 1248 "parser.y"
    27702825{
    27712826                yyval.exopt = new_itemex_opt(yyvsp[-4].iptr ? *(yyvsp[-4].iptr) : 0, yyvsp[-2].iptr ? *(yyvsp[-2].iptr) : 0, yyvsp[0].num, 0);
     
    27772832                ;
    27782833    break;}
    2779 case 200:
    2780 #line 1232 "parser.y"
     2834case 204:
     2835#line 1256 "parser.y"
    27812836{
    27822837                yyval.exopt = new_itemex_opt(yyvsp[-6].iptr ? *(yyvsp[-6].iptr) : 0, yyvsp[-4].iptr ? *(yyvsp[-4].iptr) : 0, yyvsp[-2].iptr ? *(yyvsp[-2].iptr) : 0, yyvsp[0].num);
     
    27902845                ;
    27912846    break;}
    2792 case 201:
    2793 #line 1252 "parser.y"
     2847case 205:
     2848#line 1276 "parser.y"
    27942849{
    27952850                if(!yyvsp[-1].stt)
     
    28312886                ;
    28322887    break;}
    2833 case 202:
    2834 #line 1293 "parser.y"
     2888case 206:
     2889#line 1317 "parser.y"
    28352890{
    28362891                if((tagstt = find_stringtable(yyvsp[0].lvc)) == NULL)
     
    28432898                ;
    28442899    break;}
    2845 case 203:
    2846 #line 1304 "parser.y"
     2900case 207:
     2901#line 1328 "parser.y"
    28472902{ yyval.stt = NULL; ;
    28482903    break;}
    2849 case 204:
    2850 #line 1305 "parser.y"
     2904case 208:
     2905#line 1329 "parser.y"
    28512906{
    28522907                int i;
    28532908                assert(tagstt != NULL);
     2909                if(yyvsp[-2].num > 65535 || yyvsp[-2].num < -32768)
     2910                        yyerror("Stringtable entry's ID out of range (%d)", yyvsp[-2].num);
    28542911                /* Search for the ID */
    28552912                for(i = 0; i < tagstt->nentries; i++)
     
    28772934                ;
    28782935    break;}
    2879 case 207:
    2880 #line 1341 "parser.y"
     2936case 211:
     2937#line 1367 "parser.y"
    28812938{
    28822939                yyval.veri = yyvsp[-3].veri;
     
    28842941                ;
    28852942    break;}
    2886 case 208:
    2887 #line 1348 "parser.y"
     2943case 212:
     2944#line 1374 "parser.y"
    28882945{ yyval.veri = new_versioninfo(); ;
    28892946    break;}
    2890 case 209:
    2891 #line 1349 "parser.y"
     2947case 213:
     2948#line 1375 "parser.y"
    28922949{
    28932950                if(yyvsp[-8].veri->gotit.fv)
     
    29012958                ;
    29022959    break;}
    2903 case 210:
    2904 #line 1359 "parser.y"
     2960case 214:
     2961#line 1385 "parser.y"
    29052962{
    29062963                if(yyvsp[-8].veri->gotit.pv)
     
    29142971                ;
    29152972    break;}
    2916 case 211:
    2917 #line 1369 "parser.y"
     2973case 215:
     2974#line 1395 "parser.y"
    29182975{
    29192976                if(yyvsp[-2].veri->gotit.ff)
     
    29242981                ;
    29252982    break;}
    2926 case 212:
    2927 #line 1376 "parser.y"
     2983case 216:
     2984#line 1402 "parser.y"
    29282985{
    29292986                if(yyvsp[-2].veri->gotit.ffm)
     
    29342991                ;
    29352992    break;}
    2936 case 213:
    2937 #line 1383 "parser.y"
     2993case 217:
     2994#line 1409 "parser.y"
    29382995{
    29392996                if(yyvsp[-2].veri->gotit.fo)
     
    29443001                ;
    29453002    break;}
    2946 case 214:
    2947 #line 1390 "parser.y"
     3003case 218:
     3004#line 1416 "parser.y"
    29483005{
    29493006                if(yyvsp[-2].veri->gotit.ft)
     
    29543011                ;
    29553012    break;}
    2956 case 215:
    2957 #line 1397 "parser.y"
     3013case 219:
     3014#line 1423 "parser.y"
    29583015{
    29593016                if(yyvsp[-2].veri->gotit.fst)
     
    29643021                ;
    29653022    break;}
    2966 case 216:
    2967 #line 1407 "parser.y"
     3023case 220:
     3024#line 1433 "parser.y"
    29683025{ yyval.blk = NULL; ;
    29693026    break;}
    2970 case 217:
    2971 #line 1408 "parser.y"
     3027case 221:
     3028#line 1434 "parser.y"
    29723029{
    29733030                yyval.blk = yyvsp[0].blk;
     
    29773034                ;
    29783035    break;}
    2979 case 218:
    2980 #line 1417 "parser.y"
     3036case 222:
     3037#line 1443 "parser.y"
    29813038{
    29823039                yyval.blk = new_ver_block();
     
    29853042                ;
    29863043    break;}
    2987 case 219:
    2988 #line 1425 "parser.y"
     3044case 223:
     3045#line 1451 "parser.y"
    29893046{ yyval.val = NULL; ;
    29903047    break;}
    2991 case 220:
    2992 #line 1426 "parser.y"
     3048case 224:
     3049#line 1452 "parser.y"
    29933050{
    29943051                yyval.val = yyvsp[0].val;
     
    29983055                ;
    29993056    break;}
    3000 case 221:
    3001 #line 1435 "parser.y"
     3057case 225:
     3058#line 1461 "parser.y"
    30023059{
    30033060                yyval.val = new_ver_value();
     
    30063063                ;
    30073064    break;}
    3008 case 222:
    3009 #line 1440 "parser.y"
     3065case 226:
     3066#line 1466 "parser.y"
    30103067{
    30113068                yyval.val = new_ver_value();
     
    30153072                ;
    30163073    break;}
    3017 case 223:
    3018 #line 1446 "parser.y"
     3074case 227:
     3075#line 1472 "parser.y"
    30193076{
    30203077                yyval.val = new_ver_value();
     
    30243081                ;
    30253082    break;}
    3026 case 224:
    3027 #line 1455 "parser.y"
     3083case 228:
     3084#line 1481 "parser.y"
    30283085{ yyval.verw = new_ver_words(yyvsp[0].num); ;
    30293086    break;}
    3030 case 225:
    3031 #line 1456 "parser.y"
     3087case 229:
     3088#line 1482 "parser.y"
    30323089{ yyval.verw = add_ver_words(yyvsp[-2].verw, yyvsp[0].num); ;
    30333090    break;}
    3034 case 226:
    3035 #line 1460 "parser.y"
     3091case 230:
     3092#line 1486 "parser.y"
    30363093{
    30373094                int nitems;
     
    30583115                ;
    30593116    break;}
    3060 case 227:
    3061 #line 1486 "parser.y"
     3117case 231:
     3118#line 1512 "parser.y"
    30623119{ yyval.tlbarItems = NULL; ;
    30633120    break;}
    3064 case 228:
    3065 #line 1487 "parser.y"
     3121case 232:
     3122#line 1513 "parser.y"
    30663123{         
    30673124                toolbar_item_t *idrec = new_toolbar_item();
     
    30703127                ;
    30713128    break;}
    3072 case 229:
    3073 #line 1492 "parser.y"
     3129case 233:
     3130#line 1518 "parser.y"
    30743131{         
    30753132                toolbar_item_t *idrec = new_toolbar_item();
     
    30783135        ;
    30793136    break;}
    3080 case 230:
    3081 #line 1501 "parser.y"
     3137case 234:
     3138#line 1527 "parser.y"
    30823139{ yyval.iptr = NULL; ;
    30833140    break;}
    3084 case 231:
    3085 #line 1502 "parser.y"
     3141case 235:
     3142#line 1528 "parser.y"
    30863143{
    30873144                if(yyvsp[-1].iptr)
     
    30953152                ;
    30963153    break;}
    3097 case 232:
    3098 #line 1512 "parser.y"
     3154case 236:
     3155#line 1538 "parser.y"
    30993156{
    31003157                if(yyvsp[-1].iptr)
     
    31113168                ;
    31123169    break;}
    3113 case 233:
    3114 #line 1527 "parser.y"
     3170case 237:
     3171#line 1553 "parser.y"
    31153172{ yyval.iptr = new_int(WRC_MO_PRELOAD); ;
    31163173    break;}
    3117 case 234:
    3118 #line 1528 "parser.y"
     3174case 238:
     3175#line 1554 "parser.y"
    31193176{ yyval.iptr = new_int(WRC_MO_MOVEABLE); ;
    31203177    break;}
    3121 case 235:
    3122 #line 1529 "parser.y"
     3178case 239:
     3179#line 1555 "parser.y"
    31233180{ yyval.iptr = new_int(WRC_MO_DISCARDABLE); ;
    31243181    break;}
    3125 case 236:
    3126 #line 1530 "parser.y"
     3182case 240:
     3183#line 1556 "parser.y"
    31273184{ yyval.iptr = new_int(WRC_MO_PURE); ;
    31283185    break;}
    3129 case 237:
    3130 #line 1533 "parser.y"
     3186case 241:
     3187#line 1559 "parser.y"
    31313188{ yyval.iptr = new_int(~WRC_MO_PRELOAD); ;
    31323189    break;}
    3133 case 238:
    3134 #line 1534 "parser.y"
     3190case 242:
     3191#line 1560 "parser.y"
    31353192{ yyval.iptr = new_int(~WRC_MO_MOVEABLE); ;
    31363193    break;}
    3137 case 239:
    3138 #line 1535 "parser.y"
     3194case 243:
     3195#line 1561 "parser.y"
    31393196{ yyval.iptr = new_int(~WRC_MO_PURE); ;
    31403197    break;}
    3141 case 240:
    3142 #line 1539 "parser.y"
     3198case 244:
     3199#line 1565 "parser.y"
    31433200{ yyval.lvc = new_lvc(); ;
    31443201    break;}
    3145 case 241:
    3146 #line 1540 "parser.y"
     3202case 245:
     3203#line 1566 "parser.y"
    31473204{
    31483205                if(!win32)
     
    31543211                ;
    31553212    break;}
    3156 case 242:
    3157 #line 1548 "parser.y"
     3213case 246:
     3214#line 1574 "parser.y"
    31583215{
    31593216                if(!win32)
     
    31653222                ;
    31663223    break;}
    3167 case 243:
    3168 #line 1556 "parser.y"
     3224case 247:
     3225#line 1582 "parser.y"
    31693226{
    31703227                if(!win32)
     
    31763233                ;
    31773234    break;}
    3178 case 244:
    3179 #line 1567 "parser.y"
     3235case 248:
     3236#line 1593 "parser.y"
    31803237{ yyval.lan = new_language(yyvsp[-2].num, yyvsp[0].num); ;
    31813238    break;}
    3182 case 245:
    3183 #line 1571 "parser.y"
     3239case 249:
     3240#line 1597 "parser.y"
    31843241{ yyval.chars = new_characts(yyvsp[0].num); ;
    31853242    break;}
    3186 case 246:
    3187 #line 1575 "parser.y"
     3243case 250:
     3244#line 1601 "parser.y"
    31883245{ yyval.ver = new_version(yyvsp[0].num); ;
    31893246    break;}
    3190 case 247:
    3191 #line 1579 "parser.y"
     3247case 251:
     3248#line 1605 "parser.y"
    31923249{ yyval.raw = yyvsp[-1].raw; ;
    31933250    break;}
    3194 case 248:
    3195 #line 1583 "parser.y"
     3251case 252:
     3252#line 1609 "parser.y"
    31963253{ yyval.raw = yyvsp[0].raw; ;
    31973254    break;}
    3198 case 249:
    3199 #line 1584 "parser.y"
     3255case 253:
     3256#line 1610 "parser.y"
    32003257{ yyval.raw = int2raw_data(yyvsp[0].num); ;
    32013258    break;}
    3202 case 250:
    3203 #line 1585 "parser.y"
     3259case 254:
     3260#line 1611 "parser.y"
    32043261{ yyval.raw = long2raw_data(yyvsp[0].num); ;
    32053262    break;}
    3206 case 251:
    3207 #line 1586 "parser.y"
     3263case 255:
     3264#line 1612 "parser.y"
    32083265{ yyval.raw = str2raw_data(yyvsp[0].str); ;
    32093266    break;}
    3210 case 252:
    3211 #line 1587 "parser.y"
     3267case 256:
     3268#line 1613 "parser.y"
    32123269{ yyval.raw = merge_raw_data(yyvsp[-2].raw, yyvsp[0].raw); free(yyvsp[0].raw->data); free(yyvsp[0].raw); ;
    32133270    break;}
    3214 case 253:
    3215 #line 1588 "parser.y"
     3271case 257:
     3272#line 1614 "parser.y"
    32163273{ yyval.raw = merge_raw_data_int(yyvsp[-2].raw, yyvsp[0].num); ;
    32173274    break;}
    3218 case 254:
    3219 #line 1589 "parser.y"
     3275case 258:
     3276#line 1615 "parser.y"
    32203277{ yyval.raw = merge_raw_data_long(yyvsp[-2].raw, yyvsp[0].num); ;
    32213278    break;}
    3222 case 255:
    3223 #line 1590 "parser.y"
     3279case 259:
     3280#line 1616 "parser.y"
    32243281{ yyval.raw = merge_raw_data_str(yyvsp[-2].raw, yyvsp[0].str); ;
    32253282    break;}
    3226 case 256:
    3227 #line 1597 "parser.y"
     3283case 260:
     3284#line 1623 "parser.y"
    32283285{ yyval.iptr = 0; ;
    32293286    break;}
    3230 case 257:
    3231 #line 1598 "parser.y"
     3287case 261:
     3288#line 1624 "parser.y"
    32323289{ yyval.iptr = new_int(yyvsp[0].num); ;
    32333290    break;}
    3234 case 258:
    3235 #line 1600 "parser.y"
    3236 { yyval.num = (yyvsp[0].num) & andmask; ;
    3237     break;}
    3238 case 259:
    3239 #line 1603 "parser.y"
    3240 { yyval.num = 0; andmask = -1; ;
    3241     break;}
    3242 case 260:
    3243 #line 1606 "parser.y"
     3291case 262:
     3292#line 1626 "parser.y"
     3293{ yyval.num = (yyvsp[0].num); ;
     3294    break;}
     3295case 263:
     3296#line 1629 "parser.y"
    32443297{ yyval.num = (yyvsp[-2].num) + (yyvsp[0].num); ;
    32453298    break;}
    3246 case 261:
    3247 #line 1607 "parser.y"
     3299case 264:
     3300#line 1630 "parser.y"
    32483301{ yyval.num = (yyvsp[-2].num) - (yyvsp[0].num); ;
    32493302    break;}
    3250 case 262:
    3251 #line 1608 "parser.y"
     3303case 265:
     3304#line 1631 "parser.y"
    32523305{ yyval.num = (yyvsp[-2].num) | (yyvsp[0].num); ;
    32533306    break;}
    3254 case 263:
    3255 #line 1609 "parser.y"
     3307case 266:
     3308#line 1632 "parser.y"
    32563309{ yyval.num = (yyvsp[-2].num) & (yyvsp[0].num); ;
    32573310    break;}
    3258 case 264:
    3259 #line 1610 "parser.y"
     3311case 267:
     3312#line 1633 "parser.y"
    32603313{ yyval.num = (yyvsp[-2].num) * (yyvsp[0].num); ;
    32613314    break;}
    3262 case 265:
    3263 #line 1611 "parser.y"
     3315case 268:
     3316#line 1634 "parser.y"
    32643317{ yyval.num = (yyvsp[-2].num) / (yyvsp[0].num); ;
    32653318    break;}
    3266 case 266:
    3267 #line 1612 "parser.y"
     3319case 269:
     3320#line 1635 "parser.y"
    32683321{ yyval.num = ~(yyvsp[0].num); ;
    32693322    break;}
    3270 case 267:
    3271 #line 1613 "parser.y"
     3323case 270:
     3324#line 1636 "parser.y"
    32723325{ yyval.num = -(yyvsp[0].num); ;
    32733326    break;}
    3274 case 268:
    3275 #line 1615 "parser.y"
     3327case 271:
     3328#line 1638 "parser.y"
    32763329{ yyval.num = yyvsp[-1].num; ;
    32773330    break;}
    3278 case 269:
    3279 #line 1616 "parser.y"
     3331case 272:
     3332#line 1639 "parser.y"
    32803333{ yyval.num = yyvsp[0].num; want_rscname = 0; ;
    32813334    break;}
    3282 case 270:
    3283 #line 1617 "parser.y"
    3284 { yyval.num = 0; andmask &= ~(yyvsp[0].num); ;
    3285     break;}
    3286 case 271:
    3287 #line 1620 "parser.y"
     3335case 273:
     3336#line 1640 "parser.y"
     3337{ yyval.num = ~(yyvsp[0].num); ;
     3338    break;}
     3339case 274:
     3340#line 1643 "parser.y"
    32883341{ yyval.num = yyvsp[0].num; ;
    32893342    break;}
    3290 case 272:
    3291 #line 1621 "parser.y"
     3343case 275:
     3344#line 1644 "parser.y"
    32923345{ yyval.num = yyvsp[0].num; ;
    32933346    break;}
     
    34913544  goto yynewstate;
    34923545}
    3493 #line 1624 "parser.y"
     3546#line 1647 "parser.y"
    34943547
    34953548/* Dialog specific functions */
    3496 dialog_t *dialog_style(int st, dialog_t *dlg)
    3497 {
    3498         DWORD s = 0;
     3549dialog_t *dialog_style(style_t * st, dialog_t *dlg)
     3550{
    34993551        assert(dlg != NULL);
     3552        if(dlg->style == NULL)
     3553        {
     3554                dlg->style = new_style(0,0);
     3555        }
     3556
    35003557        if(dlg->gotstyle)
    35013558        {
    35023559                yywarning("Style already defined, or-ing together");
    3503                 s = dlg->style;
    35043560        }
    3505         dlg->style = st | s;
     3561        else
     3562        {
     3563                dlg->style->or_mask = 0;
     3564                dlg->style->and_mask = 0;
     3565        }
     3566        dlg->style->or_mask |= st->or_mask;
     3567        dlg->style->and_mask |= st->and_mask;
    35063568        dlg->gotstyle = TRUE;
     3569        free(st);
    35073570        return dlg;
    35083571}
    35093572
    3510 dialog_t *dialog_exstyle(int st, dialog_t *dlg)
    3511 {
    3512         DWORD s = 0;
     3573dialog_t *dialog_exstyle(style_t *st, dialog_t *dlg)
     3574{
    35133575        assert(dlg != NULL);
     3576        if(dlg->exstyle == NULL)
     3577        {
     3578                dlg->exstyle = new_style(0,0);
     3579        }
     3580
    35143581        if(dlg->gotexstyle)
    35153582        {
    35163583                yywarning("ExStyle already defined, or-ing together");
    3517                 s = dlg->style;
    35183584        }
    3519         dlg->exstyle = st | s;
     3585        else
     3586        {
     3587                dlg->exstyle->or_mask = 0;
     3588                dlg->exstyle->and_mask = 0;
     3589        }
     3590        dlg->exstyle->or_mask |= st->or_mask;
     3591        dlg->exstyle->and_mask |= st->and_mask;
    35203592        dlg->gotexstyle = TRUE;
     3593        free(st);
    35213594        return dlg;
    35223595}
     
    35863659
    35873660/* Controls specific functions */
    3588 control_t *ins_ctrl(int type, int style, control_t *ctrl, control_t *prev)
    3589 {
     3661control_t *ins_ctrl(int type, int special_style, control_t *ctrl, control_t *prev)
     3662{
     3663        /* Hm... this seems to be jammed in at all time... */
     3664        int defaultstyle = WS_CHILD | WS_VISIBLE;
     3665
    35903666        assert(ctrl != NULL);
    35913667        ctrl->prev = prev;
     3668
    35923669        if(prev)
    35933670                prev->next = ctrl;
     3671
    35943672        if(type != -1)
    35953673        {
     
    35993677        }
    36003678
    3601         /* Hm... this seems to be jammed in at all time... */
    3602         ctrl->style |= WS_CHILD | WS_VISIBLE;
    36033679        switch(type)
    36043680        {
    36053681        case CT_BUTTON:
    3606                 ctrl->style |= style;
    3607                 if(style != BS_GROUPBOX && style != BS_RADIOBUTTON)
    3608                         ctrl->style |= WS_TABSTOP;
     3682                if(special_style != BS_GROUPBOX && special_style != BS_RADIOBUTTON)
     3683                        defaultstyle |= WS_TABSTOP;
    36093684                break;
    36103685        case CT_EDIT:
    3611                 ctrl->style |= WS_TABSTOP | WS_BORDER;
     3686                defaultstyle |= WS_TABSTOP | WS_BORDER;
    36123687                break;
    36133688        case CT_LISTBOX:
    3614                 ctrl->style |= LBS_NOTIFY | WS_BORDER;
     3689                defaultstyle |= LBS_NOTIFY | WS_BORDER;
    36153690                break;
    36163691        case CT_COMBOBOX:
    3617                 ctrl->style |= CBS_SIMPLE;
     3692                defaultstyle |= CBS_SIMPLE;
    36183693                break;
    36193694        case CT_STATIC:
    3620                 ctrl->style |= style;
    3621                 if(style == SS_CENTER || style == SS_LEFT || style == SS_RIGHT)
    3622                         ctrl->style |= WS_GROUP;
     3695                if(special_style == SS_CENTER || special_style == SS_LEFT || special_style == SS_RIGHT)
     3696                        defaultstyle |= WS_GROUP;
    36233697                break;
    36243698        }
     
    36293703                {
    36303704                case CT_EDIT:
    3631                         ctrl->style |= ES_LEFT;
     3705                        defaultstyle |= ES_LEFT;
    36323706                        break;
    36333707                case CT_LISTBOX:
    3634                         ctrl->style |= LBS_NOTIFY;
     3708                        defaultstyle |= LBS_NOTIFY;
    36353709                        break;
    36363710                case CT_COMBOBOX:
    3637                         ctrl->style |= CBS_SIMPLE | WS_TABSTOP;
     3711                        defaultstyle |= CBS_SIMPLE | WS_TABSTOP;
    36383712                        break;
    36393713                case CT_SCROLLBAR:
    3640                         ctrl->style |= SBS_HORZ;
     3714                        defaultstyle |= SBS_HORZ;
    36413715                        break;
    36423716                case CT_BUTTON:
    3643                         switch(style)
     3717                        switch(special_style)
    36443718                        {
    36453719                        case BS_CHECKBOX:
     
    36523726                        case BS_3STATE:
    36533727                        case BS_AUTOCHECKBOX:
    3654                                 ctrl->style |= WS_TABSTOP;
     3728                                defaultstyle |= WS_TABSTOP;
    36553729                                break;
    36563730                        default:
    3657                                 yywarning("Unknown default button control-style 0x%08x", style);
     3731                                yywarning("Unknown default button control-style 0x%08x", special_style);
    36583732                        case BS_RADIOBUTTON:
    36593733                                break;
     
    36623736
    36633737                case CT_STATIC:
    3664                         switch(style)
     3738                        switch(special_style)
    36653739                        {
    36663740                        case SS_LEFT:
    36673741                        case SS_RIGHT:
    36683742                        case SS_CENTER:
    3669                                 ctrl->style |= WS_GROUP;
     3743                                defaultstyle |= WS_GROUP;
    36703744                                break;
    36713745                        case SS_ICON:   /* Special case */
    36723746                                break;
    36733747                        default:
    3674                                 yywarning("Unknown default static control-style 0x%08x", style);
     3748                                yywarning("Unknown default static control-style 0x%08x", special_style);
    36753749                                break;
    36763750                        }
     
    36853759
    36863760        /* The SS_ICON flag is always forced in for icon controls */
    3687         if(type == CT_STATIC && style == SS_ICON)
    3688                 ctrl->style |= SS_ICON;
    3689 
     3761        if(type == CT_STATIC && special_style == SS_ICON)
     3762                defaultstyle |= SS_ICON;
     3763
     3764        if (!ctrl->gotstyle)
     3765                ctrl->style = new_style(0,0);
     3766
     3767        /* combine all styles */
     3768        ctrl->style->or_mask = ctrl->style->or_mask | defaultstyle | special_style;
    36903769        ctrl->gotstyle = TRUE;
    36913770byebye:
     3771        /* combine with NOT mask */
     3772        if (ctrl->gotstyle)
     3773        {
     3774                ctrl->style->or_mask &= ~(ctrl->style->and_mask);
     3775                ctrl->style->and_mask = 0;
     3776        }
     3777        if (ctrl->gotexstyle)
     3778        {
     3779                ctrl->exstyle->or_mask &= ~(ctrl->exstyle->and_mask);
     3780                ctrl->exstyle->and_mask = 0;
     3781        }
    36923782        return ctrl;
    36933783}
     
    37313821
    37323822/* DialogEx specific functions */
    3733 dialogex_t *dialogex_style(int st, dialogex_t *dlg)
    3734 {
    3735         DWORD s = 0;
     3823dialogex_t *dialogex_style(style_t * st, dialogex_t *dlg)
     3824{
    37363825        assert(dlg != NULL);
     3826        if(dlg->style == NULL)
     3827        {
     3828                dlg->style = new_style(0,0);
     3829        }
     3830
    37373831        if(dlg->gotstyle)
    37383832        {
    37393833                yywarning("Style already defined, or-ing together");
    3740                 s = dlg->style;
    37413834        }
    3742         dlg->style = st | s;
     3835        else
     3836        {
     3837                dlg->style->or_mask = 0;
     3838                dlg->style->and_mask = 0;
     3839        }
     3840        dlg->style->or_mask |= st->or_mask;
     3841        dlg->style->and_mask |= st->and_mask;
    37433842        dlg->gotstyle = TRUE;
     3843        free(st);
    37443844        return dlg;
    37453845}
    37463846
    3747 dialogex_t *dialogex_exstyle(int st, dialogex_t *dlg)
    3748 {
    3749         DWORD s = 0;
     3847dialogex_t *dialogex_exstyle(style_t * st, dialogex_t *dlg)
     3848{
    37503849        assert(dlg != NULL);
     3850        if(dlg->exstyle == NULL)
     3851        {
     3852                dlg->exstyle = new_style(0,0);
     3853        }
     3854
    37513855        if(dlg->gotexstyle)
    37523856        {
    37533857                yywarning("ExStyle already defined, or-ing together");
    3754                 s = dlg->exstyle;
    37553858        }
    3756         dlg->exstyle = st | s;
     3859        else
     3860        {
     3861                dlg->exstyle->or_mask = 0;
     3862                dlg->exstyle->and_mask = 0;
     3863        }
     3864        dlg->exstyle->or_mask |= st->or_mask;
     3865        dlg->exstyle->and_mask |= st->and_mask;
    37573866        dlg->gotexstyle = TRUE;
     3867        free(st);
    37583868        return dlg;
    37593869}
Note: See TracChangeset for help on using the changeset viewer.