mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
add user flags
This commit is contained in:
parent
9222e02084
commit
2504d41baa
@ -99,6 +99,13 @@ public:
|
||||
F_clrecv = 0x0040,
|
||||
F_ownsend = 0x0080,
|
||||
F_airecv = 0x0100,
|
||||
|
||||
// These are reserved for client code use; they are not set or
|
||||
// cleared by any code in this module.
|
||||
F_user_1 = 0x1000,
|
||||
F_user_2 = 0x2000,
|
||||
F_user_3 = 0x4000,
|
||||
F_user_4 = 0x8000,
|
||||
};
|
||||
void add_flag(enum Flags flag);
|
||||
void set_flags(int flags);
|
||||
|
@ -85,7 +85,6 @@ static DCClass *current_class = (DCClass *)NULL;
|
||||
static DCSwitch *current_switch = (DCSwitch *)NULL;
|
||||
static DCAtomicField *current_atomic = (DCAtomicField *)NULL;
|
||||
static DCMolecularField *current_molecular = (DCMolecularField *)NULL;
|
||||
static DCAtomicField::ElementType atomic_element(new DCSimpleParameter(ST_invalid));
|
||||
static DCParameter *current_parameter = (DCParameter *)NULL;
|
||||
static DCPacker default_packer;
|
||||
static DCPacker *current_packer;
|
||||
@ -244,23 +243,23 @@ static const short yyrhs[] =
|
||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||
static const short yyrline[] =
|
||||
{
|
||||
0, 150, 152, 155, 157, 158, 169, 175, 176, 179,
|
||||
181, 187, 189, 195, 200, 200, 207, 209, 215, 220,
|
||||
226, 242, 244, 247, 247, 260, 277, 279, 282, 289,
|
||||
297, 299, 300, 308, 314, 315, 320, 327, 327, 340,
|
||||
357, 359, 362, 369, 377, 379, 380, 388, 390, 391,
|
||||
395, 401, 401, 414, 416, 419, 421, 424, 430, 430,
|
||||
455, 455, 466, 470, 472, 475, 480, 488, 499, 513,
|
||||
527, 556, 562, 570, 575, 582, 589, 598, 604, 610,
|
||||
620, 625, 632, 639, 645, 653, 655, 661, 667, 681,
|
||||
687, 697, 700, 711, 715, 719, 724, 728, 731, 741,
|
||||
745, 750, 754, 758, 762, 766, 766, 774, 774, 782,
|
||||
782, 790, 796, 802, 808, 816, 818, 821, 823, 826,
|
||||
828, 831, 836, 840, 844, 848, 852, 856, 860, 864,
|
||||
868, 872, 876, 880, 884, 888, 892, 896, 900, 904,
|
||||
908, 914, 919, 923, 927, 931, 935, 939, 943, 947,
|
||||
951, 957, 957, 968, 984, 991, 1004, 1009, 1012, 1012,
|
||||
1026, 1028, 1029, 1030, 1040, 1040, 1057, 1062, 1068
|
||||
0, 149, 151, 154, 156, 157, 168, 174, 175, 178,
|
||||
180, 186, 188, 194, 199, 199, 206, 208, 214, 219,
|
||||
225, 241, 243, 246, 246, 259, 276, 278, 281, 288,
|
||||
296, 298, 299, 307, 313, 314, 319, 326, 326, 339,
|
||||
356, 358, 361, 368, 376, 378, 379, 387, 389, 390,
|
||||
394, 400, 400, 413, 415, 418, 420, 423, 428, 428,
|
||||
452, 452, 463, 467, 469, 472, 477, 485, 496, 510,
|
||||
524, 553, 559, 567, 572, 579, 586, 595, 601, 607,
|
||||
617, 622, 629, 636, 642, 650, 652, 658, 664, 678,
|
||||
684, 694, 697, 708, 712, 716, 721, 725, 728, 738,
|
||||
742, 747, 751, 755, 759, 763, 763, 771, 771, 779,
|
||||
779, 787, 793, 799, 805, 813, 815, 818, 820, 823,
|
||||
825, 828, 833, 837, 841, 845, 849, 853, 857, 861,
|
||||
865, 869, 873, 877, 881, 885, 889, 893, 897, 901,
|
||||
905, 911, 916, 920, 924, 928, 932, 936, 940, 944,
|
||||
948, 954, 954, 965, 981, 988, 1001, 1006, 1009, 1009,
|
||||
1023, 1025, 1026, 1027, 1037, 1037, 1054, 1059, 1065
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -1207,7 +1206,7 @@ yyreduce:
|
||||
switch (yyn) {
|
||||
|
||||
case 5:
|
||||
#line 159 "dcParser.yxx"
|
||||
#line 158 "dcParser.yxx"
|
||||
{
|
||||
if (!dc_file->add_class(yyvsp[0].u.dclass)) {
|
||||
DCClass *old_class = dc_file->get_class_by_name(yyvsp[0].u.dclass->get_name());
|
||||
@ -1220,7 +1219,7 @@ case 5:
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
#line 170 "dcParser.yxx"
|
||||
#line 169 "dcParser.yxx"
|
||||
{
|
||||
if (!dc_file->add_switch(yyvsp[0].u.dswitch)) {
|
||||
yyerror("Duplicate class name: " + yyvsp[0].u.dswitch->get_name());
|
||||
@ -1228,49 +1227,49 @@ case 6:
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
#line 182 "dcParser.yxx"
|
||||
#line 181 "dcParser.yxx"
|
||||
{
|
||||
yyval.str = yyvsp[-2].str + string("/") + yyvsp[0].str;
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
#line 190 "dcParser.yxx"
|
||||
#line 189 "dcParser.yxx"
|
||||
{
|
||||
yyval.str = yyvsp[-2].str + string(".") + yyvsp[0].str;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
#line 197 "dcParser.yxx"
|
||||
#line 196 "dcParser.yxx"
|
||||
{
|
||||
dc_file->add_import_module(yyvsp[0].str);
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
#line 201 "dcParser.yxx"
|
||||
#line 200 "dcParser.yxx"
|
||||
{
|
||||
dc_file->add_import_module(yyvsp[-1].str);
|
||||
}
|
||||
break;
|
||||
case 17:
|
||||
#line 210 "dcParser.yxx"
|
||||
#line 209 "dcParser.yxx"
|
||||
{
|
||||
dc_file->add_import_symbol("*");
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
#line 217 "dcParser.yxx"
|
||||
#line 216 "dcParser.yxx"
|
||||
{
|
||||
dc_file->add_import_symbol(yyvsp[0].str);
|
||||
}
|
||||
break;
|
||||
case 19:
|
||||
#line 221 "dcParser.yxx"
|
||||
#line 220 "dcParser.yxx"
|
||||
{
|
||||
dc_file->add_import_symbol(yyvsp[0].str);
|
||||
}
|
||||
break;
|
||||
case 20:
|
||||
#line 228 "dcParser.yxx"
|
||||
#line 227 "dcParser.yxx"
|
||||
{
|
||||
DCTypedef *dtypedef = new DCTypedef(yyvsp[0].u.parameter);
|
||||
|
||||
@ -1285,21 +1284,21 @@ case 20:
|
||||
}
|
||||
break;
|
||||
case 23:
|
||||
#line 249 "dcParser.yxx"
|
||||
#line 248 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.dclass = current_class;
|
||||
current_class = new DCClass(yyvsp[0].str, false, false);
|
||||
}
|
||||
break;
|
||||
case 24:
|
||||
#line 254 "dcParser.yxx"
|
||||
#line 253 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.dclass = current_class;
|
||||
current_class = yyvsp[-4].u.dclass;
|
||||
}
|
||||
break;
|
||||
case 25:
|
||||
#line 262 "dcParser.yxx"
|
||||
#line 261 "dcParser.yxx"
|
||||
{
|
||||
DCClass *dclass = dc_file->get_class_by_name(yyvsp[0].str);
|
||||
if (dclass == (DCClass *)NULL) {
|
||||
@ -1315,7 +1314,7 @@ case 25:
|
||||
}
|
||||
break;
|
||||
case 28:
|
||||
#line 284 "dcParser.yxx"
|
||||
#line 283 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
|
||||
current_class->add_parent(yyvsp[0].u.dclass);
|
||||
@ -1323,7 +1322,7 @@ case 28:
|
||||
}
|
||||
break;
|
||||
case 29:
|
||||
#line 290 "dcParser.yxx"
|
||||
#line 289 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
|
||||
current_class->add_parent(yyvsp[0].u.dclass);
|
||||
@ -1331,7 +1330,7 @@ case 29:
|
||||
}
|
||||
break;
|
||||
case 32:
|
||||
#line 301 "dcParser.yxx"
|
||||
#line 300 "dcParser.yxx"
|
||||
{
|
||||
if (!current_class->add_field(yyvsp[0].u.field)) {
|
||||
yyerror("Duplicate field name: " + yyvsp[0].u.field->get_name());
|
||||
@ -1339,42 +1338,42 @@ case 32:
|
||||
}
|
||||
break;
|
||||
case 33:
|
||||
#line 310 "dcParser.yxx"
|
||||
#line 309 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = yyvsp[-1].u.field;
|
||||
yyval.u.field->set_flags(yyvsp[0].u.s_int);
|
||||
}
|
||||
break;
|
||||
case 35:
|
||||
#line 316 "dcParser.yxx"
|
||||
#line 315 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = yyvsp[-2].u.parameter;
|
||||
yyval.u.field->set_flags(yyvsp[-1].u.s_int);
|
||||
}
|
||||
break;
|
||||
case 36:
|
||||
#line 321 "dcParser.yxx"
|
||||
#line 320 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = yyvsp[-1].u.parameter;
|
||||
yyval.u.field->set_flags(yyvsp[0].u.s_int);
|
||||
}
|
||||
break;
|
||||
case 37:
|
||||
#line 329 "dcParser.yxx"
|
||||
#line 328 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.dclass = current_class;
|
||||
current_class = new DCClass(yyvsp[0].str, true, false);
|
||||
}
|
||||
break;
|
||||
case 38:
|
||||
#line 334 "dcParser.yxx"
|
||||
#line 333 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.dclass = current_class;
|
||||
current_class = yyvsp[-4].u.dclass;
|
||||
}
|
||||
break;
|
||||
case 39:
|
||||
#line 342 "dcParser.yxx"
|
||||
#line 341 "dcParser.yxx"
|
||||
{
|
||||
DCClass *dstruct = dc_file->get_class_by_name(yyvsp[0].str);
|
||||
if (dstruct == (DCClass *)NULL) {
|
||||
@ -1390,7 +1389,7 @@ case 39:
|
||||
}
|
||||
break;
|
||||
case 42:
|
||||
#line 364 "dcParser.yxx"
|
||||
#line 363 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
|
||||
current_class->add_parent(yyvsp[0].u.dclass);
|
||||
@ -1398,7 +1397,7 @@ case 42:
|
||||
}
|
||||
break;
|
||||
case 43:
|
||||
#line 370 "dcParser.yxx"
|
||||
#line 369 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.dclass != (DCClass *)NULL) {
|
||||
current_class->add_parent(yyvsp[0].u.dclass);
|
||||
@ -1406,7 +1405,7 @@ case 43:
|
||||
}
|
||||
break;
|
||||
case 46:
|
||||
#line 381 "dcParser.yxx"
|
||||
#line 380 "dcParser.yxx"
|
||||
{
|
||||
if (!current_class->add_field(yyvsp[0].u.field)) {
|
||||
yyerror("Duplicate field name: " + yyvsp[0].u.field->get_name());
|
||||
@ -1414,40 +1413,39 @@ case 46:
|
||||
}
|
||||
break;
|
||||
case 49:
|
||||
#line 392 "dcParser.yxx"
|
||||
#line 391 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = yyvsp[-1].u.parameter;
|
||||
}
|
||||
break;
|
||||
case 50:
|
||||
#line 396 "dcParser.yxx"
|
||||
#line 395 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = yyvsp[0].u.parameter;
|
||||
}
|
||||
break;
|
||||
case 51:
|
||||
#line 403 "dcParser.yxx"
|
||||
#line 402 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = current_atomic;
|
||||
current_atomic = new DCAtomicField(yyvsp[-1].str);
|
||||
}
|
||||
break;
|
||||
case 52:
|
||||
#line 408 "dcParser.yxx"
|
||||
#line 407 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = current_atomic;
|
||||
current_atomic = yyvsp[-2].u.atomic;
|
||||
}
|
||||
break;
|
||||
case 57:
|
||||
#line 426 "dcParser.yxx"
|
||||
#line 425 "dcParser.yxx"
|
||||
{
|
||||
atomic_element = DCAtomicField::ElementType(yyvsp[0].u.parameter);
|
||||
current_atomic->add_element(atomic_element);
|
||||
current_atomic->add_element(yyvsp[0].u.parameter);
|
||||
}
|
||||
break;
|
||||
case 58:
|
||||
#line 431 "dcParser.yxx"
|
||||
#line 429 "dcParser.yxx"
|
||||
{
|
||||
current_packer = &default_packer;
|
||||
current_packer->clear_data();
|
||||
@ -1455,12 +1453,11 @@ case 58:
|
||||
}
|
||||
break;
|
||||
case 59:
|
||||
#line 437 "dcParser.yxx"
|
||||
#line 435 "dcParser.yxx"
|
||||
{
|
||||
bool is_valid = yyvsp[-3].u.parameter->is_valid();
|
||||
atomic_element = DCAtomicField::ElementType(yyvsp[-3].u.parameter);
|
||||
if (current_packer->end_pack()) {
|
||||
atomic_element.set_default_value(current_packer->get_string());
|
||||
yyvsp[-3].u.parameter->set_default_value(current_packer->get_string());
|
||||
|
||||
} else {
|
||||
if (is_valid) {
|
||||
@ -1470,29 +1467,29 @@ case 59:
|
||||
// error (there's no way for us to validate the syntax). So we'll
|
||||
// just ignore the default value in this case.
|
||||
}
|
||||
current_atomic->add_element(atomic_element);
|
||||
current_atomic->add_element(yyvsp[-3].u.parameter);
|
||||
}
|
||||
break;
|
||||
case 60:
|
||||
#line 457 "dcParser.yxx"
|
||||
#line 454 "dcParser.yxx"
|
||||
{
|
||||
current_parameter = yyvsp[0].u.parameter;
|
||||
}
|
||||
break;
|
||||
case 61:
|
||||
#line 461 "dcParser.yxx"
|
||||
#line 458 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.parameter = yyvsp[0].u.parameter;
|
||||
}
|
||||
break;
|
||||
case 65:
|
||||
#line 477 "dcParser.yxx"
|
||||
#line 474 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.parameter = new DCSimpleParameter(yyvsp[0].u.subatomic);
|
||||
}
|
||||
break;
|
||||
case 66:
|
||||
#line 481 "dcParser.yxx"
|
||||
#line 478 "dcParser.yxx"
|
||||
{
|
||||
DCSimpleParameter *simple_param = new DCSimpleParameter(yyvsp[-3].u.subatomic);
|
||||
if (!simple_param->set_range(double_range)) {
|
||||
@ -1502,7 +1499,7 @@ case 66:
|
||||
}
|
||||
break;
|
||||
case 67:
|
||||
#line 489 "dcParser.yxx"
|
||||
#line 486 "dcParser.yxx"
|
||||
{
|
||||
DCSimpleParameter *simple_param = new DCSimpleParameter(yyvsp[-2].u.subatomic);
|
||||
if (yyvsp[0].u.s_uint == 0) {
|
||||
@ -1515,7 +1512,7 @@ case 67:
|
||||
}
|
||||
break;
|
||||
case 68:
|
||||
#line 500 "dcParser.yxx"
|
||||
#line 497 "dcParser.yxx"
|
||||
{
|
||||
DCSimpleParameter *simple_param = new DCSimpleParameter(yyvsp[-5].u.subatomic);
|
||||
if (yyvsp[-3].u.s_uint == 0) {
|
||||
@ -1531,7 +1528,7 @@ case 68:
|
||||
}
|
||||
break;
|
||||
case 69:
|
||||
#line 514 "dcParser.yxx"
|
||||
#line 511 "dcParser.yxx"
|
||||
{
|
||||
DCSimpleParameter *simple_param = new DCSimpleParameter(yyvsp[-5].u.subatomic);
|
||||
if (yyvsp[0].u.s_uint == 0) {
|
||||
@ -1547,7 +1544,7 @@ case 69:
|
||||
}
|
||||
break;
|
||||
case 70:
|
||||
#line 528 "dcParser.yxx"
|
||||
#line 525 "dcParser.yxx"
|
||||
{
|
||||
DCTypedef *dtypedef = dc_file->get_typedef_by_name(yyvsp[0].str);
|
||||
if (dtypedef == (DCTypedef *)NULL) {
|
||||
@ -1578,7 +1575,7 @@ case 70:
|
||||
}
|
||||
break;
|
||||
case 71:
|
||||
#line 557 "dcParser.yxx"
|
||||
#line 554 "dcParser.yxx"
|
||||
{
|
||||
// This is an inline struct definition.
|
||||
dc_file->add_thing_to_delete(yyvsp[0].u.dclass);
|
||||
@ -1586,7 +1583,7 @@ case 71:
|
||||
}
|
||||
break;
|
||||
case 72:
|
||||
#line 563 "dcParser.yxx"
|
||||
#line 560 "dcParser.yxx"
|
||||
{
|
||||
// This is an inline switch definition.
|
||||
dc_file->add_thing_to_delete(yyvsp[0].u.dswitch);
|
||||
@ -1594,13 +1591,13 @@ case 72:
|
||||
}
|
||||
break;
|
||||
case 73:
|
||||
#line 572 "dcParser.yxx"
|
||||
#line 569 "dcParser.yxx"
|
||||
{
|
||||
double_range.clear();
|
||||
}
|
||||
break;
|
||||
case 74:
|
||||
#line 576 "dcParser.yxx"
|
||||
#line 573 "dcParser.yxx"
|
||||
{
|
||||
double_range.clear();
|
||||
if (!double_range.add_range(yyvsp[0].u.real, yyvsp[0].u.real)) {
|
||||
@ -1609,7 +1606,7 @@ case 74:
|
||||
}
|
||||
break;
|
||||
case 75:
|
||||
#line 583 "dcParser.yxx"
|
||||
#line 580 "dcParser.yxx"
|
||||
{
|
||||
double_range.clear();
|
||||
if (!double_range.add_range(yyvsp[-2].u.real, yyvsp[0].u.real)) {
|
||||
@ -1618,7 +1615,7 @@ case 75:
|
||||
}
|
||||
break;
|
||||
case 76:
|
||||
#line 590 "dcParser.yxx"
|
||||
#line 587 "dcParser.yxx"
|
||||
{
|
||||
double_range.clear();
|
||||
if (yyvsp[0].u.real >= 0) {
|
||||
@ -1629,7 +1626,7 @@ case 76:
|
||||
}
|
||||
break;
|
||||
case 77:
|
||||
#line 599 "dcParser.yxx"
|
||||
#line 596 "dcParser.yxx"
|
||||
{
|
||||
if (!double_range.add_range(yyvsp[0].u.real, yyvsp[0].u.real)) {
|
||||
yyerror("Overlapping range");
|
||||
@ -1637,7 +1634,7 @@ case 77:
|
||||
}
|
||||
break;
|
||||
case 78:
|
||||
#line 605 "dcParser.yxx"
|
||||
#line 602 "dcParser.yxx"
|
||||
{
|
||||
if (!double_range.add_range(yyvsp[-2].u.real, yyvsp[0].u.real)) {
|
||||
yyerror("Overlapping range");
|
||||
@ -1645,7 +1642,7 @@ case 78:
|
||||
}
|
||||
break;
|
||||
case 79:
|
||||
#line 611 "dcParser.yxx"
|
||||
#line 608 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.real >= 0) {
|
||||
yyerror("Syntax error");
|
||||
@ -1655,13 +1652,13 @@ case 79:
|
||||
}
|
||||
break;
|
||||
case 80:
|
||||
#line 622 "dcParser.yxx"
|
||||
#line 619 "dcParser.yxx"
|
||||
{
|
||||
uint_range.clear();
|
||||
}
|
||||
break;
|
||||
case 81:
|
||||
#line 626 "dcParser.yxx"
|
||||
#line 623 "dcParser.yxx"
|
||||
{
|
||||
uint_range.clear();
|
||||
if (!uint_range.add_range(yyvsp[0].u.s_uint, yyvsp[0].u.s_uint)) {
|
||||
@ -1670,7 +1667,7 @@ case 81:
|
||||
}
|
||||
break;
|
||||
case 82:
|
||||
#line 633 "dcParser.yxx"
|
||||
#line 630 "dcParser.yxx"
|
||||
{
|
||||
uint_range.clear();
|
||||
if (!uint_range.add_range(yyvsp[-2].u.s_uint, yyvsp[0].u.s_uint)) {
|
||||
@ -1679,7 +1676,7 @@ case 82:
|
||||
}
|
||||
break;
|
||||
case 83:
|
||||
#line 640 "dcParser.yxx"
|
||||
#line 637 "dcParser.yxx"
|
||||
{
|
||||
if (!uint_range.add_range(yyvsp[0].u.s_uint, yyvsp[0].u.s_uint)) {
|
||||
yyerror("Overlapping range");
|
||||
@ -1687,7 +1684,7 @@ case 83:
|
||||
}
|
||||
break;
|
||||
case 84:
|
||||
#line 646 "dcParser.yxx"
|
||||
#line 643 "dcParser.yxx"
|
||||
{
|
||||
if (!uint_range.add_range(yyvsp[-2].u.s_uint, yyvsp[0].u.s_uint)) {
|
||||
yyerror("Overlapping range");
|
||||
@ -1695,20 +1692,20 @@ case 84:
|
||||
}
|
||||
break;
|
||||
case 86:
|
||||
#line 656 "dcParser.yxx"
|
||||
#line 653 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.parameter = new DCArrayParameter(yyvsp[-3].u.parameter, uint_range);
|
||||
}
|
||||
break;
|
||||
case 87:
|
||||
#line 663 "dcParser.yxx"
|
||||
#line 660 "dcParser.yxx"
|
||||
{
|
||||
current_parameter->set_name(yyvsp[0].str);
|
||||
yyval.u.parameter = current_parameter;
|
||||
}
|
||||
break;
|
||||
case 88:
|
||||
#line 668 "dcParser.yxx"
|
||||
#line 665 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.s_uint == 0) {
|
||||
yyerror("Invalid divisor.");
|
||||
@ -1724,13 +1721,13 @@ case 88:
|
||||
}
|
||||
break;
|
||||
case 89:
|
||||
#line 682 "dcParser.yxx"
|
||||
#line 679 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.parameter = new DCArrayParameter(yyvsp[-3].u.parameter, uint_range);
|
||||
}
|
||||
break;
|
||||
case 90:
|
||||
#line 689 "dcParser.yxx"
|
||||
#line 686 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].str.length() != 1) {
|
||||
yyerror("Single character required.");
|
||||
@ -1741,7 +1738,7 @@ case 90:
|
||||
}
|
||||
break;
|
||||
case 92:
|
||||
#line 702 "dcParser.yxx"
|
||||
#line 699 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_uint = (unsigned int)yyvsp[0].u.uint64;
|
||||
if (yyval.u.s_uint != yyvsp[0].u.uint64) {
|
||||
@ -1751,19 +1748,19 @@ case 92:
|
||||
}
|
||||
break;
|
||||
case 95:
|
||||
#line 721 "dcParser.yxx"
|
||||
#line 718 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.real = (double)yyvsp[0].u.uint64;
|
||||
}
|
||||
break;
|
||||
case 96:
|
||||
#line 725 "dcParser.yxx"
|
||||
#line 722 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.real = (double)yyvsp[0].u.int64;
|
||||
}
|
||||
break;
|
||||
case 98:
|
||||
#line 733 "dcParser.yxx"
|
||||
#line 730 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].str.length() != 1) {
|
||||
yyerror("Single character required.");
|
||||
@ -1774,73 +1771,73 @@ case 98:
|
||||
}
|
||||
break;
|
||||
case 100:
|
||||
#line 747 "dcParser.yxx"
|
||||
#line 744 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pack_int64(yyvsp[0].u.int64);
|
||||
}
|
||||
break;
|
||||
case 101:
|
||||
#line 751 "dcParser.yxx"
|
||||
#line 748 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pack_uint64(yyvsp[0].u.uint64);
|
||||
}
|
||||
break;
|
||||
case 102:
|
||||
#line 755 "dcParser.yxx"
|
||||
#line 752 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pack_double(yyvsp[0].u.real);
|
||||
}
|
||||
break;
|
||||
case 103:
|
||||
#line 759 "dcParser.yxx"
|
||||
#line 756 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pack_string(yyvsp[0].str);
|
||||
}
|
||||
break;
|
||||
case 104:
|
||||
#line 763 "dcParser.yxx"
|
||||
#line 760 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pack_literal_value(yyvsp[0].str);
|
||||
}
|
||||
break;
|
||||
case 105:
|
||||
#line 767 "dcParser.yxx"
|
||||
#line 764 "dcParser.yxx"
|
||||
{
|
||||
current_packer->push();
|
||||
}
|
||||
break;
|
||||
case 106:
|
||||
#line 771 "dcParser.yxx"
|
||||
#line 768 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pop();
|
||||
}
|
||||
break;
|
||||
case 107:
|
||||
#line 775 "dcParser.yxx"
|
||||
#line 772 "dcParser.yxx"
|
||||
{
|
||||
current_packer->push();
|
||||
}
|
||||
break;
|
||||
case 108:
|
||||
#line 779 "dcParser.yxx"
|
||||
#line 776 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pop();
|
||||
}
|
||||
break;
|
||||
case 109:
|
||||
#line 783 "dcParser.yxx"
|
||||
#line 780 "dcParser.yxx"
|
||||
{
|
||||
current_packer->push();
|
||||
}
|
||||
break;
|
||||
case 110:
|
||||
#line 787 "dcParser.yxx"
|
||||
#line 784 "dcParser.yxx"
|
||||
{
|
||||
current_packer->pop();
|
||||
}
|
||||
break;
|
||||
case 111:
|
||||
#line 791 "dcParser.yxx"
|
||||
#line 788 "dcParser.yxx"
|
||||
{
|
||||
for (unsigned int i = 0; i < yyvsp[0].u.s_uint; i++) {
|
||||
current_packer->pack_int64(yyvsp[-2].u.int64);
|
||||
@ -1848,7 +1845,7 @@ case 111:
|
||||
}
|
||||
break;
|
||||
case 112:
|
||||
#line 797 "dcParser.yxx"
|
||||
#line 794 "dcParser.yxx"
|
||||
{
|
||||
for (unsigned int i = 0; i < yyvsp[0].u.s_uint; i++) {
|
||||
current_packer->pack_uint64(yyvsp[-2].u.uint64);
|
||||
@ -1856,7 +1853,7 @@ case 112:
|
||||
}
|
||||
break;
|
||||
case 113:
|
||||
#line 803 "dcParser.yxx"
|
||||
#line 800 "dcParser.yxx"
|
||||
{
|
||||
for (unsigned int i = 0; i < yyvsp[0].u.s_uint; i++) {
|
||||
current_packer->pack_double(yyvsp[-2].u.real);
|
||||
@ -1864,7 +1861,7 @@ case 113:
|
||||
}
|
||||
break;
|
||||
case 114:
|
||||
#line 809 "dcParser.yxx"
|
||||
#line 806 "dcParser.yxx"
|
||||
{
|
||||
for (unsigned int i = 0; i < yyvsp[0].u.s_uint; i++) {
|
||||
current_packer->pack_literal_value(yyvsp[-2].str);
|
||||
@ -1872,199 +1869,199 @@ case 114:
|
||||
}
|
||||
break;
|
||||
case 121:
|
||||
#line 833 "dcParser.yxx"
|
||||
#line 830 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_int8;
|
||||
}
|
||||
break;
|
||||
case 122:
|
||||
#line 837 "dcParser.yxx"
|
||||
#line 834 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_int16;
|
||||
}
|
||||
break;
|
||||
case 123:
|
||||
#line 841 "dcParser.yxx"
|
||||
#line 838 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_int32;
|
||||
}
|
||||
break;
|
||||
case 124:
|
||||
#line 845 "dcParser.yxx"
|
||||
#line 842 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_int64;
|
||||
}
|
||||
break;
|
||||
case 125:
|
||||
#line 849 "dcParser.yxx"
|
||||
#line 846 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint8;
|
||||
}
|
||||
break;
|
||||
case 126:
|
||||
#line 853 "dcParser.yxx"
|
||||
#line 850 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint16;
|
||||
}
|
||||
break;
|
||||
case 127:
|
||||
#line 857 "dcParser.yxx"
|
||||
#line 854 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint32;
|
||||
}
|
||||
break;
|
||||
case 128:
|
||||
#line 861 "dcParser.yxx"
|
||||
#line 858 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint64;
|
||||
}
|
||||
break;
|
||||
case 129:
|
||||
#line 865 "dcParser.yxx"
|
||||
#line 862 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_float64;
|
||||
}
|
||||
break;
|
||||
case 130:
|
||||
#line 869 "dcParser.yxx"
|
||||
#line 866 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_string;
|
||||
}
|
||||
break;
|
||||
case 131:
|
||||
#line 873 "dcParser.yxx"
|
||||
#line 870 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_blob;
|
||||
}
|
||||
break;
|
||||
case 132:
|
||||
#line 877 "dcParser.yxx"
|
||||
#line 874 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_blob32;
|
||||
}
|
||||
break;
|
||||
case 133:
|
||||
#line 881 "dcParser.yxx"
|
||||
#line 878 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_int8array;
|
||||
}
|
||||
break;
|
||||
case 134:
|
||||
#line 885 "dcParser.yxx"
|
||||
#line 882 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_int16array;
|
||||
}
|
||||
break;
|
||||
case 135:
|
||||
#line 889 "dcParser.yxx"
|
||||
#line 886 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_int32array;
|
||||
}
|
||||
break;
|
||||
case 136:
|
||||
#line 893 "dcParser.yxx"
|
||||
#line 890 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint8array;
|
||||
}
|
||||
break;
|
||||
case 137:
|
||||
#line 897 "dcParser.yxx"
|
||||
#line 894 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint16array;
|
||||
}
|
||||
break;
|
||||
case 138:
|
||||
#line 901 "dcParser.yxx"
|
||||
#line 898 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint32array;
|
||||
}
|
||||
break;
|
||||
case 139:
|
||||
#line 905 "dcParser.yxx"
|
||||
#line 902 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_uint32uint8array;
|
||||
}
|
||||
break;
|
||||
case 140:
|
||||
#line 909 "dcParser.yxx"
|
||||
#line 906 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.subatomic = ST_char;
|
||||
}
|
||||
break;
|
||||
case 141:
|
||||
#line 916 "dcParser.yxx"
|
||||
#line 913 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = 0;
|
||||
}
|
||||
break;
|
||||
case 142:
|
||||
#line 920 "dcParser.yxx"
|
||||
#line 917 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_required;
|
||||
}
|
||||
break;
|
||||
case 143:
|
||||
#line 924 "dcParser.yxx"
|
||||
#line 921 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_broadcast;
|
||||
}
|
||||
break;
|
||||
case 144:
|
||||
#line 928 "dcParser.yxx"
|
||||
#line 925 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_p2p;
|
||||
}
|
||||
break;
|
||||
case 145:
|
||||
#line 932 "dcParser.yxx"
|
||||
#line 929 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_ram;
|
||||
}
|
||||
break;
|
||||
case 146:
|
||||
#line 936 "dcParser.yxx"
|
||||
#line 933 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_db;
|
||||
}
|
||||
break;
|
||||
case 147:
|
||||
#line 940 "dcParser.yxx"
|
||||
#line 937 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_clsend;
|
||||
}
|
||||
break;
|
||||
case 148:
|
||||
#line 944 "dcParser.yxx"
|
||||
#line 941 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_clrecv;
|
||||
}
|
||||
break;
|
||||
case 149:
|
||||
#line 948 "dcParser.yxx"
|
||||
#line 945 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_ownsend;
|
||||
}
|
||||
break;
|
||||
case 150:
|
||||
#line 952 "dcParser.yxx"
|
||||
#line 949 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.s_int = yyvsp[-1].u.s_int | DCAtomicField::F_airecv;
|
||||
}
|
||||
break;
|
||||
case 151:
|
||||
#line 959 "dcParser.yxx"
|
||||
#line 956 "dcParser.yxx"
|
||||
{
|
||||
current_molecular = new DCMolecularField(yyvsp[-1].str);
|
||||
}
|
||||
break;
|
||||
case 152:
|
||||
#line 963 "dcParser.yxx"
|
||||
#line 960 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = current_molecular;
|
||||
}
|
||||
break;
|
||||
case 153:
|
||||
#line 970 "dcParser.yxx"
|
||||
#line 967 "dcParser.yxx"
|
||||
{
|
||||
DCField *field = current_class->get_field_by_name(yyvsp[0].str);
|
||||
yyval.u.atomic = (DCAtomicField *)NULL;
|
||||
@ -2079,7 +2076,7 @@ case 153:
|
||||
}
|
||||
break;
|
||||
case 154:
|
||||
#line 986 "dcParser.yxx"
|
||||
#line 983 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.atomic != (DCAtomicField *)NULL) {
|
||||
current_molecular->add_atomic(yyvsp[0].u.atomic);
|
||||
@ -2087,7 +2084,7 @@ case 154:
|
||||
}
|
||||
break;
|
||||
case 155:
|
||||
#line 992 "dcParser.yxx"
|
||||
#line 989 "dcParser.yxx"
|
||||
{
|
||||
if (yyvsp[0].u.atomic != (DCAtomicField *)NULL) {
|
||||
current_molecular->add_atomic(yyvsp[0].u.atomic);
|
||||
@ -2100,27 +2097,27 @@ case 155:
|
||||
}
|
||||
break;
|
||||
case 156:
|
||||
#line 1006 "dcParser.yxx"
|
||||
#line 1003 "dcParser.yxx"
|
||||
{
|
||||
yyval.str = "";
|
||||
}
|
||||
break;
|
||||
case 158:
|
||||
#line 1014 "dcParser.yxx"
|
||||
#line 1011 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.dswitch = current_switch;
|
||||
current_switch = new DCSwitch(yyvsp[-4].str, yyvsp[-2].u.parameter);
|
||||
}
|
||||
break;
|
||||
case 159:
|
||||
#line 1019 "dcParser.yxx"
|
||||
#line 1016 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.dswitch = current_switch;
|
||||
current_switch = (DCSwitch *)yyvsp[-2].u.parameter;
|
||||
}
|
||||
break;
|
||||
case 163:
|
||||
#line 1031 "dcParser.yxx"
|
||||
#line 1028 "dcParser.yxx"
|
||||
{
|
||||
if (current_switch->get_num_cases() == 0) {
|
||||
yyerror("case declaration required before first element");
|
||||
@ -2130,7 +2127,7 @@ case 163:
|
||||
}
|
||||
break;
|
||||
case 164:
|
||||
#line 1042 "dcParser.yxx"
|
||||
#line 1039 "dcParser.yxx"
|
||||
{
|
||||
current_packer = &default_packer;
|
||||
current_packer->clear_data();
|
||||
@ -2138,7 +2135,7 @@ case 164:
|
||||
}
|
||||
break;
|
||||
case 165:
|
||||
#line 1048 "dcParser.yxx"
|
||||
#line 1045 "dcParser.yxx"
|
||||
{
|
||||
if (!current_packer->end_pack()) {
|
||||
yyerror("Invalid value for switch parameter");
|
||||
@ -2148,13 +2145,13 @@ case 165:
|
||||
}
|
||||
break;
|
||||
case 166:
|
||||
#line 1059 "dcParser.yxx"
|
||||
#line 1056 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = yyvsp[-1].u.parameter;
|
||||
}
|
||||
break;
|
||||
case 167:
|
||||
#line 1063 "dcParser.yxx"
|
||||
#line 1060 "dcParser.yxx"
|
||||
{
|
||||
yyval.u.field = yyvsp[0].u.parameter;
|
||||
}
|
||||
@ -2392,4 +2389,4 @@ yyreturn:
|
||||
#endif
|
||||
return yyresult;
|
||||
}
|
||||
#line 1071 "dcParser.yxx"
|
||||
#line 1068 "dcParser.yxx"
|
||||
|
Loading…
x
Reference in New Issue
Block a user