summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-05 13:16:40 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-05 13:16:40 +0000
commit2299294a7d8a0ca77418b7af5c638e714103f905 (patch)
tree16cc51ce826699c44ab06858cfa95d431da6e5ca
parent3f1bf390f699c663c48ddf1b2d18d02c96d6c234 (diff)
downloadruby-2299294a7d8a0ca77418b7af5c638e714103f905.tar.gz
ruby-2299294a7d8a0ca77418b7af5c638e714103f905.tar.xz
ruby-2299294a7d8a0ca77418b7af5c638e714103f905.zip
* parse.y (assoc_list): {a: 1, b: 2} should be allowed. [ruby-dev:23328]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--parse.y17
2 files changed, 19 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 2c9c6c280..92d82d04d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Apr 5 22:16:23 2004 Minero Aoki <aamine@loveruby.net>
+
+ * parse.y (assoc_list): {a: 1, b: 2} should be allowed.
+ [ruby-dev:23328]
+
Mon Apr 5 19:43:40 2004 Kazuo Saito <ksaito@uranus.dti.ne.jp>
* regexec.c: imported Oni Guruma 2.2.6.
diff --git a/parse.y b/parse.y
index 1408622cf..d4d34216b 100644
--- a/parse.y
+++ b/parse.y
@@ -261,7 +261,7 @@ static void top_local_setup();
%type <node> command_args aref_args opt_block_arg block_arg var_ref var_lhs
%type <node> mrhs superclass block_call block_command
%type <node> f_arglist f_args f_optarg f_opt f_block_arg opt_f_block_arg
-%type <node> assoc_list assocs assoc undef_list backref string_dvar
+%type <node> assoc_list assocs assoc kwargs undef_list backref string_dvar
%type <node> block_var opt_block_var brace_block cmd_brace_block do_block lhs none
%type <node> mlhs mlhs_head mlhs_basic mlhs_entry mlhs_item mlhs_node
%type <id> fitem variable sym symbol operation operation2 operation3
@@ -2381,9 +2381,9 @@ assoc_list : none
}
$$ = $1;
}
- | tLABEL arg_value
+ | kwargs trailer
{
- $$ = list_append(NEW_LIST(NEW_LIT(ID2SYM($1))), $2);
+ $$ = $1;
}
;
@@ -2400,6 +2400,17 @@ assoc : arg_value tASSOC arg_value
}
;
+kwargs : tLABEL arg_value
+ {
+ $$ = list_append(NEW_LIST(NEW_LIT(ID2SYM($1))), $2);
+ }
+ | kwargs ',' tLABEL arg_value
+ {
+ $$ = list_append(NEW_LIST(NEW_LIT(ID2SYM($3))), $4);
+ $$ = list_concat($1, $$);
+ }
+ ;
+
operation : tIDENTIFIER
| tCONSTANT
| tFID