class Opal::Nodes::Match3Node

def compile

def compile
  sexp = s(:send, lhs, :=~, rhs)
  # Handle named matches like: /(?<abc>b)/ =~ 'b'
  if lhs.type == :regexp && lhs.children.first.type == :str
    names = extract_names(lhs)
    unless names.empty?
      names_def = generate_names_definition
      names_assignments = generate_names_assignments(names)
      sexp = if stmt?
               handle_statement(sexp, names_def, names_assignments)
             else
               handle_non_statement(sexp, names_def, names_assignments)
             end
    end
  end
  push process(sexp, @level)
end