From 97d1a381e112e843ff014a05a083e42165b7bb01 Mon Sep 17 00:00:00 2001 From: Marc-Andre Lafortune Date: Thu, 13 Aug 2020 21:50:16 -0400 Subject: [Fixes #137] Improve reporting --- test/racc/assets/ifelse.y | 14 ++++++++++++++ test/racc/test_racc_command.rb | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 test/racc/assets/ifelse.y (limited to 'test/racc') diff --git a/test/racc/assets/ifelse.y b/test/racc/assets/ifelse.y new file mode 100644 index 0000000000..18dbe4b1a7 --- /dev/null +++ b/test/racc/assets/ifelse.y @@ -0,0 +1,14 @@ +class C::Parser +token tSOMETHING +rule + statement + : tSOMETHING + | 'if' statement 'then' statement + | 'if' statement 'then' statement 'else' statement + ; + + dummy + : tSOMETHING '+' tSOMETHING + | tSOMETHING '-' tSOMETHING + ; + diff --git a/test/racc/test_racc_command.rb b/test/racc/test_racc_command.rb index b4fc0c6745..f1116a371f 100644 --- a/test/racc/test_racc_command.rb +++ b/test/racc/test_racc_command.rb @@ -318,5 +318,20 @@ module Racc assert_debugfile 'tp_plus.y', [21, 0, 0, 0] assert_output_unchanged 'tp_plus.y' end + + def test_ifelse + stderr = nil + racc "-o#{@TAB_DIR}/ifelse", "#{ASSET_DIR}/ifelse.y", stdout_filter: ->(s) { stderr = s } + stderr = stderr.lines[1..-1].join if RUBY_PLATFORM.match? /java/ + assert_equal(<<~STDERR, stderr) + 1 useless nonterminals: + dummy + 2 useless rules: + #4 (dummy) + #5 (dummy) + 1 shift/reduce conflicts + Turn on logging with "-v" and check ".output" file for details + STDERR + end end end -- cgit v1.2.1