From: Greg.mpls@... Date: 2017-10-03T19:24:26+00:00 Subject: [ruby-core:83089] [Ruby trunk Bug#13967] Recent Ripper changes, sexp broken? Issue #13967 has been reported by MSP-Greg (Greg L). ---------------------------------------- Bug #13967: Recent Ripper changes, sexp broken? https://bugs.ruby-lang.org/issues/13967 * Author: MSP-Greg (Greg L) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.0dev (2017-10-03 trunk 60107) [x64-mingw32] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- With some recent changes, (svn 60103 +), Ripper.sexp has changed. With 60103 +, the second lex shown below no longer has the method name. Old version shows `[:@op, "<<", [1, 4]]`, new version shows simply `:on_op` Code: ```ruby # frozen_string_literal: true require 'ripper' require 'pp' puts "\n#{RUBY_DESCRIPTION}" puts "\ndef hello(world) world; end" pp Ripper.sexp('def hello(world) world; end') puts "\ndef <<(world) world; end" pp Ripper.sexp('def <<(world) world; end') ``` Output from svn 60107 ```ruby >ruby ripper.rb ruby 2.5.0dev (2017-10-03 trunk 60107) [x64-mingw32] def hello(world) world; end [:program, [[:def, [:@ident, "hello", [1, 4]], [:paren, [:params, [[:@ident, "world", [1, 10]]], nil, nil, nil, nil, nil, nil]], [:bodystmt, [[:var_ref, [:@ident, "world", [1, 17]]]], nil, nil, nil]]]] def <<(world) world; end [:program, [[:def, :on_op, [:paren, [:params, [[:@ident, "world", [1, 7]]], nil, nil, nil, nil, nil, nil]], [:bodystmt, [[:var_ref, [:@ident, "world", [1, 14]]]], nil, nil, nil]]]] ``` Output from svn 60101: ```ruby >ruby ripper.rb ruby 2.5.0dev (2017-10-02 trunk 60101) [x64-mingw32] def hello(world) world; end [:program, [[:def, [:@ident, "hello", [1, 4]], [:paren, [:params, [[:@ident, "world", [1, 10]]], nil, nil, nil, nil, nil, nil]], [:bodystmt, [[:var_ref, [:@ident, "world", [1, 17]]]], nil, nil, nil]]]] def <<(world) world; end [:program, [[:def, [:@op, "<<", [1, 4]], [:paren, [:params, [[:@ident, "world", [1, 7]]], nil, nil, nil, nil, nil, nil]], [:bodystmt, [[:var_ref, [:@ident, "world", [1, 14]]]], nil, nil, nil]]]] ``` -- https://bugs.ruby-lang.org/ Unsubscribe: