From 91bd6e711db3418baa287e936d4b0fac99927711 Mon Sep 17 00:00:00 2001 From: tenderlove Date: Tue, 24 Jul 2012 18:10:35 +0000 Subject: * 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 --- ext/ripper/eventids2.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ext/ripper') 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}, -- cgit v1.2.3