+ /// Returns a list of suffixes that can be processed with this tool.
+ const std::vector<std::string> &get_input_suffixes() const { return input_suffixes; }
+
+ /** Returns a list of suffixes that are associated with this tool, but can't
+ be processed directly. For example C and C++ headers. */
+ const std::vector<std::string> &get_auxiliary_suffixes() const { return aux_suffixes; }
+
+ /** Indicates whether the tool can accept a suffix. If aux is true,
+ auxiliary suffixes are considered as well */
+ bool accepts_suffix(const std::string &, bool aux = false) const;
+
+ /** Returns the grouping unit this tool prefers to process. */
+ ProcessingUnit get_processing_unit() const { return processing_unit; }
+
+ /// Returns the systemwide search path for source files.
+ const VirtualFileSystem::SearchPath &get_system_path() const { return system_path; }
+
+ /** Returns tool-specific build info. This can be used by other tools down
+ the chain. */
+ const BuildInfo &get_build_info() const { return build_info; }
+
+ /// Creates a source file appropriate for this tool.