exit(1);
}
+static Type *
+pop_type(void)
+{
+ Type *type = typestack->data;
+ typestack = g_list_remove(typestack,typestack->data);
+ return type;
+}
+
static void
push_variable(char *name, int scope, int line_no, char *postfix)
{
Node *var;
- Type *type = typestack->data;
- typestack = g_list_remove(typestack,typestack->data);
+ Type *type = pop_type();
type->postfix = postfix;
char *c_cbuf;
if(method!=INIT_METHOD && method!=CLASS_INIT_METHOD) {
- type = typestack->data;
- typestack = g_list_remove(typestack,typestack->data);
+ type = pop_type();
} else {
type = (Type *)new_type(0,g_strdup("void"),NULL);
}
push_funcarg(char *name, char *postfix)
{
Node *node;
- Type *type = typestack->data;
- typestack = g_list_remove(typestack,typestack->data);
+ Type *type = pop_type();
type->postfix = postfix;
}
-#line 197 "parse.y"
+#line 202 "parse.y"
typedef union {
char *id;
GString *cbuf;
-#define YYFINAL 214
+#define YYFINAL 219
#define YYFLAG -32768
#define YYNTBASE 46
-#define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 76)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 77)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
static const short yyprhs[] = { 0,
0, 4, 7, 10, 12, 15, 18, 20, 22, 27,
31, 36, 39, 42, 45, 47, 49, 51, 53, 55,
- 57, 62, 68, 80, 89, 93, 94, 98, 100, 102,
- 105, 107, 110, 113, 116, 118, 121, 124, 126, 128,
- 130, 132, 135, 137, 139, 142, 144, 147, 149, 151,
- 153, 155, 157, 160, 162, 165, 167, 171, 175, 178,
- 180, 185, 189, 191, 194, 196, 206, 217, 227, 237,
- 246, 258, 267, 273, 276, 280, 281, 283, 285, 289,
- 291, 295, 297, 301, 303, 306, 310, 317, 325, 328,
- 330, 332, 335, 338, 342, 346, 350, 354, 356, 359
+ 57, 62, 68, 80, 89, 95, 97, 101, 102, 106,
+ 108, 110, 113, 115, 118, 121, 124, 126, 129, 132,
+ 134, 136, 138, 140, 143, 145, 147, 150, 152, 155,
+ 157, 159, 161, 163, 165, 168, 170, 173, 175, 179,
+ 183, 186, 188, 193, 197, 199, 202, 204, 214, 225,
+ 235, 245, 254, 266, 275, 281, 284, 288, 289, 291,
+ 293, 297, 299, 303, 305, 309, 311, 314, 318, 325,
+ 333, 336, 338, 340, 343, 346, 350, 354, 358, 362,
+ 364, 367
};
static const short yyrhs[] = { 47,
48, 47, 0, 48, 47, 0, 47, 48, 0, 48,
0, 47, 24, 0, 47, 25, 0, 24, 0, 25,
0, 49, 33, 50, 34, 0, 49, 33, 34, 0,
- 3, 22, 4, 22, 0, 50, 67, 0, 50, 52,
- 0, 50, 53, 0, 67, 0, 52, 0, 53, 0,
- 26, 0, 27, 0, 28, 0, 51, 56, 20, 35,
- 0, 51, 56, 20, 23, 35, 0, 29, 54, 20,
+ 3, 22, 4, 22, 0, 50, 68, 0, 50, 52,
+ 0, 50, 53, 0, 68, 0, 52, 0, 53, 0,
+ 26, 0, 27, 0, 28, 0, 51, 57, 20, 35,
+ 0, 51, 57, 20, 23, 35, 0, 29, 55, 54,
20, 20, 33, 24, 20, 33, 24, 35, 0, 29,
- 54, 20, 20, 20, 33, 24, 35, 0, 36, 55,
- 37, 0, 0, 20, 38, 55, 0, 20, 0, 57,
- 0, 5, 57, 0, 58, 0, 58, 61, 0, 12,
- 59, 0, 11, 59, 0, 59, 0, 12, 18, 0,
- 11, 18, 0, 18, 0, 17, 0, 16, 0, 20,
- 0, 60, 20, 0, 22, 0, 6, 0, 13, 15,
- 0, 13, 0, 14, 15, 0, 14, 0, 15, 0,
- 9, 0, 8, 0, 7, 0, 39, 61, 0, 39,
- 0, 20, 64, 0, 64, 0, 51, 20, 64, 0,
- 20, 51, 64, 0, 51, 64, 0, 62, 0, 20,
- 36, 65, 37, 0, 65, 40, 20, 0, 20, 0,
- 33, 24, 0, 35, 0, 31, 63, 56, 20, 36,
- 69, 37, 68, 66, 0, 51, 31, 62, 56, 20,
- 36, 69, 37, 68, 66, 0, 30, 51, 56, 20,
- 36, 69, 37, 68, 66, 0, 51, 30, 56, 20,
- 36, 69, 37, 68, 66, 0, 30, 56, 20, 36,
- 69, 37, 68, 66, 0, 32, 36, 22, 37, 56,
- 20, 36, 69, 37, 68, 66, 0, 51, 56, 20,
- 36, 69, 37, 68, 66, 0, 20, 36, 20, 37,
- 66, 0, 19, 75, 0, 19, 33, 24, 0, 0,
- 6, 0, 20, 0, 20, 40, 70, 0, 70, 0,
- 71, 40, 10, 0, 71, 0, 71, 40, 72, 0,
- 72, 0, 56, 20, 0, 56, 20, 23, 0, 56,
- 20, 36, 20, 73, 37, 0, 56, 20, 23, 36,
- 20, 73, 37, 0, 73, 74, 0, 74, 0, 20,
- 0, 41, 75, 0, 42, 75, 0, 41, 43, 75,
- 0, 42, 43, 75, 0, 43, 43, 75, 0, 44,
- 43, 75, 0, 21, 0, 45, 21, 0, 20, 0
+ 55, 54, 20, 20, 33, 24, 35, 0, 20, 36,
+ 20, 57, 37, 0, 20, 0, 36, 56, 37, 0,
+ 0, 20, 38, 56, 0, 20, 0, 58, 0, 5,
+ 58, 0, 59, 0, 59, 62, 0, 12, 60, 0,
+ 11, 60, 0, 60, 0, 12, 18, 0, 11, 18,
+ 0, 18, 0, 17, 0, 16, 0, 20, 0, 61,
+ 20, 0, 22, 0, 6, 0, 13, 15, 0, 13,
+ 0, 14, 15, 0, 14, 0, 15, 0, 9, 0,
+ 8, 0, 7, 0, 39, 62, 0, 39, 0, 20,
+ 65, 0, 65, 0, 51, 20, 65, 0, 20, 51,
+ 65, 0, 51, 65, 0, 63, 0, 20, 36, 66,
+ 37, 0, 66, 40, 20, 0, 20, 0, 33, 24,
+ 0, 35, 0, 31, 64, 57, 20, 36, 70, 37,
+ 69, 67, 0, 51, 31, 63, 57, 20, 36, 70,
+ 37, 69, 67, 0, 30, 51, 57, 20, 36, 70,
+ 37, 69, 67, 0, 51, 30, 57, 20, 36, 70,
+ 37, 69, 67, 0, 30, 57, 20, 36, 70, 37,
+ 69, 67, 0, 32, 36, 22, 37, 57, 20, 36,
+ 70, 37, 69, 67, 0, 51, 57, 20, 36, 70,
+ 37, 69, 67, 0, 20, 36, 20, 37, 67, 0,
+ 19, 76, 0, 19, 33, 24, 0, 0, 6, 0,
+ 20, 0, 20, 40, 71, 0, 71, 0, 72, 40,
+ 10, 0, 72, 0, 72, 40, 73, 0, 73, 0,
+ 57, 20, 0, 57, 20, 23, 0, 57, 20, 36,
+ 20, 74, 37, 0, 57, 20, 23, 36, 20, 74,
+ 37, 0, 74, 75, 0, 75, 0, 20, 0, 41,
+ 76, 0, 42, 76, 0, 41, 43, 76, 0, 42,
+ 43, 76, 0, 43, 43, 76, 0, 44, 43, 76,
+ 0, 21, 0, 45, 21, 0, 20, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 216, 217, 218, 219, 222, 228, 233, 239, 246, 251,
- 258, 263, 264, 265, 266, 267, 268, 271, 272, 273,
- 276, 279, 283, 316, 344, 345, 348, 351, 357, 358,
- 366, 370, 377, 380, 383, 386, 389, 392, 395, 398,
- 401, 404, 408, 411, 416, 419, 422, 425, 428, 433,
- 436, 439, 444, 445, 449, 461, 467, 479, 491, 494,
- 500, 505, 508, 513, 514, 518, 528, 538, 548, 558,
- 568, 574, 579, 600, 601, 605, 608, 609, 620, 630,
- 633, 634, 637, 638, 641, 644, 647, 655, 665, 666,
- 669, 682, 686, 690, 694, 698, 702, 708, 709, 713
+ 221, 222, 223, 224, 227, 233, 238, 244, 251, 256,
+ 263, 268, 269, 270, 271, 272, 273, 276, 277, 278,
+ 281, 284, 288, 323, 353, 362, 368, 369, 372, 375,
+ 381, 382, 390, 394, 401, 404, 407, 410, 413, 416,
+ 419, 422, 425, 428, 432, 435, 440, 443, 446, 449,
+ 452, 457, 460, 463, 468, 469, 473, 485, 491, 503,
+ 515, 518, 524, 529, 532, 537, 538, 542, 552, 562,
+ 572, 582, 592, 598, 603, 624, 625, 629, 632, 633,
+ 644, 654, 657, 658, 661, 662, 665, 668, 671, 679,
+ 689, 690, 693, 706, 710, 714, 718, 722, 726, 732,
+ 733, 737
};
#endif
"ARRAY_DIM","CCODE","HCODE","PUBLIC","PRIVATE","PROTECTED","ARGUMENT","VIRTUAL",
"SIGNAL","OVERRIDE","'{'","'}'","';'","'('","')'","'|'","'*'","','","'>'","'<'",
"'='","'!'","'-'","prog","ccodes","class","classdec","classcode","scope","variable",
-"argument","argflags","flaglist","type","type1","type2","integer","tspecifier",
-"stars","simplesigtype","fullsigtype","sigtype","tokenlist","codenocode","method",
-"onerror","funcargs","arglist","arglist1","arg","checklist","check","numtok", NULL
+"argument","argtype","argflags","flaglist","type","type1","type2","integer",
+"tspecifier","stars","simplesigtype","fullsigtype","sigtype","tokenlist","codenocode",
+"method","onerror","funcargs","arglist","arglist1","arg","checklist","check",
+"numtok", NULL
};
#endif
46, 46, 46, 46, 47, 47, 47, 47, 48, 48,
49, 50, 50, 50, 50, 50, 50, 51, 51, 51,
52, 52, 53, 53, 54, 54, 55, 55, 56, 56,
- 57, 57, 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 59, 59, 59, 59, 59, 60,
- 60, 60, 61, 61, 62, 62, 63, 63, 63, 63,
- 64, 65, 65, 66, 66, 67, 67, 67, 67, 67,
- 67, 67, 67, 68, 68, 68, 69, 69, 69, 69,
- 70, 70, 71, 71, 72, 72, 72, 72, 73, 73,
- 74, 74, 74, 74, 74, 74, 74, 75, 75, 75
+ 57, 57, 58, 58, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 60, 60, 60, 60,
+ 60, 61, 61, 61, 62, 62, 63, 63, 64, 64,
+ 64, 64, 65, 66, 66, 67, 67, 68, 68, 68,
+ 68, 68, 68, 68, 68, 69, 69, 69, 70, 70,
+ 70, 70, 71, 71, 72, 72, 73, 73, 73, 73,
+ 74, 74, 75, 75, 75, 75, 75, 75, 75, 76,
+ 76, 76
};
static const short yyr2[] = { 0,
3, 2, 2, 1, 2, 2, 1, 1, 4, 3,
4, 2, 2, 2, 1, 1, 1, 1, 1, 1,
- 4, 5, 11, 8, 3, 0, 3, 1, 1, 2,
- 1, 2, 2, 2, 1, 2, 2, 1, 1, 1,
- 1, 2, 1, 1, 2, 1, 2, 1, 1, 1,
- 1, 1, 2, 1, 2, 1, 3, 3, 2, 1,
- 4, 3, 1, 2, 1, 9, 10, 9, 9, 8,
- 11, 8, 5, 2, 3, 0, 1, 1, 3, 1,
- 3, 1, 3, 1, 2, 3, 6, 7, 2, 1,
- 1, 2, 2, 3, 3, 3, 3, 1, 2, 1
+ 4, 5, 11, 8, 5, 1, 3, 0, 3, 1,
+ 1, 2, 1, 2, 2, 2, 1, 2, 2, 1,
+ 1, 1, 1, 2, 1, 1, 2, 1, 2, 1,
+ 1, 1, 1, 1, 2, 1, 2, 1, 3, 3,
+ 2, 1, 4, 3, 1, 2, 1, 9, 10, 9,
+ 9, 8, 11, 8, 5, 2, 3, 0, 1, 1,
+ 3, 1, 3, 1, 3, 1, 2, 3, 6, 7,
+ 2, 1, 1, 2, 2, 3, 3, 3, 3, 1,
+ 2, 1
};
static const short yydefact[] = { 0,
0, 7, 8, 0, 4, 0, 0, 5, 6, 3,
- 2, 0, 0, 1, 0, 18, 19, 20, 26, 0,
+ 2, 0, 0, 1, 0, 18, 19, 20, 28, 0,
0, 0, 10, 0, 0, 16, 17, 15, 11, 0,
- 0, 0, 0, 44, 52, 51, 50, 0, 0, 46,
- 48, 49, 40, 39, 38, 41, 43, 0, 0, 29,
- 31, 35, 0, 0, 0, 60, 0, 56, 0, 9,
- 13, 14, 12, 0, 0, 0, 0, 28, 0, 0,
- 30, 37, 34, 36, 33, 45, 47, 0, 0, 54,
- 32, 42, 0, 0, 0, 55, 0, 59, 0, 0,
- 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 53, 63, 0, 58, 57, 0, 0, 0, 0, 0,
- 21, 0, 0, 65, 73, 27, 0, 0, 44, 41,
- 0, 0, 80, 82, 84, 61, 0, 0, 0, 0,
- 0, 22, 0, 64, 0, 0, 0, 85, 76, 0,
- 62, 0, 0, 0, 0, 76, 0, 76, 79, 86,
- 0, 0, 0, 81, 83, 76, 0, 76, 0, 0,
- 0, 24, 0, 0, 0, 100, 98, 0, 0, 74,
- 70, 0, 0, 0, 76, 72, 0, 68, 0, 91,
- 0, 0, 0, 0, 0, 90, 75, 99, 66, 76,
- 69, 0, 0, 0, 0, 92, 0, 93, 0, 0,
- 87, 89, 0, 67, 23, 88, 94, 95, 96, 97,
- 71, 0, 0, 0
+ 0, 0, 0, 46, 54, 53, 52, 0, 0, 48,
+ 50, 51, 42, 41, 40, 43, 45, 0, 0, 31,
+ 33, 37, 0, 0, 0, 62, 0, 58, 0, 9,
+ 13, 14, 12, 0, 0, 0, 0, 30, 0, 26,
+ 0, 32, 39, 36, 38, 35, 47, 49, 0, 0,
+ 56, 34, 44, 0, 0, 0, 57, 0, 61, 0,
+ 0, 0, 0, 0, 0, 0, 0, 27, 0, 0,
+ 0, 0, 55, 65, 0, 60, 59, 0, 0, 0,
+ 0, 0, 21, 0, 0, 67, 75, 29, 0, 0,
+ 0, 46, 43, 0, 0, 82, 84, 86, 63, 0,
+ 0, 0, 0, 0, 22, 0, 66, 0, 0, 0,
+ 0, 87, 78, 0, 64, 0, 0, 0, 0, 78,
+ 25, 0, 78, 81, 88, 0, 0, 0, 83, 85,
+ 78, 0, 78, 0, 0, 0, 24, 0, 0, 0,
+ 102, 100, 0, 0, 76, 72, 0, 0, 0, 78,
+ 74, 0, 70, 0, 93, 0, 0, 0, 0, 0,
+ 92, 77, 101, 68, 78, 71, 0, 0, 0, 0,
+ 94, 0, 95, 0, 0, 89, 91, 0, 69, 23,
+ 90, 96, 97, 98, 99, 73, 0, 0, 0
};
-static const short yydefgoto[] = { 212,
- 4, 5, 6, 24, 25, 26, 27, 32, 69, 121,
- 50, 51, 52, 53, 81, 56, 57, 58, 103, 115,
- 28, 153, 122, 123, 124, 125, 185, 186, 170
+static const short yydefgoto[] = { 217,
+ 4, 5, 6, 24, 25, 26, 27, 71, 32, 69,
+ 124, 50, 51, 52, 53, 82, 56, 57, 58, 105,
+ 117, 28, 158, 125, 126, 127, 128, 190, 191, 175
};
-static const short yypact[] = { 77,
- -16,-32768,-32768, 85, 65, 6, 51,-32768,-32768, 65,
- 120, 216, 42, 120, 46,-32768,-32768,-32768, 62, 115,
- 15, 89,-32768, 229, 54,-32768,-32768,-32768,-32768, 91,
- 116, 131, 206,-32768,-32768,-32768,-32768, 79, 135, 125,
- 140,-32768,-32768,-32768,-32768,-32768,-32768, 171, 161,-32768,
- 151,-32768, 172, 205, 179,-32768, 171,-32768, 186,-32768,
--32768,-32768,-32768, 171, 190, 196, 197, 199, 198, 207,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 218, 203, 151,
--32768,-32768, 204, 231, 232,-32768, -7,-32768, 233, 217,
- 242, -7, 171, 111, 139, 116,-32768, 244, 230, 189,
--32768,-32768, -30,-32768,-32768, 234, 171, 235, 245, 237,
--32768, 189, 243,-32768,-32768,-32768, 236, 189, 238, 59,
- 248, 239,-32768, 240,-32768,-32768, 253, 189, 254, 189,
- 241,-32768, 246,-32768, 255, 247, 171, 9, 259, 153,
--32768, 249, 251, 252, 189, 259, -5, 259,-32768, 256,
- 261, 5, 139,-32768,-32768, 259, 189, 259, 257, 139,
- 258,-32768, 139, 262, 75,-32768,-32768, 264, 269,-32768,
--32768, 139, 260, 139, 259,-32768, 271,-32768, 75,-32768,
- 13, 32, 250, 263, 63,-32768,-32768,-32768,-32768, 259,
--32768, 139, 265, 71, 58,-32768, 58,-32768, 58, 58,
--32768,-32768, 139,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 285, 296,-32768
+static const short yypact[] = { 69,
+ -13,-32768,-32768, 73, 89, -19, 17,-32768,-32768, 89,
+ 125, 216, 11, 125, 6,-32768,-32768,-32768, 46, 115,
+ 120, 50,-32768, 229, 53,-32768,-32768,-32768,-32768, 68,
+ 76, 81, 206,-32768,-32768,-32768,-32768, 251, 257, 92,
+ 110,-32768,-32768,-32768,-32768,-32768,-32768, 171, 131,-32768,
+ 114,-32768, 135, 205, 152,-32768, 171,-32768, 159,-32768,
+-32768,-32768,-32768, 171, 154, 170, 155, 161, 173, 172,
+ 196,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 207, 193,
+ 114,-32768,-32768, 194, 214, 215,-32768, -10,-32768, 217,
+ 201, 219, -10, 171, 56, 101, 76,-32768, 220, 231,
+ 218, 189,-32768,-32768, -5,-32768,-32768, 226, 171, 232,
+ 233, 238,-32768, 189, 228,-32768,-32768,-32768, 171, 234,
+ 189, 237, 16, 256, 240,-32768, 239,-32768,-32768, 258,
+ 189, 260, 189, 245,-32768, 246,-32768, 247, 261, 249,
+ 171, -7, 263, 153,-32768, 250, 252, 253, 189, 263,
+-32768, -8, 263,-32768, 255, 269, 10, 101,-32768,-32768,
+ 263, 189, 263, 259, 101, 262,-32768, 101, 272, 4,
+-32768,-32768, 270, 276,-32768,-32768, 101, 264, 101, 263,
+-32768, 274,-32768, 4,-32768, 57, 60, 265, 266, 67,
+-32768,-32768,-32768,-32768, 263,-32768, 101, 267, 75, 18,
+-32768, 18,-32768, 18, 18,-32768,-32768, 101,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768, 293, 299,-32768
};
static const short yypgoto[] = {-32768,
- 76, 294,-32768,-32768, 3, 275, 277,-32768, 208, -20,
- 270,-32768, 191,-32768, 222, 266,-32768, -38,-32768, -152,
- 281, -144, -109, 170,-32768, 168, 130, -167, -43
+ 80, 296,-32768,-32768, -18, 279, 280,-32768,-32768, 208,
+ -20, 273,-32768, 106,-32768, 230, 242,-32768, -36,-32768,
+ -157, 286, -146, -108, 174,-32768, 168, 129, -84, -48
};
-#define YYLAST 331
+#define YYLAST 315
static const short yytable[] = { 49,
- 171, 160, 133, 163, 66, 7, 126, 176, 136, 127,
- 178, 172, 83, 174, 161, 86, 88, 202, 142, 189,
- 144, 191, 48, 55, 166, 167, 202, 78, 84, 162,
- 192, 150, 166, 167, 54, 159, 89, 168, 12, 204,
- 16, 17, 18, 91, 151, 203, 104, 173, 105, 169,
- 211, 166, 167, 86, 13, 195, 85, 169, 33, 34,
- 35, 36, 37, 29, 38, 39, 40, 41, 42, 43,
- 44, 45, 109, 46, 197, 47, 169, 166, 167, 1,
- 11, 30, 180, 64, 65, 14, 129, 1, 2, 3,
- 180, 40, 41, 42, 180, -78, 72, 31, 137, 201,
- 2, 3, 169, 181, 182, 183, 184, 206, 8, 9,
- 67, 181, 182, 183, 184, 181, 182, 183, 184, 33,
- 34, 35, 36, 37, 59, 38, 39, 40, 41, 42,
- 43, 44, 45, 110, 46, 68, 47, 196, 198, 76,
- 16, 17, 18, 8, 9, 111, 112, 40, 41, 42,
- 70, 207, 74, 208, 77, 209, 210, 33, 34, 35,
- 36, 37, 154, 38, 39, 40, 41, 42, 43, 44,
- 45, 113, 46, 114, 47, 33, 34, 35, 36, 37,
- 79, 38, 39, 40, 41, 42, 43, 44, 45, 80,
- 46, 82, 47, 33, 119, 35, 36, 37, 87, 38,
- 39, 40, 41, 42, 43, 44, 45, 90, 120, 92,
- 47, 34, 35, 36, 37, 94, 38, 39, 40, 41,
- 42, 43, 44, 45, 83, 46, 98, 47, 73, 75,
- 16, 17, 18, 95, 97, 15, 96, 99, 100, 84,
- 84, 16, 17, 18, 19, 20, 21, 22, 15, 23,
- 102, 83, 106, 107, 16, 17, 18, 19, 20, 21,
- 22, 108, 60, 117, 131, 118, 134, 138, 135, 128,
- 130, 132, 141, 143, -77, 139, 145, 152, 147, 140,
- 165, 179, 146, 148, 213, 156, 157, 187, 158, 188,
- 177, 164, 199, 175, 193, 214, 190, 10, 61, 205,
- 62, 101, 71, 116, 63, 200, 149, 155, 194, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 93
+ 176, 48, 55, 165, 66, 136, 168, 181, 7, 84,
+ 183, 166, 140, 12, 177, 155, 179, 87, 89, 194,
+ 13, 196, 146, 185, 148, 85, 167, 79, 156, 171,
+ 172, 129, 29, 197, 130, 86, 90, 171, 172, 209,
+ 164, 30, 173, 92, 186, 187, 188, 189, 208, 106,
+ 216, 107, -80, 178, 174, 141, 87, 33, 34, 35,
+ 36, 37, 174, 38, 39, 40, 41, 42, 43, 44,
+ 45, 1, 46, 111, 47, 1, 171, 172, 112, 171,
+ 172, 31, 64, 65, 11, 59, 185, 67, 132, 14,
+ 113, 114, 2, 3, 185, 68, 8, 9, 138, 200,
+ 70, 174, 202, 206, 174, 207, 77, 186, 187, 188,
+ 189, 211, 2, 3, 207, 186, 187, 188, 189, 33,
+ 34, 35, 36, 37, 78, 38, 39, 40, 41, 42,
+ 43, 44, 45, 115, 46, 116, 47, 201, 203, 54,
+ 16, 17, 18, 74, 76, 16, 17, 18, 8, 9,
+ 80, 212, 81, 213, 83, 214, 215, 33, 34, 35,
+ 36, 37, 159, 38, 39, 40, 41, 42, 43, 44,
+ 45, 88, 46, 93, 47, 33, 34, 35, 36, 37,
+ 91, 38, 39, 40, 41, 42, 43, 44, 45, 95,
+ 46, 96, 47, 33, 122, 35, 36, 37, 97, 38,
+ 39, 40, 41, 42, 43, 44, 45, 99, 123, 98,
+ 47, 34, 35, 36, 37, 100, 38, 39, 40, 41,
+ 42, 43, 44, 45, 84, 46, 101, 47, 102, 85,
+ 16, 17, 18, 104, 84, 15, 108, 109, 110, 119,
+ 85, 16, 17, 18, 19, 20, 21, 22, 15, 23,
+ 120, 137, 134, 121, 16, 17, 18, 19, 20, 21,
+ 22, 131, 60, 40, 41, 42, 139, 133, 73, 40,
+ 41, 42, 135, -79, 75, 142, 143, 145, 144, 147,
+ 149, 157, 150, 151, 152, 153, 161, 162, 170, 163,
+ 169, 184, 218, 192, 182, 180, 193, 198, 219, 10,
+ 195, 210, 61, 62, 118, 72, 94, 204, 205, 63,
+ 103, 160, 199, 0, 154
};
static const short yycheck[] = { 20,
- 153, 146, 112, 148, 25, 22, 37, 160, 118, 40,
- 163, 156, 20, 158, 20, 54, 55, 185, 128, 172,
- 130, 174, 20, 21, 20, 21, 194, 48, 36, 35,
- 175, 23, 20, 21, 20, 145, 57, 33, 33, 192,
- 26, 27, 28, 64, 36, 190, 85, 157, 87, 45,
- 203, 20, 21, 92, 4, 43, 54, 45, 5, 6,
- 7, 8, 9, 22, 11, 12, 13, 14, 15, 16,
- 17, 18, 93, 20, 43, 22, 45, 20, 21, 3,
- 5, 36, 20, 30, 31, 10, 107, 3, 24, 25,
- 20, 13, 14, 15, 20, 37, 18, 36, 40, 37,
- 24, 25, 45, 41, 42, 43, 44, 37, 24, 25,
- 20, 41, 42, 43, 44, 41, 42, 43, 44, 5,
- 6, 7, 8, 9, 36, 11, 12, 13, 14, 15,
- 16, 17, 18, 23, 20, 20, 22, 181, 182, 15,
- 26, 27, 28, 24, 25, 35, 36, 13, 14, 15,
- 20, 195, 18, 197, 15, 199, 200, 5, 6, 7,
+ 158, 20, 21, 150, 25, 114, 153, 165, 22, 20,
+ 168, 20, 121, 33, 161, 23, 163, 54, 55, 177,
+ 4, 179, 131, 20, 133, 36, 35, 48, 36, 20,
+ 21, 37, 22, 180, 40, 54, 57, 20, 21, 197,
+ 149, 36, 33, 64, 41, 42, 43, 44, 195, 86,
+ 208, 88, 37, 162, 45, 40, 93, 5, 6, 7,
+ 8, 9, 45, 11, 12, 13, 14, 15, 16, 17,
+ 18, 3, 20, 94, 22, 3, 20, 21, 23, 20,
+ 21, 36, 30, 31, 5, 36, 20, 20, 109, 10,
+ 35, 36, 24, 25, 20, 20, 24, 25, 119, 43,
+ 20, 45, 43, 37, 45, 190, 15, 41, 42, 43,
+ 44, 37, 24, 25, 199, 41, 42, 43, 44, 5,
+ 6, 7, 8, 9, 15, 11, 12, 13, 14, 15,
+ 16, 17, 18, 33, 20, 35, 22, 186, 187, 20,
+ 26, 27, 28, 38, 39, 26, 27, 28, 24, 25,
+ 20, 200, 39, 202, 20, 204, 205, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 33, 20, 35, 22, 5, 6, 7, 8, 9,
- 20, 11, 12, 13, 14, 15, 16, 17, 18, 39,
- 20, 20, 22, 5, 6, 7, 8, 9, 20, 11,
- 12, 13, 14, 15, 16, 17, 18, 22, 20, 20,
+ 18, 20, 20, 20, 22, 5, 6, 7, 8, 9,
+ 22, 11, 12, 13, 14, 15, 16, 17, 18, 20,
+ 20, 37, 22, 5, 6, 7, 8, 9, 38, 11,
+ 12, 13, 14, 15, 16, 17, 18, 36, 20, 37,
22, 6, 7, 8, 9, 20, 11, 12, 13, 14,
- 15, 16, 17, 18, 20, 20, 20, 22, 38, 39,
- 26, 27, 28, 37, 37, 20, 38, 20, 36, 36,
+ 15, 16, 17, 18, 20, 20, 20, 22, 36, 36,
+ 26, 27, 28, 20, 20, 20, 20, 37, 20, 20,
36, 26, 27, 28, 29, 30, 31, 32, 20, 34,
- 20, 20, 20, 37, 26, 27, 28, 29, 30, 31,
- 32, 20, 34, 20, 20, 36, 24, 20, 33, 36,
- 36, 35, 20, 20, 37, 37, 36, 19, 24, 40,
- 20, 20, 37, 37, 0, 37, 36, 24, 37, 21,
- 33, 36, 43, 37, 24, 0, 37, 4, 24, 35,
- 24, 80, 33, 96, 24, 43, 137, 140, 179, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 65
+ 20, 24, 20, 36, 26, 27, 28, 29, 30, 31,
+ 32, 36, 34, 13, 14, 15, 33, 36, 18, 13,
+ 14, 15, 35, 37, 18, 20, 37, 20, 40, 20,
+ 36, 19, 37, 37, 24, 37, 37, 36, 20, 37,
+ 36, 20, 0, 24, 33, 37, 21, 24, 0, 4,
+ 37, 35, 24, 24, 97, 33, 65, 43, 43, 24,
+ 81, 144, 184, -1, 141
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple"
switch (yyn) {
case 1:
-#line 216 "parse.y"
+#line 221 "parse.y"
{ ; ;
break;}
case 2:
-#line 217 "parse.y"
+#line 222 "parse.y"
{ ; ;
break;}
case 3:
-#line 218 "parse.y"
+#line 223 "parse.y"
{ ; ;
break;}
case 4:
-#line 219 "parse.y"
+#line 224 "parse.y"
{ ; ;
break;}
case 5:
-#line 222 "parse.y"
+#line 227 "parse.y"
{
Node *node = new_ccode(FALSE,(yyvsp[0].cbuf)->str,
ccode_line);
;
break;}
case 6:
-#line 228 "parse.y"
+#line 233 "parse.y"
{
Node *node = new_ccode(TRUE,(yyvsp[0].cbuf)->str,ccode_line);
nodes = g_list_append(nodes,node);
;
break;}
case 7:
-#line 233 "parse.y"
+#line 238 "parse.y"
{
Node *node = new_ccode(FALSE,(yyvsp[0].cbuf)->str,
ccode_line);
;
break;}
case 8:
-#line 239 "parse.y"
+#line 244 "parse.y"
{
Node *node = new_ccode(TRUE,(yyvsp[0].cbuf)->str,ccode_line);
nodes = g_list_append(nodes,node);
;
break;}
case 9:
-#line 246 "parse.y"
+#line 251 "parse.y"
{
((Class *)class)->nodes = class_nodes;
class_nodes = NULL;
;
break;}
case 10:
-#line 251 "parse.y"
+#line 256 "parse.y"
{
((Class *)class)->nodes = NULL;
class_nodes = NULL;
;
break;}
case 11:
-#line 258 "parse.y"
+#line 263 "parse.y"
{
class = new_class(yyvsp[-2].id,yyvsp[0].id,NULL);
;
break;}
case 12:
-#line 263 "parse.y"
+#line 268 "parse.y"
{ ; ;
break;}
case 13:
-#line 264 "parse.y"
+#line 269 "parse.y"
{ ; ;
break;}
case 14:
-#line 265 "parse.y"
+#line 270 "parse.y"
{ ; ;
break;}
case 15:
-#line 266 "parse.y"
+#line 271 "parse.y"
{ ; ;
break;}
case 16:
-#line 267 "parse.y"
+#line 272 "parse.y"
{ ; ;
break;}
case 17:
-#line 268 "parse.y"
+#line 273 "parse.y"
{ ; ;
break;}
case 18:
-#line 271 "parse.y"
+#line 276 "parse.y"
{ the_scope = PUBLIC_SCOPE; ;
break;}
case 19:
-#line 272 "parse.y"
+#line 277 "parse.y"
{ the_scope = PRIVATE_SCOPE; ;
break;}
case 20:
-#line 273 "parse.y"
+#line 278 "parse.y"
{ the_scope = PROTECTED_SCOPE; ;
break;}
case 21:
-#line 276 "parse.y"
+#line 281 "parse.y"
{
push_variable(yyvsp[-1].id,the_scope,yyvsp[-3].line,NULL);
;
break;}
case 22:
-#line 279 "parse.y"
+#line 284 "parse.y"
{
push_variable(yyvsp[-2].id,the_scope,yyvsp[-4].line,yyvsp[-1].id);
;
break;}
case 23:
-#line 283 "parse.y"
+#line 288 "parse.y"
{
if(strcmp(yyvsp[-6].id,"get")==0 &&
strcmp(yyvsp[-3].id,"set")==0) {
Node *node;
+ Type *type = pop_type();
g_free(yyvsp[-6].id); g_free(yyvsp[-3].id);
- node = new_argument(yyvsp[-8].id,yyvsp[-9].list,yyvsp[-7].id,
+ node = new_argument(yyvsp[-8].id,type,yyvsp[-9].list,yyvsp[-7].id,
(yyvsp[-4].cbuf)->str,yyvsp[-5].line,
(yyvsp[-1].cbuf)->str,yyvsp[-2].line,
yyvsp[-10].line);
} else if(strcmp(yyvsp[-6].id,"set")==0 &&
strcmp(yyvsp[-3].id,"get")==0) {
Node *node;
+ Type *type = pop_type();
g_free(yyvsp[-6].id); g_free(yyvsp[-3].id);
- node = new_argument(yyvsp[-8].id,yyvsp[-9].list,yyvsp[-7].id,
+ node = new_argument(yyvsp[-8].id,type,yyvsp[-9].list,yyvsp[-7].id,
(yyvsp[-1].cbuf)->str,yyvsp[-2].line,
(yyvsp[-4].cbuf)->str,yyvsp[-5].line,
yyvsp[-10].line);
;
break;}
case 24:
-#line 316 "parse.y"
+#line 323 "parse.y"
{
if(strcmp(yyvsp[-3].id,"get")==0) {
Node *node;
+ Type *type = pop_type();
g_free(yyvsp[-3].id);
- node = new_argument(yyvsp[-5].id,yyvsp[-6].list,yyvsp[-4].id,
+ node = new_argument(yyvsp[-5].id,type,yyvsp[-6].list,yyvsp[-4].id,
(yyvsp[-1].cbuf)->str,yyvsp[-2].line,
NULL,0, yyvsp[-7].line);
g_string_free(yyvsp[-1].cbuf,FALSE);
class_nodes = g_list_append(class_nodes,node);
} else if(strcmp(yyvsp[-3].id,"set")==0) {
Node *node;
+ Type *type = pop_type();
g_free(yyvsp[-3].id);
- node = new_argument(yyvsp[-5].id,yyvsp[-6].list,yyvsp[-4].id,
+ node = new_argument(yyvsp[-5].id,type,yyvsp[-6].list,yyvsp[-4].id,
NULL,0,(yyvsp[-1].cbuf)->str,
yyvsp[-2].line, yyvsp[-7].line);
g_string_free(yyvsp[-1].cbuf,FALSE);
;
break;}
case 25:
-#line 344 "parse.y"
-{ yyval.list = yyvsp[-1].list; ;
+#line 353 "parse.y"
+{
+ if(strcmp(yyvsp[-2].id,"type")!=0) {
+ g_free(yyvsp[-4].id);
+ g_free(yyvsp[-2].id);
+ yyerror(_("parse error"));
+ YYERROR;
+ }
+ yyval.id = yyvsp[-4].id;
+ ;
break;}
case 26:
-#line 345 "parse.y"
-{ yyval.list = NULL; ;
+#line 362 "parse.y"
+{
+ yyval.id = yyvsp[0].id;
+ typestack = g_list_prepend(typestack,NULL);
+ ;
break;}
case 27:
-#line 348 "parse.y"
+#line 368 "parse.y"
+{ yyval.list = yyvsp[-1].list; ;
+ break;}
+case 28:
+#line 369 "parse.y"
+{ yyval.list = NULL; ;
+ break;}
+case 29:
+#line 372 "parse.y"
{
yyval.list = g_list_append(yyvsp[0].list,yyvsp[-2].id);
;
break;}
-case 28:
-#line 351 "parse.y"
+case 30:
+#line 375 "parse.y"
{
yyval.list = g_list_append(NULL,yyvsp[0].id);
;
break;}
-case 29:
-#line 357 "parse.y"
+case 31:
+#line 381 "parse.y"
{ ; ;
break;}
-case 30:
-#line 358 "parse.y"
+case 32:
+#line 382 "parse.y"
{
Type *type = typestack->data;
char *oldname = type->name;
g_free(oldname);
;
break;}
-case 31:
-#line 366 "parse.y"
+case 33:
+#line 390 "parse.y"
{
Node *node = new_type(0,yyvsp[0].id,NULL);
typestack = g_list_prepend(typestack,node);
;
break;}
-case 32:
-#line 370 "parse.y"
+case 34:
+#line 394 "parse.y"
{
Node *node = new_type(stars,yyvsp[-1].id,NULL);
stars = 0;
typestack = g_list_prepend(typestack,node);
;
break;}
-case 33:
-#line 377 "parse.y"
+case 35:
+#line 401 "parse.y"
{
yyval.id = g_strconcat("unsigned ",yyvsp[0].id,NULL);
;
break;}
-case 34:
-#line 380 "parse.y"
+case 36:
+#line 404 "parse.y"
{
yyval.id = g_strconcat("signed ",yyvsp[0].id,NULL);
;
break;}
-case 35:
-#line 383 "parse.y"
+case 37:
+#line 407 "parse.y"
{
yyval.id = g_strdup(yyvsp[0].id);
;
break;}
-case 36:
-#line 386 "parse.y"
+case 38:
+#line 410 "parse.y"
{
yyval.id = g_strdup("unsigned char");
;
break;}
-case 37:
-#line 389 "parse.y"
+case 39:
+#line 413 "parse.y"
{
yyval.id = g_strdup("signed char");
;
break;}
-case 38:
-#line 392 "parse.y"
+case 40:
+#line 416 "parse.y"
{
yyval.id = g_strdup("char");
;
break;}
-case 39:
-#line 395 "parse.y"
+case 41:
+#line 419 "parse.y"
{
yyval.id = g_strdup("double");
;
break;}
-case 40:
-#line 398 "parse.y"
+case 42:
+#line 422 "parse.y"
{
yyval.id = g_strdup("float");
;
break;}
-case 41:
-#line 401 "parse.y"
+case 43:
+#line 425 "parse.y"
{
yyval.id = yyvsp[0].id;
;
break;}
-case 42:
-#line 404 "parse.y"
+case 44:
+#line 428 "parse.y"
{
yyval.id = g_strconcat(yyvsp[-1].id,yyvsp[0].id,NULL);
g_free(yyvsp[0].id);
;
break;}
-case 43:
-#line 408 "parse.y"
+case 45:
+#line 432 "parse.y"
{
yyval.id = yyvsp[0].id;
;
break;}
-case 44:
-#line 411 "parse.y"
+case 46:
+#line 435 "parse.y"
{
yyval.id = g_strdup("void");
;
break;}
-case 45:
-#line 416 "parse.y"
+case 47:
+#line 440 "parse.y"
{
yyval.id = "long int";
;
break;}
-case 46:
-#line 419 "parse.y"
+case 48:
+#line 443 "parse.y"
{
yyval.id = "long";
;
break;}
-case 47:
-#line 422 "parse.y"
+case 49:
+#line 446 "parse.y"
{
yyval.id = "short int";
;
break;}
-case 48:
-#line 425 "parse.y"
+case 50:
+#line 449 "parse.y"
{
yyval.id = "short";
;
break;}
-case 49:
-#line 428 "parse.y"
+case 51:
+#line 452 "parse.y"
{
yyval.id = "int";
;
break;}
-case 50:
-#line 433 "parse.y"
+case 52:
+#line 457 "parse.y"
{
yyval.id = "enum ";
;
break;}
-case 51:
-#line 436 "parse.y"
+case 53:
+#line 460 "parse.y"
{
yyval.id = "union ";
;
break;}
-case 52:
-#line 439 "parse.y"
+case 54:
+#line 463 "parse.y"
{
yyval.id = "struct ";
;
break;}
-case 53:
-#line 444 "parse.y"
+case 55:
+#line 468 "parse.y"
{ stars++; ;
break;}
-case 54:
-#line 445 "parse.y"
+case 56:
+#line 469 "parse.y"
{ stars++; ;
break;}
-case 55:
-#line 449 "parse.y"
+case 57:
+#line 473 "parse.y"
{
if(strcmp(yyvsp[-1].id,"first")==0)
yyval.sigtype = SIGNAL_FIRST_METHOD;
g_free(yyvsp[-1].id);
;
break;}
-case 56:
-#line 461 "parse.y"
+case 58:
+#line 485 "parse.y"
{
yyval.sigtype = SIGNAL_LAST_METHOD;
;
break;}
-case 57:
-#line 467 "parse.y"
+case 59:
+#line 491 "parse.y"
{
if(strcmp(yyvsp[-1].id,"first")==0)
yyval.sigtype = SIGNAL_FIRST_METHOD;
g_free(yyvsp[-1].id);
;
break;}
-case 58:
-#line 479 "parse.y"
+case 60:
+#line 503 "parse.y"
{
if(strcmp(yyvsp[-2].id,"first")==0)
yyval.sigtype = SIGNAL_FIRST_METHOD;
g_free(yyvsp[-2].id);
;
break;}
-case 59:
-#line 491 "parse.y"
+case 61:
+#line 515 "parse.y"
{
yyval.sigtype = SIGNAL_LAST_METHOD;
;
break;}
-case 60:
-#line 494 "parse.y"
+case 62:
+#line 518 "parse.y"
{
/* the_scope was default thus public */
the_scope = PUBLIC_SCOPE;
;
break;}
-case 61:
-#line 500 "parse.y"
+case 63:
+#line 524 "parse.y"
{
gtktypes = g_list_prepend(gtktypes,yyvsp[-3].id);
;
break;}
-case 62:
-#line 505 "parse.y"
+case 64:
+#line 529 "parse.y"
{
gtktypes = g_list_append(gtktypes,yyvsp[0].id);
;
break;}
-case 63:
-#line 508 "parse.y"
+case 65:
+#line 532 "parse.y"
{
gtktypes = g_list_append(gtktypes,yyvsp[0].id);
;
break;}
-case 64:
-#line 513 "parse.y"
+case 66:
+#line 537 "parse.y"
{ yyval.cbuf = yyvsp[0].cbuf; ;
break;}
-case 65:
-#line 514 "parse.y"
+case 67:
+#line 538 "parse.y"
{ yyval.cbuf = NULL; ;
break;}
-case 66:
-#line 518 "parse.y"
+case 68:
+#line 542 "parse.y"
{
if(!has_self) {
yyerror(_("signal without 'self' as "
ccode_line,vararg);
;
break;}
-case 67:
-#line 528 "parse.y"
+case 69:
+#line 552 "parse.y"
{
if(!has_self) {
yyerror(_("signal without 'self' as "
ccode_line,vararg);
;
break;}
-case 68:
-#line 538 "parse.y"
+case 70:
+#line 562 "parse.y"
{
if(!has_self) {
yyerror(_("virtual method without 'self' as "
ccode_line,vararg);
;
break;}
-case 69:
-#line 548 "parse.y"
+case 71:
+#line 572 "parse.y"
{
if(!has_self) {
yyerror(_("virtual method without 'self' as "
ccode_line,vararg);
;
break;}
-case 70:
-#line 558 "parse.y"
+case 72:
+#line 582 "parse.y"
{
if(!has_self) {
yyerror(_("virtual method without 'self' as "
ccode_line,vararg);
;
break;}
-case 71:
-#line 568 "parse.y"
+case 73:
+#line 592 "parse.y"
{
push_function(NO_SCOPE, OVERRIDE_METHOD, yyvsp[-8].id,
yyvsp[-5].id, yyvsp[-1].id, yyvsp[0].cbuf,
vararg);
;
break;}
-case 72:
-#line 574 "parse.y"
+case 74:
+#line 598 "parse.y"
{
push_function(the_scope, REGULAR_METHOD, NULL, yyvsp[-5].id,
yyvsp[-1].id, yyvsp[0].cbuf,yyvsp[-7].line,ccode_line,
vararg);
;
break;}
-case 73:
-#line 579 "parse.y"
+case 75:
+#line 603 "parse.y"
{
if(strcmp(yyvsp[-4].id,"init")==0) {
push_init_arg(yyvsp[-2].id,FALSE);
}
;
break;}
-case 74:
-#line 600 "parse.y"
+case 76:
+#line 624 "parse.y"
{ yyval.id = yyvsp[0].id; ;
break;}
-case 75:
-#line 601 "parse.y"
+case 77:
+#line 625 "parse.y"
{
yyval.id = (yyvsp[0].cbuf)->str;
g_string_free(yyvsp[0].cbuf,FALSE);
;
break;}
-case 76:
-#line 605 "parse.y"
+case 78:
+#line 629 "parse.y"
{ yyval.id = NULL; ;
break;}
-case 77:
-#line 608 "parse.y"
+case 79:
+#line 632 "parse.y"
{ vararg = FALSE; has_self = FALSE; ;
break;}
-case 78:
-#line 609 "parse.y"
+case 80:
+#line 633 "parse.y"
{
vararg = FALSE;
has_self = TRUE;
}
;
break;}
-case 79:
-#line 620 "parse.y"
+case 81:
+#line 644 "parse.y"
{
has_self = TRUE;
if(strcmp(yyvsp[-2].id,"self")==0)
}
;
break;}
-case 80:
-#line 630 "parse.y"
+case 82:
+#line 654 "parse.y"
{ has_self = FALSE; ;
break;}
-case 81:
-#line 633 "parse.y"
+case 83:
+#line 657 "parse.y"
{ vararg = TRUE; ;
break;}
-case 82:
-#line 634 "parse.y"
+case 84:
+#line 658 "parse.y"
{ vararg = FALSE; ;
break;}
-case 83:
-#line 637 "parse.y"
+case 85:
+#line 661 "parse.y"
{ ; ;
break;}
-case 84:
-#line 638 "parse.y"
+case 86:
+#line 662 "parse.y"
{ ; ;
break;}
-case 85:
-#line 641 "parse.y"
+case 87:
+#line 665 "parse.y"
{
push_funcarg(yyvsp[0].id,NULL);
;
break;}
-case 86:
-#line 644 "parse.y"
+case 88:
+#line 668 "parse.y"
{
push_funcarg(yyvsp[-1].id,yyvsp[0].id);
;
break;}
-case 87:
-#line 647 "parse.y"
+case 89:
+#line 671 "parse.y"
{
if(strcmp(yyvsp[-2].id,"check")!=0) {
yyerror(_("parse error"));
push_funcarg(yyvsp[-4].id,NULL);
;
break;}
-case 88:
-#line 655 "parse.y"
+case 90:
+#line 679 "parse.y"
{
if(strcmp(yyvsp[-2].id,"check")!=0) {
yyerror(_("parse error"));
push_funcarg(yyvsp[-5].id,yyvsp[-4].id);
;
break;}
-case 89:
-#line 665 "parse.y"
+case 91:
+#line 689 "parse.y"
{ ; ;
break;}
-case 90:
-#line 666 "parse.y"
+case 92:
+#line 690 "parse.y"
{ ; ;
break;}
-case 91:
-#line 669 "parse.y"
+case 93:
+#line 693 "parse.y"
{
if(strcmp(yyvsp[0].id,"type")==0) {
Node *node = new_check(TYPE_CHECK,NULL);
g_free(yyvsp[0].id);
;
break;}
-case 92:
-#line 682 "parse.y"
+case 94:
+#line 706 "parse.y"
{
Node *node = new_check(GT_CHECK,yyvsp[0].id);
checks = g_list_append(checks,node);
;
break;}
-case 93:
-#line 686 "parse.y"
+case 95:
+#line 710 "parse.y"
{
Node *node = new_check(LT_CHECK,yyvsp[0].id);
checks = g_list_append(checks,node);
;
break;}
-case 94:
-#line 690 "parse.y"
+case 96:
+#line 714 "parse.y"
{
Node *node = new_check(GE_CHECK,yyvsp[0].id);
checks = g_list_append(checks,node);
;
break;}
-case 95:
-#line 694 "parse.y"
+case 97:
+#line 718 "parse.y"
{
Node *node = new_check(LE_CHECK,yyvsp[0].id);
checks = g_list_append(checks,node);
;
break;}
-case 96:
-#line 698 "parse.y"
+case 98:
+#line 722 "parse.y"
{
Node *node = new_check(EQ_CHECK,yyvsp[0].id);
checks = g_list_append(checks,node);
;
break;}
-case 97:
-#line 702 "parse.y"
+case 99:
+#line 726 "parse.y"
{
Node *node = new_check(NE_CHECK,yyvsp[0].id);
checks = g_list_append(checks,node);
;
break;}
-case 98:
-#line 708 "parse.y"
+case 100:
+#line 732 "parse.y"
{ yyval.id = yyvsp[0].id; ;
break;}
-case 99:
-#line 709 "parse.y"
+case 101:
+#line 733 "parse.y"
{
yyval.id = g_strconcat("-",yyvsp[0].id,NULL);
g_free(yyvsp[0].id);
;
break;}
-case 100:
-#line 713 "parse.y"
+case 102:
+#line 737 "parse.y"
{ yyval.id = yyvsp[0].id; ;
break;}
}
}
return 1;
}
-#line 716 "parse.y"
+#line 740 "parse.y"