Anarres-Mud-Driver
view release on metacpan or search on metacpan
Compiler/parser.c view on Meta::CPAN
101, 84, 0, 142, 6, 96, 81, 137, 82, 0,
0, 137, 138, 0, 143, 99, 84, 0, 0, 41,
0, 140, 0, 140, 42, 0, 141, 0, 140, 83,
141, 0, 143, 98, 0, 0, 38, 142, 0, 37,
0, 41, 0, 6, 96, 0, 0, 144, 74, 0,
144, 92, 0, 146, 0, 145, 71, 145, 0, 145,
72, 145, 0, 147, 0, 33, 0, 146, 33, 0,
35, 0, 34, 0, 27, 115, 28, 0, 25, 118,
26, 0, 29, 109, 30, 0
};
#endif
#if YYDEBUG != 0
static const short amd_yyrline[] = { 0,
460, 461, 465, 466, 467, 468, 469, 473, 480, 490,
497, 507, 516, 521, 529, 533, 541, 546, 558, 585,
592, 601, 611, 615, 623, 627, 631, 636, 640, 644,
651, 655, 659, 663, 667, 672, 676, 686, 690, 694,
698, 702, 706, 713, 717, 724, 728, 735, 739, 746,
750, 754, 761, 766, 774, 778, 783, 787, 789, 794,
809, 815, 824, 828, 830, 835, 840, 848, 857, 868,
875, 879, 883, 887, 891, 895, 899, 903, 907, 911,
915, 919, 923, 930, 934, 941, 945, 949, 953, 957,
961, 969, 973, 977, 981, 985, 989, 993, 1000, 1004,
1008, 1012, 1016, 1020, 1024, 1028, 1032, 1039, 1043, 1047,
1051, 1055, 1059, 1063, 1070, 1074, 1078, 1085, 1089, 1093,
1102, 1103, 1110, 1114, 1121, 1125, 1129, 1133, 1137, 1141,
1145, 1149, 1153, 1157, 1161, 1165, 1169, 1173, 1177, 1181,
1188, 1192, 1202, 1250, 1254, 1276, 1321, 1332, 1336, 1353,
1391, 1395, 1399, 1403, 1411, 1416, 1424, 1439, 1443, 1459,
1463, 1467, 1484, 1489, 1500, 1514, 1516, 1523, 1529, 1538,
1540, 1549, 1550, 1554, 1561, 1571
};
#endif
#define YYNTOKENS 93
#define YYNNTS 58
#define YYNRULES 176
#define YYNSTATES 343
#define YYMAXUTOK 320
static const char * const amd_yytname[] = { "$","error","$undefined.","L_BREAK",
"L_CASE","L_CATCH","L_CLASS","L_CONTINUE","L_DEFAULT","L_DO","L_EFUN","L_ELSE",
"L_FOR","L_FOREACH","L_IF","L_IN","L_INHERIT","L_NEW","L_NIL","L_RETURN","L_RLIMITS",
"L_SWITCH","L_SSCANF","L_TRY","L_WHILE","L_MAP_START","L_MAP_END","L_ARRAY_START",
"L_ARRAY_END","L_FUNCTION_START","L_FUNCTION_END","L_PARAMETER","L_IDENTIFIER",
"L_STRING","L_CHARACTER","L_INTEGER","L_HEXINTEGER","L_BASIC_TYPE","L_TYPE_MODIFIER",
"L_STATIC","L_COLONCOLON","L_VOID","L_ELLIPSIS","L_ARROW","L_RANGE","LOWER_THAN_ELSE",
"L_PLUS_EQ","L_MINUS_EQ","L_DIV_EQ","L_TIMES_EQ","L_MOD_EQ","L_AND_EQ","L_OR_EQ",
"L_XOR_EQ","L_DOT_EQ","L_LOR_EQ","L_LAND_EQ","'?'","L_LOR","L_LAND","'|'","'^'",
"'&'","L_EQ","L_NE","L_GE","L_LE","'<'","'>'","L_LSH","L_RSH","'.'","'+'","'-'",
"'*'","'%'","'/'","'!'","'~'","L_INC","L_DEC","'{'","'}'","','","';'","':'",
"'('","')'","'['","']'","'='","'$'","'#'","program","definition","inheritance",
"identifier","function_declarator","variable_declarator","variable_declarator_list",
"variable_declarator_init","variable_declarator_list_init","function_prologue",
"prototype","function","block","statement_list","statement","opt_else","list_exp",
"opt_list_exp","nv_list_exp","opt_nv_list_exp","arg_list","opt_arg_list","opt_arg_list_comma",
"assoc_exp","assoc_arg_list","opt_assoc_arg_list_comma","function_name","lvalue",
"exp","cond_exp","logical_exp","compare_exp","arith_exp","prefix_exp","postfix_exp",
"array_exp","close_square","opt_endrange","basic_exp","lvalue_list","global_decl",
"local_decls","local_decl","type_decl","class_member_list","class_member","arguments",
"argument_list","argument","type_modifier_list","type_specifier","star_list",
"string_const","string","integer","array","mapping","closure", NULL
};
static const short amd_yytoknum[] = { 0,
256, 2, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 63, 311, 312, 124,
94, 38, 313, 314, 315, 316, 60, 62, 317, 318,
46, 43, 45, 42, 37, 47, 33, 126, 319, 320,
123, 125, 44, 59, 58, 40, 41, 91, 93, 61,
36, 35, 0
};
static const short amd_yyr1[] = { 0,
93, 93, 94, 94, 94, 94, 94, 95, 95, 96,
97, 98, 99, 99, 100, 100, 101, 101, 102, 103,
104, 105, 106, 106, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 108, 108, 109, 109, 110, 110, 111,
112, 112, 113, 113, 114, 114, 115, 115, 115, 116,
117, 117, 118, 118, 118, 119, 119, 119, 119, 120,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 122, 122, 123, 123, 123, 123, 123,
123, 124, 124, 124, 124, 124, 124, 124, 125, 125,
125, 125, 125, 125, 125, 125, 125, 126, 126, 126,
126, 126, 126, 126, 127, 127, 127, 128, 128, 128,
129, 129, 130, 130, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
132, 132, 133, 134, 134, 135, 136, 137, 137, 138,
139, 139, 139, 139, 140, 140, 141, 142, 142, 143,
143, 143, 144, 144, 144, 145, 145, 145, 145, 146,
146, 147, 147, 148, 149, 150
};
static const short amd_yyr2[] = { 0,
2, 0, 1, 1, 1, 1, 1, 3, 4, 1,
5, 2, 1, 3, 1, 3, 1, 3, 3, 2,
2, 4, 0, 2, 2, 1, 6, 7, 5, 9,
7, 9, 7, 7, 2, 5, 3, 2, 2, 2,
3, 1, 2, 0, 2, 1, 3, 0, 1, 1,
0, 1, 1, 3, 0, 1, 0, 1, 2, 3,
1, 3, 0, 1, 2, 1, 2, 3, 3, 1,
1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 1, 5, 1, 3, 3, 3, 3,
3, 1, 3, 3, 3, 3, 3, 3, 1, 3,
3, 3, 3, 3, 3, 3, 3, 1, 2, 2,
2, 2, 2, 2, 1, 2, 2, 1, 5, 8,
1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 4, 3, 4, 5, 4, 5, 6, 3,
0, 3, 4, 0, 2, 3, 6, 0, 2, 3,
0, 1, 1, 2, 1, 3, 2, 0, 2, 1,
1, 2, 0, 2, 2, 1, 3, 3, 1, 1,
2, 1, 1, 3, 3, 3
};
static const short amd_yydefact[] = { 2,
Compiler/parser.c view on Meta::CPAN
case 138:
#line 1174 "parser.y"
{
amd_yyval.obj = N_A1("New", amd_yyvsp[-1].sv);
;
break;}
case 139:
#line 1178 "parser.y"
{
amd_yyval.obj = N_A2R("CallOther", amd_yyvsp[-5].obj, amd_yyvsp[-3].sv, amd_yyvsp[-1].av);
;
break;}
case 140:
#line 1182 "parser.y"
{
amd_yyval.obj = N_A2("Member", amd_yyvsp[-2].obj, amd_yyvsp[0].sv);
;
break;}
case 141:
#line 1189 "parser.y"
{
amd_yyval.av = newAV();
;
break;}
case 142:
#line 1193 "parser.y"
{
av_push(amd_yyvsp[-2].av, amd_yyvsp[0].obj);
amd_yyval.av = amd_yyvsp[-2].av;
;
break;}
case 143:
#line 1203 "parser.y"
{
int len;
int i;
SV **svp;
AV *vdl;
AV *vd;
SV *name;
const char *type;
SV *stars;
SV *var;
type = amd_yyvsp[-2].str;
vdl = amd_yyvsp[-1].av;
len = av_len(vdl);
for (i = 0; i <= len; i++) {
svp = av_fetch(vdl, i, FALSE);
if (!svp) continue;
/* The AV returned from variable_declarator */
vd = (AV *)SvRV(*svp);
/* These two should be guaranteed dereferencable */
stars = *( av_fetch(vd, 0, FALSE) );
name = *( av_fetch(vd, 1, FALSE) );
var = amd_yyparse_variable(name, type, stars, newSViv(amd_yyvsp[-3].number));
/* XXX Check global modifiers, and possibly make these
* variables static. */
if (amd_yyvsp[-3].number & M_STATIC) {
SvREFCNT_dec(
amd_yyparse_program_apply(amd_yyparse_param,
"static", name, var));
}
else {
SvREFCNT_dec(
amd_yyparse_program_apply(amd_yyparse_param,
"global", name, var));
}
}
/* See local_decl for memory management notes. */
;
break;}
case 144:
#line 1251 "parser.y"
{
amd_yyval.av = newAV();
;
break;}
case 145:
#line 1255 "parser.y"
{
SV **svp;
int len;
int i;
len = av_len(amd_yyvsp[0].av);
av_extend(amd_yyvsp[-1].av, av_len(amd_yyvsp[-1].av) + av_len(amd_yyvsp[0].av) + 1);
for (i = 0; i <= len; i++) {
svp = av_fetch(amd_yyvsp[0].av, i, FALSE);
if (svp)
av_push(amd_yyvsp[-1].av, *svp);
else
av_push(amd_yyvsp[-1].av, &PL_sv_undef);
}
amd_yyval.av = amd_yyvsp[-1].av;
;
break;}
case 146:
#line 1277 "parser.y"
{
int len;
int i;
SV **svp;
AV *vdl;
AV *vd;
SV *name;
const char *type;
SV *stars;
SV *var;
amd_yyval.av = newAV();
type = amd_yyvsp[-2].str;
vdl = amd_yyvsp[-1].av;
len = av_len(vdl);
for (i = 0; i <= len; i++) {
svp = av_fetch(vdl, i, FALSE);
if (!svp) continue;
/* The AV returned from variable_declarator_init */
vd = (AV *)SvRV(*svp);
/* These two should be guaranteed dereferencable */
( run in 1.049 second using v1.01-cache-2.11-cpan-5a3173703d6 )