Pegmatite
Public Member Functions | List of all members
pegmatite::AsciiFileInput Struct Reference

A concrete Input class that wraps a file. More...

#include <parser.hh>

Inheritance diagram for pegmatite::AsciiFileInput:
pegmatite::Input

Public Member Functions

 AsciiFileInput (int file, const std::string &name="")
 Construct a parser input from a specified file descriptor.
 
bool fillBuffer (Index start, Index &length, char32_t *&b) override
 Fill in the buffer with the next range. More...
 
Index size () const override
 Returns the size of the buffer.
 
- Public Member Functions inherited from pegmatite::Input
iterator begin ()
 Returns an iterator for the start of the input.
 
iterator end ()
 Returns an iterator for the end of the input.
 
const std::string & name () const
 Returns a user-meaningful name (typically a filename).
 
char32_t operator[] (Index n)
 Fetch the character at the specified index. More...
 
 Input (const std::string &name)
 Default constructor, sets the buffer start to be after the buffer end, so that the first request will trigger a fetch from the underlying storage. More...
 

Additional Inherited Members

- Public Types inherited from pegmatite::Input
typedef size_t Index
 The type of indexes into the buffer.
 
- Static Public Attributes inherited from pegmatite::Input
static const Index npos = static_cast<Index>(-1)
 
- Protected Member Functions inherited from pegmatite::Input
virtual ~Input ()
 Virtual destructor.
 
 Input (const Input &)
 Copy constructor.
 
- Static Protected Attributes inherited from pegmatite::Input
static const std::size_t static_buffer_size = 512
 Size for the static buffer. More...
 

Detailed Description

A concrete Input class that wraps a file.

The file is assumed to be in ASCII. Note that this does NOT include UTF-8 unless it is restricted to the 7-bit subset, as individual characters are promoted directly. There is no support in this class for characters that require longer encodings.

Member Function Documentation

bool pegmatite::AsciiFileInput::fillBuffer ( Index  start,
Index length,
char32_t *&  b 
)
overridevirtual

Fill in the buffer with the next range.

This is called when the current cached buffer does not contain the range. The function returns true if it can provide at least one character from the index specified by start. The length of the buffer passed in via the last parameter is provided as the second argument.

Implementations of this function may either fill in the provided buffer, reducing the value passed by the second parameter if there are not enough characters available to satisfy it, or set the third parameter to refer to their underlying storage.

Implements pegmatite::Input.


The documentation for this struct was generated from the following file: