extern GHashTable *gtk_doc_hash;
char *filebase;
+char *fullfilebase;
static char *funcbase;
static char *pfuncbase;
static char *macrobase;
static char *typebase;
static char *ptypebase;
+char *output_dir = NULL;
+
static int signals = 0; /* number of signals */
static int set_properties = 0; /* number of named (set) properties */
static int get_properties = 0; /* number of named (get) properties */
filebase = replace_sep (((Class *)class)->otype, '-');
gob_strdown (filebase);
+ if (output_dir != NULL &&
+ output_dir[0] != '\0') {
+ fullfilebase = g_build_filename (output_dir, filebase, NULL);
+ } else {
+ fullfilebase = g_strdup (filebase);
+ }
+
funcbase = replace_sep (((Class *)class)->otype, '_');
gob_strdown (funcbase);
#define value_for_print(str, alt) (str != NULL ? str : alt)
-static char *
-make_me_type (const char *type, const char *alt)
-{
- if (type == NULL)
- return g_strdup (alt);
- /* HACK! just in case someone made this
- * work with 2.0.0 by using the TYPE
- * macro directly */
- if ((strstr (type, "_TYPE_") != NULL ||
- strstr (type, "TYPE_") == type) &&
- strchr (type, ':') == NULL)
- return g_strdup (type);
- return make_pre_macro (type, "TYPE");
-}
-
static void
make_property (Property *p)
{
char *outfile, *outfileh, *outfileph;
if ( ! for_cpp)
- outfile = g_strconcat (filebase, ".c", NULL);
+ outfile = g_strconcat (fullfilebase, ".c", NULL);
else
- outfile = g_strconcat (filebase, ".cc", NULL);
+ outfile = g_strconcat (fullfilebase, ".cc", NULL);
if (no_touch_headers)
- outfileh = g_strconcat ("#gob#", filebase, ".h#gob#", NULL);
+ outfileh = g_strconcat (fullfilebase, ".h#gob#", NULL);
else
- outfileh = g_strconcat (filebase, ".h", NULL);
+ outfileh = g_strconcat (fullfilebase, ".h", NULL);
if ((privates > 0 || protecteds > 0 ||
private_header == PRIVATE_HEADER_ALWAYS) &&
private_header != PRIVATE_HEADER_NEVER)
- outfileph = g_strconcat (filebase, "-private.h", NULL);
+ outfileph = g_strconcat (fullfilebase, "-private.h", NULL);
else
outfileph = NULL;
"really changed\n"
"\t--always-private-header Always create a private header "
"file,\n"
- "\t even if it would be empty "
- "[default]\n"
+ "\t even if it would be empty\n"
"\t--ondemand-private-header Create private header only when "
"needed\n"
+ "\t [default]\n"
"\t--no-private-header Don't create a private header, "
"put private\n"
"\t structure and protected "
"\t--no-lines Don't print '#line' to output\n"
"\t--no-self-alias Don't create self type and macro "
"aliases\n"
- "\t--no-kill-underscores Ignored for compatibility\n");
+ "\t--no-kill-underscores Ignored for compatibility\n"
+ "\t-o,--output-dir The directory where output "
+ "should be placed\n");
}
static void
use_m4_clean=TRUE;
m4_opts = TRUE;
m4_commandline=g_strdup(M4_COMMANDLINE);
+ } else if (strcmp (argv[i], "-o") == 0 ||
+ strcmp (argv[i], "--output-dir") == 0) {
+ if (i+1 < argc) {
+ output_dir = g_strdup (argv[i+1]);
+ i++;
+ } else {
+ output_dir = NULL;
+ }
+ } else if (strncmp (argv[i], "-o=", strlen ("-o=")) == 0 ||
+ strncmp (argv[i],
+ "--output-dir=",
+ strlen ("--output-dir=")) == 0) {
+ char *p = strchr (argv[i], '=');
+ g_assert (p != NULL);
+ output_dir = g_strdup (p+1);
} else if(strcmp(argv[i], "--")==0) {
/*further arguments are files*/
no_opts = TRUE;
static void
compare_and_move_header(void)
{
- char *hfnew = g_strconcat("#gob#", filebase, ".h#gob#", NULL);
- char *hf = g_strconcat(filebase, ".h", NULL);
+ char *hfnew = g_strconcat(fullfilebase, ".h#gob#", NULL);
+ char *hf = g_strconcat(fullfilebase, ".h", NULL);
struct stat s;
if(stat(hf, &s) == 0) {
char *s;
root, prop->name);
g_free (cast);
} else if (strcmp (prop->gtktype, "BOXED") == 0) {
+ char *type = make_me_type (prop->extra_gtktype,
+ "G_TYPE_BOXED");
if (prop->extra_gtktype == NULL) {
error_print (GOB_ERROR, prop->line_no,
_("Property linking requested for BOXED, but "
"} "
"}",
root, prop->name,
- prop->extra_gtktype,
+ type,
root, prop->name,
- prop->extra_gtktype,
+ type,
root, prop->name);
get = g_strdup_printf("g_value_set_boxed (VAL, %s->%s);",
root, prop->name);
+ g_free (type);
} else {
char *set_func;
char *get_func;
}
-#line 616 "parse.y"
+#line 619 "parse.y"
#ifndef YYSTYPE
typedef union {
char *id;
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{
- 0, 637, 638, 639, 640, 643, 652, 661, 670, 679,
- 688, 699, 700, 701, 702, 703, 704, 705, 706, 709,
- 714, 721, 735, 736, 748, 757, 771, 772, 775, 776,
- 785, 797, 798, 799, 800, 803, 804, 805, 806, 809,
- 829, 853, 857, 865, 866, 867, 868, 869, 875, 878,
- 883, 951, 1005, 1094, 1102, 1107, 1155, 1191, 1207, 1208,
- 1211, 1212, 1215, 1216, 1228, 1229, 1232, 1238, 1244, 1250,
- 1256, 1262, 1268, 1275, 1281, 1287, 1293, 1299, 1305, 1311,
- 1317, 1323, 1329, 1335, 1355, 1364, 1370, 1371, 1374, 1377,
- 1383, 1390, 1399, 1402, 1405, 1409, 1413, 1417, 1422, 1430,
- 1434, 1439, 1443, 1446, 1450, 1453, 1458, 1459, 1460, 1461,
- 1462, 1463, 1464, 1465, 1466, 1469, 1470, 1471, 1474, 1475,
- 1476, 1480, 1487, 1499, 1505, 1517, 1529, 1532, 1538, 1543,
- 1546, 1551, 1552, 1556, 1572, 1588, 1604, 1620, 1631, 1637,
- 1647, 1670, 1681, 1700, 1706, 1707, 1713, 1714, 1725, 1736,
- 1747, 1757, 1767, 1777, 1780, 1781, 1784, 1785, 1788, 1791,
- 1794, 1802, 1812, 1813, 1816, 1833, 1840, 1847, 1854, 1861,
- 1868, 1877, 1886, 1897, 1898, 1901, 1921, 1931, 1940, 1951,
- 1954, 1959, 1968, 1979, 1982, 1988, 1989, 1993, 1994
+ 0, 640, 641, 642, 643, 646, 655, 664, 673, 682,
+ 691, 702, 703, 704, 705, 706, 707, 708, 709, 712,
+ 717, 724, 738, 739, 751, 760, 774, 775, 778, 779,
+ 788, 800, 801, 802, 803, 806, 807, 808, 809, 812,
+ 832, 856, 860, 868, 869, 870, 871, 872, 878, 881,
+ 886, 954, 1008, 1097, 1105, 1110, 1158, 1194, 1210, 1211,
+ 1214, 1215, 1218, 1219, 1231, 1232, 1235, 1241, 1247, 1253,
+ 1259, 1265, 1271, 1278, 1284, 1290, 1296, 1302, 1308, 1314,
+ 1320, 1326, 1332, 1338, 1358, 1367, 1373, 1374, 1377, 1380,
+ 1386, 1393, 1402, 1405, 1408, 1412, 1416, 1420, 1425, 1433,
+ 1437, 1442, 1446, 1449, 1453, 1456, 1461, 1462, 1463, 1464,
+ 1465, 1466, 1467, 1468, 1469, 1472, 1473, 1474, 1477, 1478,
+ 1479, 1483, 1490, 1502, 1508, 1520, 1532, 1535, 1541, 1546,
+ 1549, 1554, 1555, 1559, 1575, 1591, 1607, 1623, 1634, 1640,
+ 1650, 1673, 1684, 1703, 1709, 1710, 1716, 1717, 1728, 1739,
+ 1750, 1760, 1770, 1780, 1783, 1784, 1787, 1788, 1791, 1794,
+ 1797, 1805, 1815, 1816, 1819, 1836, 1843, 1850, 1857, 1864,
+ 1871, 1880, 1889, 1900, 1901, 1904, 1924, 1934, 1943, 1954,
+ 1957, 1962, 1971, 1982, 1985, 1991, 1992, 1996, 1997
};
#endif
switch (yyn) {
case 1:
-#line 637 "parse.y"
+#line 640 "parse.y"
{ ; }
break;
case 2:
-#line 638 "parse.y"
+#line 641 "parse.y"
{ ; }
break;
case 3:
-#line 639 "parse.y"
+#line 642 "parse.y"
{ ; }
break;
case 4:
-#line 640 "parse.y"
+#line 643 "parse.y"
{ ; }
break;
case 5:
-#line 643 "parse.y"
+#line 646 "parse.y"
{
Node *node = node_new (CCODE_NODE,
"cctype", C_CCODE,
}
break;
case 6:
-#line 652 "parse.y"
+#line 655 "parse.y"
{
Node *node = node_new (CCODE_NODE,
"cctype", H_CCODE,
}
break;
case 7:
-#line 661 "parse.y"
+#line 664 "parse.y"
{
Node *node = node_new (CCODE_NODE,
"cctype", HT_CCODE,
}
break;
case 8:
-#line 670 "parse.y"
+#line 673 "parse.y"
{
Node *node = node_new (CCODE_NODE,
"cctype", PH_CCODE,
}
break;
case 9:
-#line 679 "parse.y"
+#line 682 "parse.y"
{
Node *node = node_new (CCODE_NODE,
"cctype", A_CCODE,
}
break;
case 10:
-#line 688 "parse.y"
+#line 691 "parse.y"
{
Node *node = node_new (CCODE_NODE,
"cctype", AT_CCODE,
}
break;
case 11:
-#line 699 "parse.y"
+#line 702 "parse.y"
{ ; }
break;
case 12:
-#line 700 "parse.y"
+#line 703 "parse.y"
{ ; }
break;
case 13:
-#line 701 "parse.y"
+#line 704 "parse.y"
{ ; }
break;
case 14:
-#line 702 "parse.y"
+#line 705 "parse.y"
{ ; }
break;
case 15:
-#line 703 "parse.y"
+#line 706 "parse.y"
{ ; }
break;
case 16:
-#line 704 "parse.y"
+#line 707 "parse.y"
{ ; }
break;
case 17:
-#line 705 "parse.y"
+#line 708 "parse.y"
{ ; }
break;
case 18:
-#line 706 "parse.y"
+#line 709 "parse.y"
{ ; }
break;
case 19:
-#line 709 "parse.y"
+#line 712 "parse.y"
{
((Class *)class)->nodes = class_nodes;
class_nodes = NULL;
}
break;
case 20:
-#line 714 "parse.y"
+#line 717 "parse.y"
{
((Class *)class)->nodes = NULL;
class_nodes = NULL;
}
break;
case 21:
-#line 721 "parse.y"
+#line 724 "parse.y"
{
class = node_new (CLASS_NODE,
"otype:steal", yyvsp[-3].id,
}
break;
case 23:
-#line 736 "parse.y"
+#line 739 "parse.y"
{
if(strcmp(yyvsp[-3].id,"chunks") == 0) {
g_free (chunk_size);
}
break;
case 24:
-#line 748 "parse.y"
+#line 751 "parse.y"
{
if (strcmp (yyvsp[-3].id, "interface") == 0) {
interfaces = g_list_append (interfaces,
}
break;
case 25:
-#line 757 "parse.y"
+#line 760 "parse.y"
{
if(strcmp(yyvsp[-3].id,"chunks") == 0) {
g_free (chunk_size);
}
break;
case 26:
-#line 771 "parse.y"
+#line 774 "parse.y"
{ ; }
break;
case 27:
-#line 772 "parse.y"
+#line 775 "parse.y"
{ ; }
break;
case 28:
-#line 775 "parse.y"
+#line 778 "parse.y"
{ ; }
break;
case 29:
-#line 776 "parse.y"
+#line 779 "parse.y"
{
if (strcmp (yyvsp[-1].id, "BonoboObject") != 0) {
g_free (yyvsp[-1].id);
}
break;
case 30:
-#line 785 "parse.y"
+#line 788 "parse.y"
{
if (strcmp (yyvsp[-2].id, "interface") != 0) {
g_free (yyvsp[-2].id);
}
break;
case 31:
-#line 797 "parse.y"
+#line 800 "parse.y"
{ ; }
break;
case 32:
-#line 798 "parse.y"
+#line 801 "parse.y"
{ ; }
break;
case 33:
-#line 799 "parse.y"
+#line 802 "parse.y"
{ ; }
break;
case 34:
-#line 800 "parse.y"
+#line 803 "parse.y"
{ ; }
break;
case 35:
-#line 803 "parse.y"
+#line 806 "parse.y"
{ the_scope = PUBLIC_SCOPE; }
break;
case 36:
-#line 804 "parse.y"
+#line 807 "parse.y"
{ the_scope = PRIVATE_SCOPE; }
break;
case 37:
-#line 805 "parse.y"
+#line 808 "parse.y"
{ the_scope = PROTECTED_SCOPE; }
break;
case 38:
-#line 806 "parse.y"
+#line 809 "parse.y"
{ the_scope = CLASS_SCOPE; }
break;
case 39:
-#line 809 "parse.y"
+#line 812 "parse.y"
{
if (strcmp (yyvsp[-1].id, "destroywith") == 0) {
g_free (yyvsp[-1].id);
}
break;
case 40:
-#line 829 "parse.y"
+#line 832 "parse.y"
{
if (strcmp (yyvsp[-2].id, "destroy") == 0) {
g_free(yyvsp[-2].id);
}
break;
case 41:
-#line 853 "parse.y"
+#line 856 "parse.y"
{
initializer = yyvsp[0].id;
initializer_line = ccode_line;
}
break;
case 42:
-#line 857 "parse.y"
+#line 860 "parse.y"
{
initializer = (yyvsp[0].cbuf)->str;
initializer_line = ccode_line;
}
break;
case 43:
-#line 865 "parse.y"
+#line 868 "parse.y"
{ ; }
break;
case 44:
-#line 866 "parse.y"
+#line 869 "parse.y"
{ ; }
break;
case 45:
-#line 867 "parse.y"
+#line 870 "parse.y"
{ destructor = NULL; }
break;
case 46:
-#line 868 "parse.y"
+#line 871 "parse.y"
{ initializer = NULL; }
break;
case 47:
-#line 869 "parse.y"
+#line 872 "parse.y"
{
destructor = NULL;
initializer = NULL;
}
break;
case 48:
-#line 875 "parse.y"
+#line 878 "parse.y"
{
push_variable(yyvsp[-2].id, the_scope,yyvsp[-4].line, NULL);
}
break;
case 49:
-#line 878 "parse.y"
+#line 881 "parse.y"
{
push_variable(yyvsp[-3].id, the_scope, yyvsp[-5].line, yyvsp[-2].id);
}
break;
case 50:
-#line 883 "parse.y"
+#line 886 "parse.y"
{
Node *node = NULL;
if(strcmp(yyvsp[-6].id,"get")==0 &&
}
break;
case 51:
-#line 951 "parse.y"
+#line 954 "parse.y"
{
Node *node = NULL;
if(strcmp(yyvsp[-3].id, "get") == 0) {
}
break;
case 52:
-#line 1005 "parse.y"
+#line 1008 "parse.y"
{
Node *node;
char *get, *set = NULL;
}
break;
case 53:
-#line 1094 "parse.y"
+#line 1097 "parse.y"
{
if (strcmp (yyvsp[-1].id, "export")!=0) {
g_free (yyvsp[-1].id);
}
break;
case 54:
-#line 1102 "parse.y"
+#line 1105 "parse.y"
{
yyval.id = NULL;
}
break;
case 55:
-#line 1107 "parse.y"
+#line 1110 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 56:
-#line 1155 "parse.y"
+#line 1158 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 57:
-#line 1191 "parse.y"
+#line 1194 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 58:
-#line 1207 "parse.y"
+#line 1210 "parse.y"
{ ; }
break;
case 59:
-#line 1208 "parse.y"
+#line 1211 "parse.y"
{ ; }
break;
case 60:
-#line 1211 "parse.y"
+#line 1214 "parse.y"
{ ; }
break;
case 61:
-#line 1212 "parse.y"
+#line 1215 "parse.y"
{ ; }
break;
case 62:
-#line 1215 "parse.y"
+#line 1218 "parse.y"
{ yyval.id = yyvsp[0].id; }
break;
case 63:
-#line 1216 "parse.y"
+#line 1219 "parse.y"
{
if (strcmp (yyvsp[-3].id, "_") != 0) {
g_free (yyvsp[-3].id);
}
break;
case 64:
-#line 1228 "parse.y"
+#line 1231 "parse.y"
{ yyval.id = yyvsp[0].id; }
break;
case 65:
-#line 1229 "parse.y"
+#line 1232 "parse.y"
{ yyval.id = yyvsp[0].id; }
break;
case 66:
-#line 1232 "parse.y"
+#line 1235 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 67:
-#line 1238 "parse.y"
+#line 1241 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 68:
-#line 1244 "parse.y"
+#line 1247 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 69:
-#line 1250 "parse.y"
+#line 1253 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 70:
-#line 1256 "parse.y"
+#line 1259 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 71:
-#line 1262 "parse.y"
+#line 1265 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 72:
-#line 1268 "parse.y"
+#line 1271 "parse.y"
{
Type *type = pop_type ();
ensure_property ();
}
break;
case 73:
-#line 1275 "parse.y"
+#line 1278 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 74:
-#line 1281 "parse.y"
+#line 1284 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 75:
-#line 1287 "parse.y"
+#line 1290 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 76:
-#line 1293 "parse.y"
+#line 1296 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 77:
-#line 1299 "parse.y"
+#line 1302 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 78:
-#line 1305 "parse.y"
+#line 1308 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 79:
-#line 1311 "parse.y"
+#line 1314 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 80:
-#line 1317 "parse.y"
+#line 1320 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 81:
-#line 1323 "parse.y"
+#line 1326 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 82:
-#line 1329 "parse.y"
+#line 1332 "parse.y"
{
ensure_property ();
node_set ((Node *)property,
}
break;
case 83:
-#line 1335 "parse.y"
+#line 1338 "parse.y"
{
ensure_property ();
if (strcmp (yyvsp[0].id, "link") == 0) {
}
break;
case 84:
-#line 1355 "parse.y"
+#line 1358 "parse.y"
{
if(strcmp(yyvsp[-2].id,"type")!=0) {
g_free(yyvsp[-4].id);
}
break;
case 85:
-#line 1364 "parse.y"
+#line 1367 "parse.y"
{
yyval.id = debool (yyvsp[0].id);
typestack = g_list_prepend(typestack,NULL);
}
break;
case 86:
-#line 1370 "parse.y"
+#line 1373 "parse.y"
{ yyval.list = yyvsp[-1].list; }
break;
case 87:
-#line 1371 "parse.y"
+#line 1374 "parse.y"
{ yyval.list = NULL; }
break;
case 88:
-#line 1374 "parse.y"
+#line 1377 "parse.y"
{
yyval.list = g_list_append(yyvsp[0].list,yyvsp[-2].id);
}
break;
case 89:
-#line 1377 "parse.y"
+#line 1380 "parse.y"
{
yyval.list = g_list_append(NULL,yyvsp[0].id);
}
break;
case 90:
-#line 1383 "parse.y"
+#line 1386 "parse.y"
{
Node *node = node_new (TYPE_NODE,
"name:steal", yyvsp[-1].id,
}
break;
case 91:
-#line 1390 "parse.y"
+#line 1393 "parse.y"
{
Node *node = node_new (TYPE_NODE,
"name:steal", yyvsp[0].id,
}
break;
case 92:
-#line 1399 "parse.y"
+#line 1402 "parse.y"
{
yyval.id = yyvsp[0].id;
}
break;
case 93:
-#line 1402 "parse.y"
+#line 1405 "parse.y"
{
yyval.id = yyvsp[0].id;
}
break;
case 94:
-#line 1405 "parse.y"
+#line 1408 "parse.y"
{
yyval.id = g_strconcat("const ", yyvsp[0].id, NULL);
g_free(yyvsp[0].id);
}
break;
case 95:
-#line 1409 "parse.y"
+#line 1412 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
g_free(yyvsp[-1].id);
}
break;
case 96:
-#line 1413 "parse.y"
+#line 1416 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
g_free(yyvsp[0].id);
}
break;
case 97:
-#line 1417 "parse.y"
+#line 1420 "parse.y"
{
yyval.id = g_strconcat("const ", yyvsp[-1].id, " ",
yyvsp[0].id, NULL);
}
break;
case 98:
-#line 1422 "parse.y"
+#line 1425 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-2].id, " ",
yyvsp[-1].id, " const", NULL);
}
break;
case 99:
-#line 1430 "parse.y"
+#line 1433 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
g_free(yyvsp[0].id);
}
break;
case 100:
-#line 1434 "parse.y"
+#line 1437 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
g_free(yyvsp[-1].id);
}
break;
case 101:
-#line 1439 "parse.y"
+#line 1442 "parse.y"
{
yyval.id = g_strconcat("const ", yyvsp[0].id, NULL);
g_free(yyvsp[0].id);
}
break;
case 102:
-#line 1443 "parse.y"
+#line 1446 "parse.y"
{
yyval.id = yyvsp[0].id;
}
break;
case 103:
-#line 1446 "parse.y"
+#line 1449 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
g_free(yyvsp[-1].id);
}
break;
case 104:
-#line 1450 "parse.y"
+#line 1453 "parse.y"
{
yyval.id = g_strdup(yyvsp[0].id);
}
break;
case 105:
-#line 1453 "parse.y"
+#line 1456 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
}
break;
case 106:
-#line 1458 "parse.y"
+#line 1461 "parse.y"
{ yyval.id = "void"; }
break;
case 107:
-#line 1459 "parse.y"
+#line 1462 "parse.y"
{ yyval.id = "char"; }
break;
case 108:
-#line 1460 "parse.y"
+#line 1463 "parse.y"
{ yyval.id = "short"; }
break;
case 109:
-#line 1461 "parse.y"
+#line 1464 "parse.y"
{ yyval.id = "int"; }
break;
case 110:
-#line 1462 "parse.y"
+#line 1465 "parse.y"
{ yyval.id = "long"; }
break;
case 111:
-#line 1463 "parse.y"
+#line 1466 "parse.y"
{ yyval.id = "float"; }
break;
case 112:
-#line 1464 "parse.y"
+#line 1467 "parse.y"
{ yyval.id = "double"; }
break;
case 113:
-#line 1465 "parse.y"
+#line 1468 "parse.y"
{ yyval.id = "signed"; }
break;
case 114:
-#line 1466 "parse.y"
+#line 1469 "parse.y"
{ yyval.id = "unsigned"; }
break;
case 115:
-#line 1469 "parse.y"
+#line 1472 "parse.y"
{ yyval.id = "struct"; }
break;
case 116:
-#line 1470 "parse.y"
+#line 1473 "parse.y"
{ yyval.id = "union"; }
break;
case 117:
-#line 1471 "parse.y"
+#line 1474 "parse.y"
{ yyval.id = "enum"; }
break;
case 118:
-#line 1474 "parse.y"
+#line 1477 "parse.y"
{ yyval.id = g_strdup("*"); }
break;
case 119:
-#line 1475 "parse.y"
+#line 1478 "parse.y"
{ yyval.id = g_strdup("* const"); }
break;
case 120:
-#line 1476 "parse.y"
+#line 1479 "parse.y"
{
yyval.id = g_strconcat("*", yyvsp[0].id, NULL);
g_free(yyvsp[0].id);
}
break;
case 121:
-#line 1480 "parse.y"
+#line 1483 "parse.y"
{
yyval.id = g_strconcat("* const", yyvsp[0].id, NULL);
g_free(yyvsp[0].id);
}
break;
case 122:
-#line 1487 "parse.y"
+#line 1490 "parse.y"
{
if(strcmp(yyvsp[-1].id, "first")==0)
yyval.sigtype = SIGNAL_FIRST_METHOD;
}
break;
case 123:
-#line 1499 "parse.y"
+#line 1502 "parse.y"
{
yyval.sigtype = SIGNAL_LAST_METHOD;
}
break;
case 124:
-#line 1505 "parse.y"
+#line 1508 "parse.y"
{
if(strcmp(yyvsp[-1].id,"first")==0)
yyval.sigtype = SIGNAL_FIRST_METHOD;
}
break;
case 125:
-#line 1517 "parse.y"
+#line 1520 "parse.y"
{
if(strcmp(yyvsp[-2].id,"first")==0)
yyval.sigtype = SIGNAL_FIRST_METHOD;
}
break;
case 126:
-#line 1529 "parse.y"
+#line 1532 "parse.y"
{
yyval.sigtype = SIGNAL_LAST_METHOD;
}
break;
case 127:
-#line 1532 "parse.y"
+#line 1535 "parse.y"
{
/* the_scope was default thus public */
the_scope = PUBLIC_SCOPE;
}
break;
case 128:
-#line 1538 "parse.y"
+#line 1541 "parse.y"
{
gtktypes = g_list_prepend(gtktypes, debool (yyvsp[-3].id));
}
break;
case 129:
-#line 1543 "parse.y"
+#line 1546 "parse.y"
{
gtktypes = g_list_append(gtktypes, debool (yyvsp[0].id));
}
break;
case 130:
-#line 1546 "parse.y"
+#line 1549 "parse.y"
{
gtktypes = g_list_append(gtktypes, debool (yyvsp[0].id));
}
break;
case 131:
-#line 1551 "parse.y"
+#line 1554 "parse.y"
{ yyval.cbuf = yyvsp[0].cbuf; }
break;
case 132:
-#line 1552 "parse.y"
+#line 1555 "parse.y"
{ yyval.cbuf = NULL; }
break;
case 133:
-#line 1556 "parse.y"
+#line 1559 "parse.y"
{
if(!has_self) {
yyerror(_("signal without 'self' as "
}
break;
case 134:
-#line 1572 "parse.y"
+#line 1575 "parse.y"
{
if(!has_self) {
yyerror(_("signal without 'self' as "
}
break;
case 135:
-#line 1588 "parse.y"
+#line 1591 "parse.y"
{
if(!has_self) {
yyerror(_("virtual method without 'self' as "
}
break;
case 136:
-#line 1604 "parse.y"
+#line 1607 "parse.y"
{
if(!has_self) {
yyerror(_("virtual method without 'self' as "
}
break;
case 137:
-#line 1620 "parse.y"
+#line 1623 "parse.y"
{
if(!has_self) {
yyerror(_("virtual method without 'self' as "
}
break;
case 138:
-#line 1631 "parse.y"
+#line 1634 "parse.y"
{
push_function(NO_SCOPE, OVERRIDE_METHOD, yyvsp[-8].id,
yyvsp[-5].id, yyvsp[0].cbuf,
}
break;
case 139:
-#line 1637 "parse.y"
+#line 1640 "parse.y"
{
if(the_scope == CLASS_SCOPE) {
yyerror(_("a method cannot be of class scope"));
}
break;
case 140:
-#line 1647 "parse.y"
+#line 1650 "parse.y"
{
if(strcmp(yyvsp[-4].id, "init")==0) {
push_init_arg(yyvsp[-2].id,FALSE);
}
break;
case 141:
-#line 1670 "parse.y"
+#line 1673 "parse.y"
{
g_free(onerror); onerror = NULL;
g_free(defreturn); defreturn = NULL;
}
break;
case 142:
-#line 1681 "parse.y"
+#line 1684 "parse.y"
{
g_free(onerror); onerror = NULL;
g_free(defreturn); defreturn = NULL;
}
break;
case 143:
-#line 1700 "parse.y"
+#line 1703 "parse.y"
{
g_free(onerror); onerror = NULL;
g_free(defreturn); defreturn = NULL;
}
break;
case 144:
-#line 1706 "parse.y"
+#line 1709 "parse.y"
{ yyval.id = yyvsp[0].id; }
break;
case 145:
-#line 1707 "parse.y"
+#line 1710 "parse.y"
{
yyval.id = (yyvsp[0].cbuf)->str;
g_string_free(yyvsp[0].cbuf, FALSE);
}
break;
case 146:
-#line 1713 "parse.y"
+#line 1716 "parse.y"
{ vararg = FALSE; has_self = FALSE; }
break;
case 147:
-#line 1714 "parse.y"
+#line 1717 "parse.y"
{
vararg = FALSE;
has_self = TRUE;
}
break;
case 148:
-#line 1725 "parse.y"
+#line 1728 "parse.y"
{
vararg = FALSE;
has_self = TRUE;
}
break;
case 149:
-#line 1736 "parse.y"
+#line 1739 "parse.y"
{
vararg = FALSE;
has_self = TRUE;
}
break;
case 150:
-#line 1747 "parse.y"
+#line 1750 "parse.y"
{
has_self = TRUE;
if(strcmp(yyvsp[-2].id,"self")==0)
}
break;
case 151:
-#line 1757 "parse.y"
+#line 1760 "parse.y"
{
has_self = TRUE;
if(strcmp(yyvsp[-3].id,"self")==0)
}
break;
case 152:
-#line 1767 "parse.y"
+#line 1770 "parse.y"
{
has_self = TRUE;
if(strcmp(yyvsp[-2].id,"self")==0)
}
break;
case 153:
-#line 1777 "parse.y"
+#line 1780 "parse.y"
{ has_self = FALSE; }
break;
case 154:
-#line 1780 "parse.y"
+#line 1783 "parse.y"
{ vararg = TRUE; }
break;
case 155:
-#line 1781 "parse.y"
+#line 1784 "parse.y"
{ vararg = FALSE; }
break;
case 156:
-#line 1784 "parse.y"
+#line 1787 "parse.y"
{ ; }
break;
case 157:
-#line 1785 "parse.y"
+#line 1788 "parse.y"
{ ; }
break;
case 158:
-#line 1788 "parse.y"
+#line 1791 "parse.y"
{
push_funcarg(yyvsp[0].id,NULL);
}
break;
case 159:
-#line 1791 "parse.y"
+#line 1794 "parse.y"
{
push_funcarg(yyvsp[-1].id,yyvsp[0].id);
}
break;
case 160:
-#line 1794 "parse.y"
+#line 1797 "parse.y"
{
if(strcmp(yyvsp[-2].id,"check")!=0) {
yyerror(_("parse error"));
}
break;
case 161:
-#line 1802 "parse.y"
+#line 1805 "parse.y"
{
if(strcmp(yyvsp[-2].id,"check")!=0) {
yyerror(_("parse error"));
}
break;
case 162:
-#line 1812 "parse.y"
+#line 1815 "parse.y"
{ ; }
break;
case 163:
-#line 1813 "parse.y"
+#line 1816 "parse.y"
{ ; }
break;
case 164:
-#line 1816 "parse.y"
+#line 1819 "parse.y"
{
if(strcmp(yyvsp[0].id,"type")==0) {
Node *node = node_new (CHECK_NODE,
}
break;
case 165:
-#line 1833 "parse.y"
+#line 1836 "parse.y"
{
Node *node = node_new (CHECK_NODE,
"chtype", GT_CHECK,
}
break;
case 166:
-#line 1840 "parse.y"
+#line 1843 "parse.y"
{
Node *node = node_new (CHECK_NODE,
"chtype", LT_CHECK,
}
break;
case 167:
-#line 1847 "parse.y"
+#line 1850 "parse.y"
{
Node *node = node_new (CHECK_NODE,
"chtype", GE_CHECK,
}
break;
case 168:
-#line 1854 "parse.y"
+#line 1857 "parse.y"
{
Node *node = node_new (CHECK_NODE,
"chtype", LE_CHECK,
}
break;
case 169:
-#line 1861 "parse.y"
+#line 1864 "parse.y"
{
Node *node = node_new (CHECK_NODE,
"chtype", EQ_CHECK,
}
break;
case 170:
-#line 1868 "parse.y"
+#line 1871 "parse.y"
{
Node *node = node_new (CHECK_NODE,
"chtype", NE_CHECK,
}
break;
case 171:
-#line 1877 "parse.y"
+#line 1880 "parse.y"
{
Node *node = node_new (ENUMDEF_NODE,
"etype:steal", yyvsp[-1].id,
}
break;
case 172:
-#line 1886 "parse.y"
+#line 1889 "parse.y"
{
Node *node = node_new (ENUMDEF_NODE,
"etype:steal", yyvsp[-1].id,
}
break;
case 173:
-#line 1897 "parse.y"
+#line 1900 "parse.y"
{;}
break;
case 174:
-#line 1898 "parse.y"
+#line 1901 "parse.y"
{;}
break;
case 175:
-#line 1901 "parse.y"
+#line 1904 "parse.y"
{
Node *node;
char *num = yyvsp[0].id;
}
break;
case 176:
-#line 1921 "parse.y"
+#line 1924 "parse.y"
{
Node *node;
}
break;
case 177:
-#line 1931 "parse.y"
+#line 1934 "parse.y"
{
Node *node = node_new (FLAGS_NODE,
"ftype:steal", yyvsp[-1].id,
}
break;
case 178:
-#line 1940 "parse.y"
+#line 1943 "parse.y"
{
Node *node = node_new (FLAGS_NODE,
"ftype:steal", yyvsp[-1].id,
}
break;
case 179:
-#line 1951 "parse.y"
+#line 1954 "parse.y"
{
flag_vals = g_list_append (flag_vals, yyvsp[0].id);
}
break;
case 180:
-#line 1954 "parse.y"
+#line 1957 "parse.y"
{
flag_vals = g_list_append (flag_vals, yyvsp[0].id);
}
break;
case 181:
-#line 1959 "parse.y"
+#line 1962 "parse.y"
{
Node *node = node_new (ERROR_NODE,
"etype:steal", yyvsp[-1].id,
}
break;
case 182:
-#line 1968 "parse.y"
+#line 1971 "parse.y"
{
Node *node = node_new (ERROR_NODE,
"etype:steal", yyvsp[-1].id,
}
break;
case 183:
-#line 1979 "parse.y"
+#line 1982 "parse.y"
{
error_vals = g_list_append (error_vals, yyvsp[0].id);
}
break;
case 184:
-#line 1982 "parse.y"
+#line 1985 "parse.y"
{
error_vals = g_list_append (error_vals, yyvsp[0].id);
}
break;
case 185:
-#line 1988 "parse.y"
+#line 1991 "parse.y"
{ yyval.id = yyvsp[0].id; }
break;
case 186:
-#line 1989 "parse.y"
+#line 1992 "parse.y"
{
yyval.id = g_strconcat("-",yyvsp[0].id,NULL);
g_free(yyvsp[0].id);
}
break;
case 187:
-#line 1993 "parse.y"
+#line 1996 "parse.y"
{ yyval.id = yyvsp[0].id; }
break;
case 188:
-#line 1994 "parse.y"
+#line 1997 "parse.y"
{ yyval.id = yyvsp[0].id; }
break;
}
#endif
return yyresult;
}
-#line 1997 "parse.y"
+#line 2000 "parse.y"