diff options
author | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-07-24 18:10:35 +0000 |
---|---|---|
committer | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-07-24 18:10:35 +0000 |
commit | 91bd6e711db3418baa287e936d4b0fac99927711 (patch) | |
tree | 4a605159d1d3f8327ee5775ede377c35d2867723 /ext/ripper/eventids2.c | |
parent | 1a5773a8682e685c87652f02df167f697f9413f9 (diff) | |
download | ruby-91bd6e711db3418baa287e936d4b0fac99927711.tar.gz |
* parse.y: added symbols and qsymbols productions for %i and %I
support. %i{ .. } returns a list of symbols without interpolation,
%I{ .. } returns a list of symbols with interpolation. Thanks to
Josh Susser for inspiration of this feature. [Feature #4985]
* ext/ripper/eventids2.c: added ripper events for %i and %I.
* test/ripper/test_parser_events.rb: ripper tests
* test/ripper/test_scanner_events.rb: ditto
* test/ruby/test_array.rb: test for %i and %I behavior
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/ripper/eventids2.c')
-rw-r--r-- | ext/ripper/eventids2.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/ripper/eventids2.c b/ext/ripper/eventids2.c index faeabd4b65..841a18c583 100644 --- a/ext/ripper/eventids2.c +++ b/ext/ripper/eventids2.c @@ -38,6 +38,8 @@ static ID ripper_id_tstring_content; static ID ripper_id_tstring_end; static ID ripper_id_words_beg; static ID ripper_id_qwords_beg; +static ID ripper_id_qsymbols_beg; +static ID ripper_id_symbols_beg; static ID ripper_id_words_sep; static ID ripper_id_regexp_beg; static ID ripper_id_regexp_end; @@ -91,6 +93,8 @@ ripper_init_eventids2(void) ripper_id_tstring_end = rb_intern_const("on_tstring_end"); ripper_id_words_beg = rb_intern_const("on_words_beg"); ripper_id_qwords_beg = rb_intern_const("on_qwords_beg"); + ripper_id_qsymbols_beg = rb_intern_const("on_qsymbols_beg"); + ripper_id_symbols_beg = rb_intern_const("on_symbols_beg"); ripper_id_words_sep = rb_intern_const("on_words_sep"); ripper_id_regexp_beg = rb_intern_const("on_regexp_beg"); ripper_id_regexp_end = rb_intern_const("on_regexp_end"); @@ -228,6 +232,8 @@ static const struct token_assoc { {tOROP, &ripper_id_op}, {tPOW, &ripper_id_op}, {tQWORDS_BEG, &ripper_id_qwords_beg}, + {tQSYMBOLS_BEG, &ripper_id_qsymbols_beg}, + {tSYMBOLS_BEG, &ripper_id_symbols_beg}, {tREGEXP_BEG, &ripper_id_regexp_beg}, {tREGEXP_END, &ripper_id_regexp_end}, {tRPAREN, &ripper_id_rparen}, |