Anarres-Mud-Driver

 view release on metacpan or  search on metacpan

Compiler/parser.c  view on Meta::CPAN

#define const
#endif
#endif



#define	YYFINAL		342
#define	YYFLAG		-32768
#define	YYNTBASE	93

#define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? amd_yytranslate[x] : 151)

static const char amd_yytranslate[] = {     0,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    77,     2,    92,    91,    75,    62,     2,    86,
    87,    74,    72,    83,    73,    71,    76,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    85,    84,    67,
    90,    68,    57,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    88,     2,    89,    61,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    81,    60,    82,    78,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    58,    59,    63,    64,    65,    66,    69,    70,    79,    80
};

#if YYDEBUG != 0
static const short amd_yyprhs[] = {     0,
     0,     3,     4,     6,     8,    10,    12,    14,    18,    23,
    25,    31,    34,    36,    40,    42,    46,    48,    52,    56,
    59,    62,    67,    68,    71,    74,    76,    83,    91,    97,
   107,   115,   125,   133,   141,   144,   150,   154,   157,   160,
   163,   167,   169,   172,   173,   176,   178,   182,   183,   185,
   187,   188,   190,   192,   196,   197,   199,   200,   202,   205,
   209,   211,   215,   216,   218,   221,   223,   226,   230,   234,
   236,   238,   242,   246,   250,   254,   258,   262,   266,   270,
   274,   278,   282,   286,   288,   294,   296,   300,   304,   308,
   312,   316,   318,   322,   326,   330,   334,   338,   342,   344,
   348,   352,   356,   360,   364,   368,   372,   376,   378,   381,
   384,   387,   390,   393,   396,   398,   401,   404,   406,   412,
   421,   423,   425,   426,   428,   430,   432,   434,   436,   438,
   440,   442,   444,   449,   453,   458,   464,   469,   475,   482,
   486,   487,   491,   496,   497,   500,   504,   511,   512,   515,
   519,   520,   522,   524,   527,   529,   533,   536,   537,   540,
   542,   544,   547,   548,   551,   554,   556,   560,   564,   566,
   568,   571,   573,   575,   579,   583
};

static const short amd_yyrhs[] = {    93,
    94,     0,     0,    95,     0,   133,     0,   136,     0,   104,
     0,   103,     0,    16,   145,    84,     0,    16,    96,   145,
    84,     0,    32,     0,   144,    96,    86,   139,    87,     0,
   144,    96,     0,    98,     0,    99,    83,    98,     0,    98,
     0,    98,    90,   121,     0,   100,     0,   101,    83,   100,
     0,   142,   143,    97,     0,   102,    84,     0,   102,   105,
     0,    81,   134,   106,    82,     0,     0,   106,   107,     0,
   109,    84,     0,   105,     0,    14,    86,   111,    87,   107,
   108,     0,     9,   107,    24,    86,   111,    87,    84,     0,
    24,    86,   111,    87,   107,     0,    12,    86,   110,    84,
   112,    84,   110,    87,   107,     0,    13,    86,   120,    15,
   121,    87,   107,     0,    13,    86,   120,    83,   120,    15,
   121,    87,   107,     0,    20,    86,   111,    84,   111,    87,
   105,     0,    23,   105,     5,    86,   120,    87,   105,     0,
     5,   105,     0,    21,    86,   111,    87,   105,     0,     4,
   121,    85,     0,     8,    85,     0,     3,    84,     0,     7,
    84,     0,    19,   112,    84,     0,    84,     0,     1,    84,
     0,     0,    11,   107,     0,   121,     0,   109,    83,   121,
     0,     0,   109,     0,   121,     0,     0,   111,     0,   121,
     0,   113,    83,   121,     0,     0,   113,     0,     0,   113,
     0,   113,    83,     0,   121,    85,   121,     0,   116,     0,
   117,    83,   116,     0,     0,   117,     0,   117,    83,     0,
    96,     0,    40,    96,     0,    96,    40,    96,     0,    10,
    40,    96,     0,   128,     0,   122,     0,   120,    90,   121,
     0,   120,    46,   121,     0,   120,    47,   121,     0,   120,
    48,   121,     0,   120,    49,   121,     0,   120,    50,   121,
     0,   120,    51,   121,     0,   120,    52,   121,     0,   120,
    53,   121,     0,   120,    54,   121,     0,   120,    55,   121,
     0,   120,    56,   121,     0,   123,     0,   123,    57,   109,
    85,   122,     0,   124,     0,   123,    58,   123,     0,   123,
    59,   123,     0,   123,    60,   123,     0,   123,    61,   123,
     0,   123,    62,   123,     0,   125,     0,   124,    63,   124,
     0,   124,    64,   124,     0,   124,    67,   124,     0,   124,
    68,   124,     0,   124,    66,   124,     0,   124,    65,   124,
     0,   126,     0,   125,    69,   125,     0,   125,    70,   125,
     0,   125,    71,   125,     0,   125,    72,   125,     0,   125,
    73,   125,     0,   125,    74,   125,     0,   125,    76,   125,
     0,   125,    75,   125,     0,   127,     0,    79,   126,     0,
    80,   126,     0,    77,   126,     0,    78,   126,     0,    72,
   126,     0,    73,   126,     0,   128,     0,   127,    79,     0,
   127,    80,     0,   131,     0,   128,    88,   130,   111,   129,
     0,   128,    88,   130,   111,    44,   130,   111,   129,     0,
    89,     0,    26,     0,     0,    67,     0,    18,     0,   146,
     0,   147,     0,   148,     0,   149,     0,   150,     0,    96,
     0,    31,     0,    91,    86,   109,    87,     0,    86,   109,
    87,     0,   119,    86,   114,    87,     0,    22,    86,   121,
   132,    87,     0,     5,    86,   109,    87,     0,    17,    86,
     6,    96,    87,     0,   128,    43,    96,    86,   114,    87,
     0,   128,    43,    96,     0,     0,   132,    83,   120,     0,
   142,   143,    99,    84,     0,     0,   134,   135,     0,   143,
   101,    84,     0,   142,     6,    96,    81,   137,    82,     0,

Compiler/parser.c  view on Meta::CPAN

		 	/* XXX Lose ((AV)($2))! */
			amd_yyval.av = amd_yyvsp[-1].av;
		;
    break;}
