summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-18 03:25:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-18 03:25:20 +0000
commit257fbc2c51e1b16af87268059febc418dbd736c6 (patch)
treee6c2fd151cf12d56206fcdf78b277c70b301d135 /parse.y
parent456dc174b644251a264cf05016ebb31ee01f63f2 (diff)
parse.y: REQUIRED_KEYWORD
* parse.y (REQUIRED_KEYWORD): special argument for required keyword argument, for core and ripper. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y7
1 files changed, 4 insertions, 3 deletions
diff --git a/parse.y b/parse.y
index 5514ffe7a1..470c37d4d9 100644
--- a/parse.y
+++ b/parse.y
@@ -474,7 +474,6 @@ static ID ripper_get_id(VALUE);
static VALUE ripper_get_value(VALUE);
#define get_value(val) ripper_get_value(val)
static VALUE assignable(struct parser_params*,VALUE,VALUE,const YYLTYPE*);
-#define assignable(p,id,val,loc) assignable((p),(id),(VALUE)(val),(loc))
static int id_is_var(struct parser_params *p, ID id);
#define method_cond(p,node,loc) (node)
@@ -725,10 +724,12 @@ static VALUE heredoc_dedent(struct parser_params*,VALUE);
#ifndef RIPPER
# define Qnone 0
# define Qnull 0
+# define REQUIRED_KEYWORD NODE_SPECIAL_REQUIRED_KEYWORD
# define ifndef_ripper(x) (x)
#else
# define Qnone Qnil
# define Qnull Qundef
+# define REQUIRED_KEYWORD Qundef
# define ifndef_ripper(x)
#endif
@@ -4179,7 +4180,7 @@ f_kw : f_label arg_value
| f_label
{
p->cur_arg = 0;
- $$ = assignable(p, $1, NODE_SPECIAL_REQUIRED_KEYWORD, &@$);
+ $$ = assignable(p, $1, REQUIRED_KEYWORD, &@$);
/*%%%*/
$$ = new_kw_arg(p, $$, &@$);
/*%
@@ -4199,7 +4200,7 @@ f_block_kw : f_label primary_value
}
| f_label
{
- $$ = assignable(p, $1, NODE_SPECIAL_REQUIRED_KEYWORD, &@$);
+ $$ = assignable(p, $1, REQUIRED_KEYWORD, &@$);
/*%%%*/
$$ = new_kw_arg(p, $$, &@$);
/*%