shoot, proper fix for bison 2.4

This commit is contained in:
David Rose 2009-04-29 02:15:21 +00:00
parent 74c56a9487
commit ee571fa777
3 changed files with 53 additions and 49 deletions

View File

@ -1140,7 +1140,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
int n; \
unsigned n; \
for ( n = 0; n < max_size && \
(c = getc( xyyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \

View File

@ -269,7 +269,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
# if YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@ -525,14 +525,14 @@ static const yytype_int8 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 108, 108, 109, 110, 111, 116, 115, 129, 130,
134, 135, 139, 143, 147, 148, 152, 153, 154, 158,
166, 170, 183, 187, 191, 195, 199, 203, 207, 211,
215, 219, 223, 230, 235, 248, 249, 253, 257, 261,
273, 276, 282, 291, 307, 311, 312, 316, 323, 327,
331, 335, 339, 343, 348, 347, 374, 375, 379, 384,
388, 396, 404, 412, 418, 422, 426, 430, 431, 435,
444, 460
0, 108, 108, 109, 110, 111, 116, 115, 130, 131,
135, 136, 140, 144, 148, 149, 153, 154, 155, 159,
167, 171, 184, 188, 192, 196, 200, 204, 208, 212,
216, 220, 224, 231, 236, 249, 250, 254, 258, 262,
274, 277, 283, 292, 308, 312, 313, 317, 324, 328,
332, 336, 340, 344, 349, 348, 376, 377, 381, 386,
390, 398, 406, 414, 420, 424, 428, 432, 433, 437,
446, 462
};
#endif
@ -775,7 +775,7 @@ while (YYID (0))
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# if YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
@ -1518,6 +1518,7 @@ yyreduce:
case 6:
#line 116 "xParser.yxx"
{
(yyval.u.node) = current_node;
XFileTemplate *templ = new XFileTemplate(x_file, (yyvsp[(2) - (4)].str), (yyvsp[(4) - (4)].guid));
current_node->add_child(templ);
current_node = templ;
@ -1525,7 +1526,7 @@ yyreduce:
break;
case 7:
#line 122 "xParser.yxx"
#line 123 "xParser.yxx"
{
(yyval.u.node) = current_node;
current_node = (yyvsp[(5) - (7)].u.node);
@ -1533,14 +1534,14 @@ yyreduce:
break;
case 12:
#line 140 "xParser.yxx"
#line 141 "xParser.yxx"
{
DCAST(XFileTemplate, current_node)->set_open(true);
}
break;
case 19:
#line 159 "xParser.yxx"
#line 160 "xParser.yxx"
{
current_data_def = new XFileDataDef(x_file, (yyvsp[(2) - (3)].str), (yyvsp[(1) - (3)].u.primitive_type));
current_node->add_child(current_data_def);
@ -1548,7 +1549,7 @@ yyreduce:
break;
case 21:
#line 171 "xParser.yxx"
#line 172 "xParser.yxx"
{
XFileTemplate *xtemplate = x_file->find_template((yyvsp[(1) - (3)].str));
if (xtemplate == (XFileTemplate *)NULL) {
@ -1561,84 +1562,84 @@ yyreduce:
break;
case 22:
#line 184 "xParser.yxx"
#line 185 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_word;
}
break;
case 23:
#line 188 "xParser.yxx"
#line 189 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_dword;
}
break;
case 24:
#line 192 "xParser.yxx"
#line 193 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_float;
}
break;
case 25:
#line 196 "xParser.yxx"
#line 197 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_double;
}
break;
case 26:
#line 200 "xParser.yxx"
#line 201 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_char;
}
break;
case 27:
#line 204 "xParser.yxx"
#line 205 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_uchar;
}
break;
case 28:
#line 208 "xParser.yxx"
#line 209 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_sword;
}
break;
case 29:
#line 212 "xParser.yxx"
#line 213 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_sdword;
}
break;
case 30:
#line 216 "xParser.yxx"
#line 217 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_string;
}
break;
case 31:
#line 220 "xParser.yxx"
#line 221 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_unicode;
}
break;
case 32:
#line 224 "xParser.yxx"
#line 225 "xParser.yxx"
{
(yyval.u.primitive_type) = XFileDataDef::T_cstring;
}
break;
case 33:
#line 231 "xParser.yxx"
#line 232 "xParser.yxx"
{
current_data_def = new XFileDataDef(x_file, (yyvsp[(2) - (2)].str), (yyvsp[(1) - (2)].u.primitive_type));
current_node->add_child(current_data_def);
@ -1646,7 +1647,7 @@ yyreduce:
break;
case 34:
#line 236 "xParser.yxx"
#line 237 "xParser.yxx"
{
XFileTemplate *xtemplate = x_file->find_template((yyvsp[(1) - (2)].str));
if (xtemplate == (XFileTemplate *)NULL) {
@ -1659,14 +1660,14 @@ yyreduce:
break;
case 38:
#line 258 "xParser.yxx"
#line 259 "xParser.yxx"
{
current_data_def->add_array_def(XFileArrayDef((yyvsp[(1) - (1)].u.number)));
}
break;
case 39:
#line 262 "xParser.yxx"
#line 263 "xParser.yxx"
{
XFileNode *data_def = current_node->find_child((yyvsp[(1) - (1)].str));
if (data_def == (XFileNode *)NULL) {
@ -1678,19 +1679,19 @@ yyreduce:
break;
case 40:
#line 274 "xParser.yxx"
#line 275 "xParser.yxx"
{
}
break;
case 41:
#line 277 "xParser.yxx"
#line 278 "xParser.yxx"
{
}
break;
case 42:
#line 283 "xParser.yxx"
#line 284 "xParser.yxx"
{
XFileTemplate *xtemplate = x_file->find_template((yyvsp[(1) - (1)].str));
if (xtemplate == (XFileTemplate *)NULL) {
@ -1702,7 +1703,7 @@ yyreduce:
break;
case 43:
#line 292 "xParser.yxx"
#line 293 "xParser.yxx"
{
XFileTemplate *xtemplate = x_file->find_template((yyvsp[(2) - (2)].guid));
if (xtemplate == (XFileTemplate *)NULL) {
@ -1718,37 +1719,38 @@ yyreduce:
break;
case 46:
#line 313 "xParser.yxx"
#line 314 "xParser.yxx"
{
(yyval.str) = (yyvsp[(1) - (2)].str) + " " + (yyvsp[(2) - (2)].str);
}
break;
case 47:
#line 317 "xParser.yxx"
#line 318 "xParser.yxx"
{
(yyval.str) = (yyvsp[(1) - (2)].str) + " " + (yyvsp[(2) - (2)].str);
}
break;
case 48:
#line 324 "xParser.yxx"
#line 325 "xParser.yxx"
{
(yyval.str) = string();
}
break;
case 51:
#line 336 "xParser.yxx"
#line 337 "xParser.yxx"
{
(yyval.guid) = WindowsGuid();
}
break;
case 54:
#line 348 "xParser.yxx"
#line 349 "xParser.yxx"
{
XFileTemplate *xtemplate = x_file->find_template((yyvsp[(1) - (3)].str));
(yyval.u.node) = current_node;
if (xtemplate == (XFileTemplate *)NULL) {
yyerror("Unknown template: " + (yyvsp[(1) - (3)].str));
@ -1762,7 +1764,7 @@ yyreduce:
break;
case 55:
#line 361 "xParser.yxx"
#line 363 "xParser.yxx"
{
if (current_node->is_exact_type(XFileDataNodeTemplate::get_class_type())) {
XFileDataNodeTemplate *current_template =
@ -1776,7 +1778,7 @@ yyreduce:
break;
case 58:
#line 380 "xParser.yxx"
#line 382 "xParser.yxx"
{
// nested references should be added as children too.
current_node->add_child((yyvsp[(2) - (3)].u.node));
@ -1784,14 +1786,14 @@ yyreduce:
break;
case 59:
#line 385 "xParser.yxx"
#line 387 "xParser.yxx"
{
// nested objects are just quietly added as children.
}
break;
case 60:
#line 389 "xParser.yxx"
#line 391 "xParser.yxx"
{
if (current_node->is_exact_type(XFileDataNodeTemplate::get_class_type())) {
XFileDataNodeTemplate *current_template =
@ -1802,7 +1804,7 @@ yyreduce:
break;
case 61:
#line 397 "xParser.yxx"
#line 399 "xParser.yxx"
{
if (current_node->is_exact_type(XFileDataNodeTemplate::get_class_type())) {
XFileDataNodeTemplate *current_template =
@ -1813,7 +1815,7 @@ yyreduce:
break;
case 62:
#line 405 "xParser.yxx"
#line 407 "xParser.yxx"
{
if (current_node->is_exact_type(XFileDataNodeTemplate::get_class_type())) {
XFileDataNodeTemplate *current_template =
@ -1824,13 +1826,13 @@ yyreduce:
break;
case 63:
#line 413 "xParser.yxx"
#line 415 "xParser.yxx"
{
}
break;
case 69:
#line 436 "xParser.yxx"
#line 438 "xParser.yxx"
{
XFileDataNodeTemplate *data_object = x_file->find_data_object((yyvsp[(1) - (1)].str));
if (data_object == (XFileDataObject *)NULL) {
@ -1842,7 +1844,7 @@ yyreduce:
break;
case 70:
#line 445 "xParser.yxx"
#line 447 "xParser.yxx"
{
XFileDataNodeTemplate *data_object = x_file->find_data_object((yyvsp[(2) - (2)].guid));
if (data_object == (XFileDataObject *)NULL) {
@ -1860,7 +1862,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
#line 1864 "y.tab.c"
#line 1866 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

View File

@ -114,6 +114,7 @@ xfile:
template:
TOKEN_TEMPLATE singleword_name TOKEN_OBRACE class_id
{
$<u.node>$ = current_node;
XFileTemplate *templ = new XFileTemplate(x_file, $2, $4);
current_node->add_child(templ);
current_node = templ;
@ -347,6 +348,7 @@ object:
singleword_name optional_multiword_name TOKEN_OBRACE
{
XFileTemplate *xtemplate = x_file->find_template($1);
$<u.node>$ = current_node;
if (xtemplate == (XFileTemplate *)NULL) {
yyerror("Unknown template: " + $1);