summaryrefslogtreecommitdiff
path: root/node.h
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-12-26 14:20:03 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-12-26 14:20:03 +0000
commit1ab3974b0efea5155da005ec08a1feee90023d98 (patch)
treed1c1dd482b08f39c7b4b752b15c8e6952fdd89d8 /node.h
parentafb10c62c2e45801df4245e6131af3a98efdebd1 (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.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/node.h b/node.h
index 873c52c..5c08be4 100644
--- a/node.h
+++ b/node.h
@@ -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;
};