case 150:
#line 1354 "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 */
				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, &PL_sv_undef);

				av_push(amd_yyval.av, var);
			}

			/* See local_decl for memory management notes. */
		;
    break;}
case 151:
#line 1392 "parser.y"
{
			amd_yyval.av = newAV();
		;
    break;}
case 152:
#line 1396 "parser.y"
{
			amd_yyval.av = newAV();
		;
    break;}
case 153:
#line 1400 "parser.y"
{
			amd_yyval.av = amd_yyvsp[0].av;
		;
    break;}
case 154:
#line 1404 "parser.y"
{
			av_push(amd_yyvsp[-1].av, &PL_sv_undef);	/* XXX Fix L_ELLIPSIS */
			amd_yyval.av = amd_yyvsp[-1].av;
		;
    break;}
case 155:
#line 1412 "parser.y"
{
			amd_yyval.av = newAV();
			av_push(amd_yyval.av, amd_yyvsp[0].sv);
		;
    break;}
case 156:
#line 1417 "parser.y"
{
			av_push(amd_yyvsp[-2].av, amd_yyvsp[0].sv);
			amd_yyval.av = amd_yyvsp[-2].av;
		;
    break;}
case 157:
#line 1425 "parser.y"
{
			const char	*type;
			SV	*stars;
			SV	*name;

			type = amd_yyvsp[-1].str;
			stars = *( av_fetch(amd_yyvsp[0].av, 0, FALSE) );
			name = *( av_fetch(amd_yyvsp[0].av, 1, FALSE) );

			amd_yyval.sv = amd_yyparse_variable(name, type, stars, &PL_sv_undef);
		;
    break;}
case 158:
#line 1440 "parser.y"
{
			amd_yyval.number = 0;
		;
    break;}
case 159:
#line 1444 "parser.y"
{
			amd_yyval.number = amd_yyvsp[-1].number | amd_yyvsp[0].number;
		;
    break;}
case 160:
#line 1460 "parser.y"
{
			amd_yyval.str = amd_yyvsp[0].str;
		;
    break;}
case 161:
#line 1464 "parser.y"
{
			amd_yyval.str = amd_yyvsp[0].str;
		;
    break;}
case 162:
#line 1468 "parser.y"
{



( run in 1.242 second using v1.01-cache-2.11-cpan-39bf76dae61 )