class Parser::Builders::Default
def match_op(receiver, match_t, arg)
def match_op(receiver, match_t, arg) source_map = send_binary_op_map(receiver, match_t, arg) if receiver.type == :regexp && receiver.children.count == 2 && receiver.children.first.type == :str str_node, opt_node = *receiver regexp_body, = *str_node *regexp_opt = *opt_node if defined?(Encoding) regexp_body = case when regexp_opt.include?(:u) regexp_body.encode(Encoding::UTF_8) when regexp_opt.include?(:e) regexp_body.encode(Encoding::EUC_JP) when regexp_opt.include?(:s) regexp_body.encode(Encoding::WINDOWS_31J) when regexp_opt.include?(:n) regexp_body.encode(Encoding::BINARY) else regexp_body end end Regexp.new(regexp_body).names.each do |name| @parser.static_env.declare(name) end n(:match_with_lvasgn, [ receiver, arg ], source_map) else n(:send, [ receiver, :=~, arg ], source_map) end end