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 --- test/ripper/test_parser_events.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test/ripper/test_parser_events.rb') diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb index 3b4785804d..278b47623a 100644 --- a/test/ripper/test_parser_events.rb +++ b/test/ripper/test_parser_events.rb @@ -755,12 +755,36 @@ class TestRipper::ParserEvents < Test::Unit::TestCase assert_equal true, thru_qwords_add end + def test_qsymbols_add + thru_qsymbols_add = false + parse('%i[a]', :on_qsymbols_add) {thru_qsymbols_add = true} + assert_equal true, thru_qsymbols_add + end + + def test_symbols_add + thru_symbols_add = false + parse('%I[a]', :on_symbols_add) {thru_symbols_add = true} + assert_equal true, thru_symbols_add + end + def test_qwords_new thru_qwords_new = false parse('%w[]', :on_qwords_new) {thru_qwords_new = true} assert_equal true, thru_qwords_new end + def test_qsymbols_new + thru_qsymbols_new = false + parse('%i[]', :on_qsymbols_new) {thru_qsymbols_new = true} + assert_equal true, thru_qsymbols_new + end + + def test_symbols_new + thru_symbols_new = false + parse('%I[]', :on_symbols_new) {thru_symbols_new = true} + assert_equal true, thru_symbols_new + end + def test_redo thru_redo = false parse('redo', :on_redo) {thru_redo = true} -- cgit v1.2.3