Target for sending preprocessed output. More...
Public Member Functions | |
| preprocessor_streambuf (preproc_map &def) | |
| std::string | get_current_file () |
| Decodes the filenames placed in a location. More... | |
| void | error (const std::string &, int) |
| void | warning (const std::string &, int) |
| template<typename T , typename... A> | |
| void | add_preprocessor (A &&... args) |
| void | drop_preprocessor () |
| int | depth () const |
| preprocessor * | current () const |
Private Member Functions | |
| preprocessor_streambuf (const preprocessor_streambuf &t) | |
| virtual int | underflow () override |
| Inherited from basic_streambuf. More... | |
Private Attributes | |
| std::string | out_buffer_ |
| Buffer read by the STL stream. More... | |
| std::stringstream | buffer_ |
| Buffer filled by the current preprocessor. More... | |
| preproc_map & | defines_ |
| std::string | textdomain_ {PACKAGE} |
| std::string | location_ |
| int | linenum_ {0} |
| std::vector< std::unique_ptr< preprocessor > > | preprocessor_queue_ |
| Input preprocessor queue. More... | |
| bool | quoted_ {false} |
| Set to true if one preprocessor for this target started to read a string. More... | |
Friends | |
| class | preprocessor |
| class | preprocessor_file |
| class | preprocessor_data |
| class | preprocessor_istream |
Target for sending preprocessed output.
Objects of this class can be plugged into an STL stream.
Definition at line 309 of file preprocessor.cpp.
|
inline |
Definition at line 312 of file preprocessor.cpp.
|
inlineprivate |
Definition at line 347 of file preprocessor.cpp.
|
inline |
Definition at line 325 of file preprocessor.cpp.
References preprocessor_queue_.
Referenced by preprocessor_file::get_chunk(), preprocessor_data::get_chunk(), and preprocessor_file::init().
|
inline |
Definition at line 341 of file preprocessor.cpp.
References preprocessor_queue_.
Referenced by underflow().
|
inline |
Definition at line 336 of file preprocessor.cpp.
References preprocessor_queue_.
Referenced by preprocessor_data::get_chunk().
|
inline |
Definition at line 331 of file preprocessor.cpp.
References preprocessor_queue_.
Referenced by underflow().
| void preprocessor_streambuf::error | ( | const std::string & | error_type, |
| int | l | ||
| ) |
Definition at line 532 of file preprocessor.cpp.
References ERR_PREPROC, lineno_string(), and location_.
Referenced by preprocessor_data::get_chunk(), and preprocessor_file::preprocessor_file().
| std::string preprocessor_streambuf::get_current_file | ( | ) |
Decodes the filenames placed in a location.
Definition at line 473 of file preprocessor.cpp.
References get_filename(), location_, p, preprocessor::parse_mode(), preprocessor::PARSES_FILE, preprocessor::PARSES_MACRO, preprocessor_queue_, and utils::quoted_split().
Referenced by preprocessor_data::get_chunk().
|
overrideprivatevirtual |
Inherited from basic_streambuf.
Called by an STL stream whenever it has reached the end of out_buffer_.
Fills buffer_ by calling the current preprocessor, then copies its content into out_buffer_.
Definition at line 420 of file preprocessor.cpp.
References buffer_, current(), drop_preprocessor(), and out_buffer_.
| void preprocessor_streambuf::warning | ( | const std::string & | warning_type, |
| int | l | ||
| ) |
Definition at line 548 of file preprocessor.cpp.
References lineno_string(), location_, and WRN_PREPROC.
Referenced by preprocessor_data::get_chunk().
|
friend |
Definition at line 384 of file preprocessor.cpp.
|
friend |
Definition at line 386 of file preprocessor.cpp.
|
friend |
Definition at line 385 of file preprocessor.cpp.
|
friend |
Definition at line 387 of file preprocessor.cpp.
|
private |
Buffer filled by the current preprocessor.
Definition at line 361 of file preprocessor.cpp.
Referenced by preprocessor_data::put(), underflow(), and preprocessor::~preprocessor().
|
private |
Definition at line 363 of file preprocessor.cpp.
Referenced by preprocessor_data::get_chunk().
|
private |
Definition at line 368 of file preprocessor.cpp.
Referenced by preprocessor_data::put(), and preprocessor::~preprocessor().
|
private |
Definition at line 366 of file preprocessor.cpp.
Referenced by error(), preprocessor_data::get_chunk(), get_current_file(), preprocessor_data::push_token(), preprocessor_data::put(), warning(), and preprocessor::~preprocessor().
|
private |
Buffer read by the STL stream.
Definition at line 358 of file preprocessor.cpp.
Referenced by underflow().
|
private |
Input preprocessor queue.
NOTE: This must be after textdomain_/location_/linenum_ because otherwise it causes a memory corruption error which causes Wesnoth to abort upon launch in some devices.
Definition at line 376 of file preprocessor.cpp.
Referenced by add_preprocessor(), current(), depth(), drop_preprocessor(), and get_current_file().
|
private |
Set to true if one preprocessor for this target started to read a string.
Deeper-nested preprocessors are then forbidden to.
Definition at line 382 of file preprocessor.cpp.
Referenced by preprocessor_data::get_chunk().
|
private |
Definition at line 365 of file preprocessor.cpp.
Referenced by preprocessor_data::get_chunk(), preprocessor_file::init(), preprocessor_data::push_token(), and preprocessor::~preprocessor().