The Battle for Wesnoth  1.13.4+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Macros | Typedefs | Functions | Variables
preprocessor.cpp File Reference

WML preprocessor. More...

#include "global.hpp"
#include "buffered_istream.hpp"
#include "config.hpp"
#include "filesystem.hpp"
#include "game_config.hpp"
#include "log.hpp"
#include "wesconfig.h"
#include "serialization/binary_or_text.hpp"
#include "serialization/string_utils.hpp"
#include "serialization/parser.hpp"
#include "util.hpp"
#include "version.hpp"
#include <stdexcept>
Include dependency graph for preprocessor.cpp:

Go to the source code of this file.

Classes

class  preprocessor
 Base class for preprocessing an input. More...
 
class  preprocessor_streambuf
 Target for sending preprocessed output. More...
 
class  preprocessor_file
 Specialized preprocessor for handling a file or a set of files. More...
 
class  preprocessor_data
 Specialized preprocessor for handling any kind of input stream. More...
 
struct  preprocessor_data::token_desc
 Description of a preprocessing chunk. More...
 
struct  preprocessor_deleter
 

Macros

#define ERR_PREPROC   LOG_STREAM(err, log_preprocessor)
 
#define WRN_PREPROC   LOG_STREAM(warn, log_preprocessor)
 
#define LOG_PREPROC   LOG_STREAM(info, log_preprocessor)
 
#define DBG_PREPROC   LOG_STREAM(debug, log_preprocessor)
 

Typedefs

typedef std::map< std::string,
int
t_file_number_map
 

Functions

static std::string get_filename (const std::string &file_code)
 
static std::string get_file_code (const std::string &filename)
 
static std::string get_location (const std::string &loc)
 
std::ostream & operator<< (std::ostream &stream, const preproc_define &def)
 
std::ostream & operator<< (std::ostream &stream, const preproc_map::value_type &def)
 
std::string lineno_string (const std::string &lineno)
 
bool operator== (preprocessor_data::token_desc::TOKEN_TYPE, char)
 
bool operator== (char lhs, preprocessor_data::token_desc::TOKEN_TYPE rhs)
 
bool operator!= (preprocessor_data::token_desc::TOKEN_TYPE rhs, char lhs)
 
bool operator!= (char lhs, preprocessor_data::token_desc::TOKEN_TYPE rhs)
 
std::istream * preprocess_file (std::string const &fname, preproc_map *defines)
 
void preprocess_resource (const std::string &res_name, preproc_map *defines_map, bool write_cfg, bool write_plain_cfg, std::string target_directory)
 

Variables

static lg::log_domain log_preprocessor ("preprocessor")
 
static std::string current_file_str = "CURRENT_FILE"
 
static std::string current_dir_str = "CURRENT_DIRECTORY"
 
static t_file_number_map file_number_map
 
static bool encode_filename = true
 
static std::string preprocessor_error_detail_prefix = "\n "
 

Detailed Description

WML preprocessor.

Definition in file preprocessor.cpp.

Macro Definition Documentation

#define DBG_PREPROC   LOG_STREAM(debug, log_preprocessor)

Definition at line 42 of file preprocessor.cpp.

Referenced by preprocessor_data::get_chunk().

#define ERR_PREPROC   LOG_STREAM(err, log_preprocessor)
#define LOG_PREPROC   LOG_STREAM(info, log_preprocessor)

Definition at line 41 of file preprocessor.cpp.

Referenced by preprocessor_data::get_chunk(), and preprocess_resource().

#define WRN_PREPROC   LOG_STREAM(warn, log_preprocessor)

Typedef Documentation

typedef std::map<std::string, int> t_file_number_map

Definition at line 50 of file preprocessor.cpp.

Function Documentation

static std::string get_file_code ( const std::string filename)
static

Definition at line 75 of file preprocessor.cpp.

References encode_filename, utils::escape(), and file_number_map.

Referenced by preprocessor_data::preprocessor_data().

static std::string get_filename ( const std::string file_code)
static
static std::string get_location ( const std::string loc)
static

Definition at line 92 of file preprocessor.cpp.

References get_filename(), i, pos, and utils::quoted_split().

Referenced by preprocessor_data::get_chunk(), and preproc_define::write().

std::string lineno_string ( const std::string lineno)
bool operator!= ( preprocessor_data::token_desc::TOKEN_TYPE  rhs,
char  lhs 
)

Definition at line 548 of file preprocessor.cpp.

bool operator!= ( char  lhs,
preprocessor_data::token_desc::TOKEN_TYPE  rhs 
)

Definition at line 549 of file preprocessor.cpp.

std::ostream& operator<< ( std::ostream &  stream,
const preproc_define def 
)

Definition at line 177 of file preprocessor.cpp.

References preproc_define::location, and preproc_define::value.

std::ostream& operator<< ( std::ostream &  stream,
const preproc_map::value_type &  def 
)

Definition at line 182 of file preprocessor.cpp.

bool operator== ( preprocessor_data::token_desc::TOKEN_TYPE  ,
char   
)

Definition at line 543 of file preprocessor.cpp.

bool operator== ( char  lhs,
preprocessor_data::token_desc::TOKEN_TYPE  rhs 
)

Definition at line 547 of file preprocessor.cpp.

std::istream* preprocess_file ( std::string const &  fname,
preproc_map defines 
)
void preprocess_resource ( const std::string res_name,
preproc_map defines_map,
bool  write_cfg,
bool  write_plain_cfg,
std::string  target_directory 
)

Variable Documentation

std::string current_dir_str = "CURRENT_DIRECTORY"
static

Definition at line 47 of file preprocessor.cpp.

Referenced by preprocessor_data::get_chunk().

std::string current_file_str = "CURRENT_FILE"
static

Definition at line 46 of file preprocessor.cpp.

Referenced by preprocessor_data::get_chunk().

bool encode_filename = true
static

Definition at line 53 of file preprocessor.cpp.

Referenced by get_file_code(), get_filename(), and preprocess_resource().

t_file_number_map file_number_map
static

Definition at line 51 of file preprocessor.cpp.

Referenced by get_file_code(), and get_filename().

lg::log_domain log_preprocessor("preprocessor")
static
std::string preprocessor_error_detail_prefix = "\n "
static

Definition at line 55 of file preprocessor.cpp.

Referenced by lineno_string().