diff options
-rw-r--r-- | perly.act | 2 | ||||
-rw-r--r-- | perly.h | 10 | ||||
-rw-r--r-- | perly.tab | 44 | ||||
-rw-r--r-- | perly.y | 22 | ||||
-rw-r--r-- | toke.c | 20 |
5 files changed, 49 insertions, 49 deletions
@@ -2083,6 +2083,6 @@ case 2: /* Generated from: - * f6f4ca1df1f28e285f644b160b176887b111ca03c1fd20e3b4868c27a2c93623 perly.y + * a24382f2699548896a26e257b6f72e255658ef63e4dd5820a5cbe07d690b6f05 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ @@ -80,8 +80,8 @@ extern int yydebug; PERLY_SNAIL = 279, PERLY_STAR = 280, BAREWORD = 281, - METHOD = 282, - FUNCMETH = 283, + METHCALL0 = 282, + METHCALL = 283, THING = 284, PMFUNC = 285, PRIVATEREF = 286, @@ -179,10 +179,10 @@ S_is_opval_token(int type) { case BAREWORD: case FUNC0OP: case FUNC0SUB: - case FUNCMETH: case LABEL: case LSTOPSUB: - case METHOD: + case METHCALL: + case METHCALL0: case PLUGEXPR: case PLUGSTMT: case PMFUNC: @@ -220,6 +220,6 @@ int yyparse (void); /* Generated from: - * f6f4ca1df1f28e285f644b160b176887b111ca03c1fd20e3b4868c27a2c93623 perly.y + * a24382f2699548896a26e257b6f72e255658ef63e4dd5820a5cbe07d690b6f05 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ @@ -117,14 +117,14 @@ static const char *const yytname[] = "PERLY_BRACKET_OPEN", "PERLY_BRACKET_CLOSE", "PERLY_COMMA", "PERLY_DOLLAR", "PERLY_DOT", "PERLY_EQUAL_SIGN", "PERLY_MINUS", "PERLY_PERCENT_SIGN", "PERLY_PLUS", "PERLY_SEMICOLON", "PERLY_SLASH", - "PERLY_SNAIL", "PERLY_STAR", "BAREWORD", "METHOD", "FUNCMETH", "THING", - "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP", "FUNC0SUB", "UNIOPSUB", - "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", "LABEL", "FORMAT", "SUB", "SIGSUB", - "ANONSUB", "ANON_SIGSUB", "PACKAGE", "USE", "WHILE", "UNTIL", "IF", - "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN", "DEFAULT", - "TRY", "CATCH", "FINALLY", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", - "FUNC1", "FUNC", "UNIOP", "LSTOP", "MULOP", "ADDOP", "DOLSHARP", "DO", - "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", "COLONATTR", + "PERLY_SNAIL", "PERLY_STAR", "BAREWORD", "METHCALL0", "METHCALL", + "THING", "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP", "FUNC0SUB", + "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", "LABEL", "FORMAT", "SUB", + "SIGSUB", "ANONSUB", "ANON_SIGSUB", "PACKAGE", "USE", "WHILE", "UNTIL", + "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN", + "DEFAULT", "TRY", "CATCH", "FINALLY", "LOOPEX", "DOTDOT", "YADAYADA", + "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "MULOP", "ADDOP", "DOLSHARP", + "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", "COLONATTR", "FORMLBRACK", "FORMRBRACK", "SUBLEXSTART", "SUBLEXEND", "DEFER", "PREC_LOW", "OROP", "ANDOP", "NOTOP", "ASSIGNOP", "PERLY_QUESTION_MARK", "PERLY_COLON", "OROR", "DORDOR", "ANDAND", "BITOROP", "BITANDOP", @@ -143,12 +143,12 @@ static const char *const yytname[] = "sigdefault", "sigscalarelem", "sigelem", "siglist", "optsiglist", "optsubsignature", "subsignature", "subsigguts", "$@18", "optsubbody", "subbody", "optsigsubbody", "sigsubbody", "expr", "listexpr", "listop", - "@19", "method", "subscripted", "termbinop", "termrelop", "relopchain", - "termeqop", "eqopchain", "termunop", "anonymous", "termdo", "term", - "@20", "myattrterm", "myterm", "optlistexpr", "optexpr", "optrepl", - "my_scalar", "list_of_scalars", "my_list_of_scalars", "my_var", - "refgen_topic", "my_refgen", "amper", "scalar", "ary", "hsh", "arylen", - "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR + "@19", "methodname", "subscripted", "termbinop", "termrelop", + "relopchain", "termeqop", "eqopchain", "termunop", "anonymous", "termdo", + "term", "@20", "myattrterm", "myterm", "optlistexpr", "optexpr", + "optrepl", "my_scalar", "list_of_scalars", "my_list_of_scalars", + "my_var", "refgen_topic", "my_refgen", "amper", "scalar", "ary", "hsh", + "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR }; #endif @@ -1169,14 +1169,14 @@ static const toketypes yy_type_tab[] = toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, @@ -1195,15 +1195,15 @@ static const toketypes yy_type_tab[] = toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval + toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval }; /* Generated from: - * f6f4ca1df1f28e285f644b160b176887b111ca03c1fd20e3b4868c27a2c93623 perly.y + * a24382f2699548896a26e257b6f72e255658ef63e4dd5820a5cbe07d690b6f05 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ @@ -62,7 +62,7 @@ %token <ival> PERLY_SNAIL %token <ival> PERLY_STAR -%token <opval> BAREWORD METHOD FUNCMETH THING PMFUNC PRIVATEREF QWLIST +%token <opval> BAREWORD METHCALL0 METHCALL THING PMFUNC PRIVATEREF QWLIST %token <opval> FUNC0OP FUNC0SUB UNIOPSUB LSTOPSUB %token <opval> PLUGEXPR PLUGSTMT %token <opval> LABEL @@ -91,7 +91,7 @@ %type <opval> empty %type <opval> sliceme kvslice gelem %type <opval> listexpr nexpr texpr iexpr mexpr mnexpr -%type <opval> optlistexpr optexpr optrepl indirob listop method +%type <opval> optlistexpr optexpr optrepl indirob listop methodname %type <opval> formname subname proto cont my_scalar my_var %type <opval> list_of_scalars my_list_of_scalars refgen_topic formblock %type <opval> subattrlist myattrlist myattrterm myterm @@ -980,28 +980,28 @@ listop : LSTOP indirob listexpr /* map {...} @args or print $fh @args */ { $$ = op_convert_list($FUNC, OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF($FUNC,$indirob), $expr) ); } - | term ARROW method PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE /* $foo->bar(list) */ + | term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE /* $foo->bar(list) */ { $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar($term), $optexpr), - newMETHOP(OP_METHOD, 0, $method))); + newMETHOP(OP_METHOD, 0, $methodname))); } - | term ARROW method /* $foo->bar */ + | term ARROW methodname /* $foo->bar */ { $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar($term), - newMETHOP(OP_METHOD, 0, $method))); + newMETHOP(OP_METHOD, 0, $methodname))); } - | METHOD indirob optlistexpr /* new Class @args */ + | METHCALL0 indirob optlistexpr /* new Class @args */ { $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, $indirob, $optlistexpr), - newMETHOP(OP_METHOD, 0, $METHOD))); + newMETHOP(OP_METHOD, 0, $METHCALL0))); } - | FUNCMETH indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE /* method $object (@args) */ + | METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE /* method $object (@args) */ { $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, $indirob, $optexpr), - newMETHOP(OP_METHOD, 0, $FUNCMETH))); + newMETHOP(OP_METHOD, 0, $METHCALL))); } | LSTOP optlistexpr /* print @args */ { $$ = op_convert_list($LSTOP, 0, $optlistexpr); } @@ -1020,7 +1020,7 @@ listop : LSTOP indirob listexpr /* map {...} @args or print $fh @args */ ; /* Names of methods. May use $object->$methodname */ -method : METHOD +methodname: METHCALL0 | scalar ; @@ -440,7 +440,6 @@ static struct debug_tokens { { FUNC0OP, TOKENTYPE_OPVAL, "FUNC0OP" }, { FUNC0SUB, TOKENTYPE_OPVAL, "FUNC0SUB" }, { FUNC1, TOKENTYPE_OPNUM, "FUNC1" }, - { FUNCMETH, TOKENTYPE_OPVAL, "FUNCMETH" }, { GIVEN, TOKENTYPE_IVAL, "GIVEN" }, { HASHBRACK, TOKENTYPE_NONE, "HASHBRACK" }, { IF, TOKENTYPE_IVAL, "IF" }, @@ -450,7 +449,8 @@ static struct debug_tokens { { LSTOP, TOKENTYPE_OPNUM, "LSTOP" }, { LSTOPSUB, TOKENTYPE_OPVAL, "LSTOPSUB" }, { MATCHOP, TOKENTYPE_OPNUM, "MATCHOP" }, - { METHOD, TOKENTYPE_OPVAL, "METHOD" }, + { METHCALL, TOKENTYPE_OPVAL, "METHCALL" }, + { METHCALL0, TOKENTYPE_OPVAL, "METHCALL0" }, { MULOP, TOKENTYPE_OPNUM, "MULOP" }, { MY, TOKENTYPE_IVAL, "MY" }, { NCEQOP, TOKENTYPE_OPNUM, "NCEQOP" }, @@ -2194,7 +2194,7 @@ S_newSV_maybe_utf8(pTHX_ const char *const start, STRLEN len) * Arguments: * char *start : buffer position (must be within PL_linestr) * int token : PL_next* will be this type of bare word - * (e.g., METHOD,BAREWORD) + * (e.g., METHCALL0,BAREWORD) * int check_keyword : if true, Perl checks to make sure the word isn't * a keyword (do this if the word is a label, e.g. goto FOO) * int allow_pack : if true, : characters will also be allowed (require, @@ -2225,7 +2225,7 @@ S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack) if (keyword(s2, len2, 0)) return start; } - if (token == METHOD) { + if (token == METHCALL0) { s = skipspace(s); if (*s == '(') PL_expect = XTERM; @@ -4564,7 +4564,7 @@ S_intuit_more(pTHX_ char *s, char *e) * Does all the checking to disambiguate * foo bar * between foo(bar) and bar->foo. Returns 0 if not a method, otherwise - * FUNCMETH (bar->foo(args)) or METHOD (bar->foo args). + * METHCALL (bar->foo(args)) or METHCALL0 (bar->foo args). * * First argument is the stuff after the first token, e.g. "bar". * @@ -4620,7 +4620,7 @@ S_intuit_method(pTHX_ char *start, SV *ioname, CV *cv) s = skipspace(s); PL_bufptr = SvPVX(PL_linestr) + start_off; PL_expect = XREF; - return *s == '(' ? FUNCMETH : METHOD; + return *s == '(' ? METHCALL : METHCALL0; } s = scan_word(s, tmpbuf, sizeof tmpbuf, TRUE, &len); @@ -4653,7 +4653,7 @@ S_intuit_method(pTHX_ char *start, SV *ioname, CV *cv) PL_expect = XTERM; force_next(BAREWORD); PL_bufptr = s; - return *s == '(' ? FUNCMETH : METHOD; + return *s == '(' ? METHCALL : METHCALL0; } } return 0; @@ -5742,7 +5742,7 @@ yyl_hyphen(pTHX_ char *s) TOKEN(ARROW); } if (isIDFIRST_lazy_if_safe(s, PL_bufend, UTF)) { - s = force_word(s,METHOD,FALSE,TRUE); + s = force_word(s,METHCALL0,FALSE,TRUE); TOKEN(ARROW); } else if (*s == '$') @@ -7699,7 +7699,7 @@ yyl_just_a_word(pTHX_ char *s, STRLEN len, I32 orig_keyword, struct code c) PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC; PL_expect = XBLOCKTERM; PL_bufptr = s; - return REPORT(METHOD); + return REPORT(METHCALL0); } /* If followed by a bareword, see if it looks like indir obj. */ @@ -7720,7 +7720,7 @@ yyl_just_a_word(pTHX_ char *s, STRLEN len, I32 orig_keyword, struct code c) else SvUTF8_off(c.sv); } op_free(c.rv2cv_op); - if (key == METHOD && !PL_lex_allbrackets + if (key == METHCALL0 && !PL_lex_allbrackets && PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC) { PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC; |