diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-12-26 14:20:03 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-12-26 14:20:03 +0000 |
commit | 1ab3974b0efea5155da005ec08a1feee90023d98 (patch) | |
tree | d1c1dd482b08f39c7b4b752b15c8e6952fdd89d8 /node.h | |
parent | afb10c62c2e45801df4245e6131af3a98efdebd1 (diff) |
* node.h, node.c, parse.y: implement a parser part for keyword arguments. This is a preparation for keyword argument (see [ruby-core:40290]).
* gc.c (gc_mark_children): bookkeeping.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'node.h')
-rw-r--r-- | node.h | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -154,6 +154,8 @@ enum node_type { #define NODE_ARGS_AUX NODE_ARGS_AUX NODE_OPT_ARG, #define NODE_OPT_ARG NODE_OPT_ARG + NODE_KW_ARG, +#define NODE_KW_ARG NODE_KW_ARG NODE_POSTARG, #define NODE_POSTARG NODE_POSTARG NODE_ARGSCAT, @@ -419,6 +421,7 @@ typedef struct RNode { #define NEW_ZSUPER() NEW_NODE(NODE_ZSUPER,0,0,0) #define NEW_ARGS_AUX(r,b) NEW_NODE(NODE_ARGS_AUX,r,b,0) #define NEW_OPT_ARG(i,v) NEW_NODE(NODE_OPT_ARG,i,v,0) +#define NEW_KW_ARG(i,v) NEW_NODE(NODE_KW_ARG,i,v,0) #define NEW_POSTARG(i,v) NEW_NODE(NODE_POSTARG,i,v,0) #define NEW_ARGSCAT(a,b) NEW_NODE(NODE_ARGSCAT,a,b,0) #define NEW_ARGSPUSH(a,b) NEW_NODE(NODE_ARGSPUSH,a,b,0) @@ -495,6 +498,9 @@ struct rb_args_info { ID rest_arg; ID block_arg; + NODE *kw_args; + NODE *kw_rest_arg; + NODE *opt_args; }; |