X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly.y;h=381d1b7c96ae50088bbd228f96b234cb48f1b860;hb=92e71c9183a0db74aa4ef4999dac86e2ffadfac4;hp=ad7b55209e6e823ac2d50cce0cc395480b6e0f35;hpb=bcabcc50f85300b3fbf720ece84c2fd14bd909ed;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly.y b/perly.y index ad7b552..381d1b7 100644 --- a/perly.y +++ b/perly.y @@ -72,7 +72,7 @@ %token FORMAT SUB ANONSUB PACKAGE USE %token WHILE UNTIL IF UNLESS ELSE ELSIF CONTINUE FOR %token GIVEN WHEN DEFAULT -%token LOOPEX DOTDOT +%token LOOPEX DOTDOT YADAYADA %token FUNC0 FUNC1 FUNC UNIOP LSTOP %token RELOP EQOP MULOP ADDOP %token DOLSHARP DO HASHBRACK NOAMP @@ -106,7 +106,7 @@ %left ',' %right ASSIGNOP %right '?' ':' -%nonassoc DOTDOT +%nonassoc DOTDOT YADAYADA %left OROR DORDOR %left ANDAND %left BITOROP @@ -275,7 +275,7 @@ else : /* NULL */ } | ELSIF '(' mexpr ')' mblock else { PL_parser->copline = (line_t)IVAL($1); - $$ = newCONDOP(0, $3, scope($5), $6); + $$ = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,$3), scope($5), $6); PL_hints |= HINT_BLOCK_SCOPE; TOKEN_GETMAD($1,$$,'I'); TOKEN_GETMAD($2,$$,'('); @@ -1227,6 +1227,11 @@ term : termbinop } | WORD | listop + | YADAYADA + { + $$ = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), + newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); + } ; /* "my" declarations, with optional attributes */