##
# **_Defined in the toys-core gem_**
#
# This module is the root namespace for tool definitions loaded from files.
# Whenever a toys configuration file is parsed, a module is created under this
# parent for that file's contents. Tool classes defined in that file, along
# with mixins and templates, and any other classes, modules, and constants
# defined, are located within that file's module. This isolates the namespace,
# so that, for example, constants defined in the file are not defined as
# top-level constants but are isolated from other files.
#
module Toys::InputFile # rubocop:disable Style/ClassAndModuleChildren
  ##
  # This is the main entrypoint. We create a module with a unique name, and
  # put it under `Toys::InputFile`. Then we prepare that module to define
  # everything in the source. The "top level" class to define the given source
  # will already have been generated by the Loader, and passed in as tool_class,
  # and we alter the Ruby code loaded from the input file to define the tool
  # within that class.
  #
  # @private This interface is internal and subject to change without warning.
  #
  def self.evaluate(tool_class, words, priority, remaining_words, source, loader)
    # Source available in the toys-core gem
  end
end
