On Jul 7, 2007, at 5:00 PM, Reid Spencer wrote:

> +/// This class is the base class of a family of input source  
> classes that can
> +/// be used to provide input to some parsing facility. This  
> abstracts away
> +/// the details of how the input is acquired. Four functions must be
> +/// implemented by subclasses: prepare, more, read, and finish.
> +/// @brief Abstract Input Source Class
> +class Source

This seems very similar to Support/MemoryBuffer.h.

-Chris

> +{
> +/// @name Methods
> +/// @{
> +public:
> +  /// @brief This destructor does nothing, but declared virtual  
> for subclasses
> +  virtual ~Source();
> +
> +  /// @brief Tells the source to prepare to be read
> +  virtual void prepare(intptr_t block_len) = 0;
> +
> +  /// @brief Requests a block of data.
> +  virtual const char* read(intptr_t& actual_len) = 0;
> +
> +  /// @brief Indicates if more data waits
> +  virtual bool more() = 0;
> +
> +  /// @brief Tells the source to finish up.
> +  virtual void finish() = 0;
> +
> +  /// @brief Get the system identifier of the source
> +  virtual std::string systemId() const = 0;
> +
> +  /// @brief Get the public identifier of the source
> +  virtual std::string publicId() const = 0;
> +
> +/// @}
> +};
> +
> +Source* new_MappedFileSource(llvm::sys::MappedFile& mf);
> +Source* new_StreamSource(std::istream&, std::string sysId =  
> "<istream>",
> +    size_t bSize = 65536);
> +Source* new_URISource(const URI* uri);

_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to