module Cucumber::Core

def compile(gherkin_documents, last_receiver, filters = [], event_bus = EventBus.new)

def compile(gherkin_documents, last_receiver, filters = [], event_bus = EventBus.new)
  first_receiver = compose(filters, last_receiver)
  gherkin_query = ::Gherkin::Query.new
  compiler = Compiler.new(first_receiver, gherkin_query, event_bus)
  parse gherkin_documents, compiler, event_bus, gherkin_query
  self
end