summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-05 13:29:01 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-05 13:29:01 +0000
commit768e6c1328a77295d1c5b6c53175b511ec073ee6 (patch)
tree1f1ffbab52aeaeb31fbf320a01b24a779833f186
parentdf27d91fc4de9215d6af58de191b2c105ef88678 (diff)
* parse.y (stmt, mlhs_node, lhs, arg, method_call): aref_args might be
nothing. fixed: [ruby-dev:26952] * ext/ripper/eventids2.c: added new tokens. fixed: [ruby-dev:26952] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--ext/ripper/eventids2.c12
-rw-r--r--ext/ripper/lib/ripper/core.rb20
-rw-r--r--parse.y10
4 files changed, 44 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 45511ac3ef..fda2c9c111 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Mon Sep 5 22:28:46 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (stmt, mlhs_node, lhs, arg, method_call): aref_args might be
+ nothing. fixed: [ruby-dev:26952]
+
+ * ext/ripper/eventids2.c: added new tokens. fixed: [ruby-dev:26952]
+
Mon Sep 5 17:03:07 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
* lib/ostruct.rb: a patch from Florian Gross <florgro@gmail.com>
diff --git a/ext/ripper/eventids2.c b/ext/ripper/eventids2.c
index 0ce96a12d3..fc8e28ea68 100644
--- a/ext/ripper/eventids2.c
+++ b/ext/ripper/eventids2.c
@@ -42,6 +42,10 @@ static ID ripper_id_qwords_beg;
static ID ripper_id_words_sep;
static ID ripper_id_regexp_beg;
static ID ripper_id_regexp_end;
+static ID ripper_id_label;
+static ID ripper_id_lambda;
+static ID ripper_id_lambda_arg;
+static ID ripper_id_lambeg;
static ID ripper_id_ignored_nl;
static ID ripper_id_comment;
@@ -90,6 +94,10 @@ ripper_init_eventids2()
ripper_id_words_sep = rb_intern("on_words_sep");
ripper_id_regexp_beg = rb_intern("on_regexp_beg");
ripper_id_regexp_end = rb_intern("on_regexp_end");
+ ripper_id_label = rb_intern("on_label");
+ ripper_id_lambda = rb_intern("on_lambda");
+ ripper_id_lambda_arg = rb_intern("on_lambda_arg");
+ ripper_id_lambeg = rb_intern("on_lambeg");
ripper_id_ignored_nl = rb_intern("on_ignored_nl");
ripper_id_comment = rb_intern("on_comment");
@@ -234,6 +242,10 @@ static struct token_assoc {
{tUPLUS, &ripper_id_op},
{tWORDS_BEG, &ripper_id_words_beg},
{tXSTRING_BEG, &ripper_id_backtick},
+ {tLABEL, &ripper_id_label},
+ {tLAMBDA, &ripper_id_lambda},
+ {tLAMBDA_ARG, &ripper_id_lambda_arg},
+ {tLAMBEG, &ripper_id_lambeg},
/* ripper specific tokens */
{tIGNORED_NL, &ripper_id_ignored_nl},
diff --git a/ext/ripper/lib/ripper/core.rb b/ext/ripper/lib/ripper/core.rb
index f23535f567..3a50a40c83 100644
--- a/ext/ripper/lib/ripper/core.rb
+++ b/ext/ripper/lib/ripper/core.rb
@@ -176,6 +176,10 @@ class Ripper
:int => 1,
:ivar => 1,
:kw => 1,
+ :label => 1,
+ :lambda => 1,
+ :lambda_arg => 1,
+ :lambeg => 1,
:lbrace => 1,
:lbracket => 1,
:lparen => 1,
@@ -816,6 +820,22 @@ class Ripper
token
end
+ def on_label(token)
+ token
+ end
+
+ def on_lambda(token)
+ token
+ end
+
+ def on_lambda_arg(token)
+ token
+ end
+
+ def on_lambeg(token)
+ token
+ end
+
def on_lbrace(token)
token
end
diff --git a/parse.y b/parse.y
index 637d9ebb84..3416daba5e 100644
--- a/parse.y
+++ b/parse.y
@@ -921,7 +921,7 @@ stmt : kALIAS fitem {lex_state = EXPR_FNAME;} fitem
$$ = NEW_OP_ASGN1($1, $5, args);
fixpos($$, $1);
/*%
- $$ = dispatch2(aref_field, $1, $3);
+ $$ = dispatch2(aref_field, $1, escape_Qundef($3));
$$ = dispatch3(opassign, $$, $5, $6);
%*/
}
@@ -1341,7 +1341,7 @@ mlhs_node : variable
/*%%%*/
$$ = aryset($1, $3);
/*%
- $$ = dispatch2(aref_field, $1, $3);
+ $$ = dispatch2(aref_field, $1, escape_Qundef($3));
%*/
}
| primary_value '.' tIDENTIFIER
@@ -1415,7 +1415,7 @@ lhs : variable
/*%%%*/
$$ = aryset($1, $3);
/*%
- $$ = dispatch2(aref_field, $1, $3);
+ $$ = dispatch2(aref_field, $1, escape_Qundef($3));
%*/
}
| primary_value '.' tIDENTIFIER
@@ -1676,7 +1676,7 @@ arg : lhs '=' arg
$$ = NEW_OP_ASGN1($1, $5, args);
fixpos($$, $1);
/*%
- $1 = dispatch2(aref_field, $1, $3);
+ $1 = dispatch2(aref_field, $1, escape_Qundef($3));
$$ = dispatch3(opassign, $1, $5, $6);
%*/
}
@@ -3364,7 +3364,7 @@ method_call : operation paren_args
$$ = NEW_CALL($1, tAREF, $3);
fixpos($$, $1);
/*%
- $$ = dispatch2(aref, $1, $3);
+ $$ = dispatch2(aref, $1, escape_Qundef($3));
%*/
}
;