Lines Matching refs:type

128 %type <i> integer
129 %type <f> float
130 %type <id> id
131 %type <d> archive array arrayfields data expr message msgfield
132 %type <d> type typefield type_or_define
133 %type <l> msgfields typefields typedeffields
134 %type <F> typedeffield
135 %type <T> datatype typecast
201 $$.type = $1;
208 $$.type = $1;
215 $$.type = $1;
222 $$.type = $1;
232 add_resource($2, $3.type.code, $3);
300 | expr { $$ = $1; $$.type = get_type("raw"); }
346 $$.type.code = $1;
352 $$.type.code = $1;
394 type
452 | STRING { $$ = cast($1.type, $1); }
453 | RAW { $$ = cast($1.type, $1); }
454 | array { $$ = cast($1.type, $1); }
455 | message { $$ = cast($1.type, $1); }
456 | archive { $$ = cast($1.type, $1); }
457 | type { $$ = cast($1.type, $1); }
467 | typecast type { $$ = cast($1, $2); }
538 type_t type;
539 type.code = code;
540 type.name = name;
541 type.count = 0;
542 type.fields = NULL;
543 type.def_id = 1;
544 type.def_name = NULL;
546 type_table.insert(make_pair(name, type));
554 abort_compile(RDEF_COMPILE_ERR, "duplicate type %s", name);
556 type_t type;
557 type.code = code;
558 type.name = name;
559 type.count = list.count;
560 type.fields = (field_t*) list.items;
561 type.def_id = 1;
562 type.def_name = NULL;
565 type.def_id = id.id;
568 type.def_name = id.name;
570 type_table.insert(make_pair(name, type));
575 is_builtin_type(type_t type)
577 return type.count == 0;
594 abort_compile(RDEF_COMPILE_ERR, "unknown type %s", name);
620 make_data(size_t size, type_t type)
623 out.type = type;
662 out.type = get_type("raw");
698 if (data.type.code == B_STRING_TYPE)
717 msg->AddData(data.name, data.type.code, data.ptr, data.size, false);
744 make_default(type_t type)
748 if (is_builtin_type(type)) {
749 switch (type.code) {
751 out = make_data(sizeof(bool), type);
757 out = make_data(sizeof(uint8), type);
763 out = make_data(sizeof(uint16), type);
772 out = make_data(sizeof(uint32), type);
779 out = make_data(sizeof(uint64), type);
784 out = make_data(sizeof(float), type);
789 out = make_data(sizeof(double), type);
794 out = make_data(sizeof(char), type);
799 out = make_data(0, type);
810 // proper length when we added them to the type.
813 for (int32 t = 0; t < type.count; ++t) {
814 size += type.fields[t].data.size;
817 out = make_data(size, type);
820 for (int32 t = 0; t < type.count; ++t) {
821 data_t field_data = type.fields[t].data;
832 fill_slots(type_t type, list_t list)
834 data_t* slots = (data_t*)alloc_mem(type.count * sizeof(data_t));
835 memset(slots, 0, type.count * sizeof(data_t));
842 for (int32 k = 0; k < type.count; ++k) {
844 slots[k] = cast(type.fields[k].type, data);
855 for (int32 k = 0; k < type.count; ++k) {
856 if (strcmp(type.fields[k].name, data.name) == 0) {
860 slots[k] = cast(type.fields[k].type, data);
877 convert_slots(type_t type, data_t* slots)
880 for (int32 k = 0; k < type.count; ++k) {
883 size += type.fields[k].data.size;
884 } else if (type.fields[k].resize != 0)
885 size += type.fields[k].resize;
890 data_t out = make_data(size, type);
893 for (int32 k = 0; k < type.count; ++k) {
896 memcpy(ptr, type.fields[k].data.ptr, type.fields[k].data.size);
897 ptr += type.fields[k].data.size;
898 } else if (type.fields[k].resize != 0) {
899 data_t temp = resize_data(slots[k], type.fields[k].resize);
920 // specified, but not necessarily to a field from the type definition.
924 // not fill in we use the default value from the type definition. This
927 type_t type = get_type(name);
929 data_t* slots = fill_slots(type, list);
930 data_t out = convert_slots(type, slots);
1009 switch (data.type.code) {
1035 abort_compile(RDEF_COMPILE_ERR, "cannot cast to this type");
1048 switch (data.type.code) {
1074 abort_compile(RDEF_COMPILE_ERR, "cannot cast to this type");
1087 switch (data.type.code) {
1113 abort_compile(RDEF_COMPILE_ERR, "cannot cast to this type");
1126 switch (data.type.code) {
1152 abort_compile(RDEF_COMPILE_ERR, "cannot cast to this type");
1165 switch (data.type.code) {
1195 abort_compile(RDEF_COMPILE_ERR, "cannot cast to this type");
1208 switch (data.type.code) {
1238 abort_compile(RDEF_COMPILE_ERR, "cannot cast to this type");
1249 if (same_type(newType, data.type)) {
1251 // message, or user-defined type
1252 // to another type, only to same
1286 data.type = newType;
1291 abort_compile(RDEF_COMPILE_ERR, "cannot cast to this type");
1371 id.id = data.type.def_id;
1374 id.name = (char*)data.type.def_name;
1399 fields[0].type = get_type("float");
1402 fields[0].data = make_default(fields[0].type);
1403 fields[1].type = get_type("float");
1406 fields[1].data = make_default(fields[1].type);
1408 type_t type;
1409 type.code = B_POINT_TYPE;
1410 type.name = "point";
1411 type.fields = fields;
1412 type.count = 2;
1413 type.def_id = 1;
1414 type.def_name = NULL;
1416 type_table.insert(make_pair(type.name, type));
1424 fields[0].type = get_type("float");
1427 fields[0].data = make_default(fields[0].type);
1428 fields[1].type = get_type("float");
1431 fields[1].data = make_default(fields[1].type);
1432 fields[2].type = get_type("float");
1435 fields[2].data = make_default(fields[2].type);
1436 fields[3].type = get_type("float");
1439 fields[3].data = make_default(fields[3].type);
1441 type_t type;
1442 type.code = B_RECT_TYPE;
1443 type.name = "rect";
1444 type.fields = fields;
1445 type.count = 4;
1446 type.def_id = 1;
1447 type.def_name = NULL;
1449 type_table.insert(make_pair(type.name, type));
1457 fields[0].type = get_type("uint8");
1460 fields[0].data = make_default(fields[0].type);
1461 fields[1].type = get_type("uint8");
1464 fields[1].data = make_default(fields[1].type);
1465 fields[2].type = get_type("uint8");
1468 fields[2].data = make_default(fields[2].type);
1469 fields[3].type = get_type("uint8");
1472 fields[3].data = make_default(fields[3].type);
1476 type_t type;
1477 type.code = B_RGB_COLOR_TYPE;
1478 type.name = "rgb_color";
1479 type.fields = fields;
1480 type.count = 4;
1481 type.def_id = 1;
1482 type.def_name = NULL;
1484 type_table.insert(make_pair(type.name, type));
1492 fields[0].type = get_type("string");
1495 fields[0].data = make_default(fields[0].type);
1497 type_t type;
1498 type.code = 'MIMS';
1499 type.name = "app_signature";
1500 type.fields = fields;
1501 type.count = 1;
1502 type.def_id = 1;
1503 type.def_name = "BEOS:APP_SIG";
1505 type_table.insert(make_pair(type.name, type));
1513 fields[0].type = get_type("string");
1516 fields[0].data = make_default(fields[0].type);
1518 type_t type;
1519 type.code = B_STRING_TYPE;
1520 type.name = "app_name_catalog_entry";
1521 type.fields = fields;
1522 type.count = 1;
1523 type.def_id = 1;
1524 type.def_name = "SYS:NAME";
1526 type_table.insert(make_pair(type.name, type));
1534 fields[0].type = get_type("uint32");
1537 fields[0].data = make_default(fields[0].type);
1539 type_t type;
1540 type.code = 'APPF';
1541 type.name = "app_flags";
1542 type.fields = fields;
1543 type.count = 1;
1544 type.def_id = 1;
1545 type.def_name = "BEOS:APP_FLAGS";
1547 type_table.insert(make_pair(type.name, type));
1555 fields[0].type = get_type("uint32");
1558 fields[0].data = make_default(fields[0].type);
1559 fields[1].type = get_type("uint32");
1562 fields[1].data = make_default(fields[1].type);
1563 fields[2].type = get_type("uint32");
1566 fields[2].data = make_default(fields[2].type);
1567 fields[3].type = get_type("uint32");
1570 fields[3].data = make_default(fields[3].type);
1571 fields[4].type = get_type("uint32");
1574 fields[4].data = make_default(fields[4].type);
1575 fields[5].type = get_type("string");
1578 fields[5].data = make_data(fields[5].resize, fields[5].type);
1579 fields[6].type = get_type("string");
1582 fields[6].data = make_data(fields[6].resize, fields[6].type);
1587 type_t type;
1588 type.code = 'APPV';
1589 type.name = "app_version";
1590 type.fields = fields;
1591 type.count = 7;
1592 type.def_id = 1;
1593 type.def_name = "BEOS:APP_VERSION";
1595 type_table.insert(make_pair(type.name, type));
1603 fields[0].type = get_type("raw");
1606 fields[0].data = make_data(fields[0].resize, fields[0].type);
1608 type_t type;
1609 type.code = 'PNG ';
1610 type.name = "png_icon";
1611 type.fields = fields;
1612 type.count = 1;
1613 type.def_id = 101;
1614 type.def_name = "BEOS:ICON";
1616 type_table.insert(make_pair(type.name, type));
1624 fields[0].type = get_type("raw");
1627 fields[0].data = make_data(fields[0].resize, fields[0].type);
1629 type_t type;
1630 type.code = 'VICN';
1631 type.name = "vector_icon";
1632 type.fields = fields;
1633 type.count = 1;
1634 type.def_id = 101;
1635 type.def_name = "BEOS:ICON";
1637 type_table.insert(make_pair(type.name, type));
1645 fields[0].type = get_type("raw");
1648 fields[0].data = make_data(fields[0].resize, fields[0].type);
1650 type_t type;
1651 type.code = 'ICON';
1652 type.name = "large_icon";
1653 type.fields = fields;
1654 type.count = 1;
1655 type.def_id = 101;
1656 type.def_name = "BEOS:L:STD_ICON";
1658 type_table.insert(make_pair(type.name, type));
1666 fields[0].type = get_type("raw");
1669 fields[0].data = make_data(fields[0].resize, fields[0].type);
1671 type_t type;
1672 type.code = 'MICN';
1673 type.name = "mini_icon";
1674 type.fields = fields;
1675 type.count = 1;
1676 type.def_id = 101;
1677 type.def_name = "BEOS:M:STD_ICON";
1679 type_table.insert(make_pair(type.name, type));
1687 fields[0].type = get_type("message");
1690 fields[0].data = make_default(fields[0].type);
1692 type_t type;
1693 type.code = 'MSGG';
1694 type.name = "file_types";
1695 type.fields = fields;
1696 type.count = 1;
1697 type.def_id = 1;
1698 type.def_name = "BEOS:FILE_TYPES";
1700 type_table.insert(make_pair(type.name, type));
1788 type_t type = i->second;
1790 for (int32 t = 0; t < type.count; ++t) {
1791 free_mem((void*) type.fields[t].name);
1792 free_mem((void*) type.fields[t].data.ptr);
1794 free_mem((void*) type.fields);
1795 free_mem((void*) type.name);
1796 free_mem((void*) type.def_name);