class Prism::Pattern

def compile

nodes.
Compile the query into a callable object that can be used to match against
def compile
  result = Prism.parse("case nil\nin #{query}\nend")
  case_match_node = result.value.statements.body.last
  raise CompilationError, case_match_node.inspect unless case_match_node.is_a?(CaseMatchNode)
  in_node = case_match_node.conditions.last
  raise CompilationError, in_node.inspect unless in_node.is_a?(InNode)
  compile_node(in_node.pattern)
end