OpenTTD Source  20241108-master-g80f628063a
StringReader Struct Referenceabstract

Helper for reading strings. More...

#include <strgen.h>

Inheritance diagram for StringReader:
FileStringReader StringListReader

Public Member Functions

 StringReader (StringData &data, const std::string &file, bool master, bool translation)
 Prepare reading. More...
 
void HandleString (char *str)
 
virtual std::optional< std::string > ReadLine ()=0
 Read a single line from the source of strings. More...
 
virtual void HandlePragma (char *str)
 Handle the pragma of the file. More...
 
virtual void ParseFile ()
 Start parsing the file.
 

Data Fields

StringDatadata
 The data to fill during reading.
 
const std::string file
 The file we are reading.
 
bool master
 Are we reading the master file?
 
bool translation
 Are we reading a translation, implies !master. However, the base translation will have this false.
 

Detailed Description

Helper for reading strings.

Definition at line 58 of file strgen.h.

Constructor & Destructor Documentation

◆ StringReader()

StringReader::StringReader ( StringData data,
const std::string &  file,
bool  master,
bool  translation 
)

Prepare reading.

Parameters
dataThe data to fill during reading.
fileThe file we are reading.
masterAre we reading the master file?
translationAre we reading a translation?

Definition at line 532 of file strgen_base.cpp.

Member Function Documentation

◆ HandlePragma()

void StringReader::HandlePragma ( char *  str)
virtual

Handle the pragma of the file.

Parameters
strThe pragma string to parse.

Reimplemented in FileStringReader.

Definition at line 733 of file strgen_base.cpp.

References _lang, _plural_forms, lengthof, and LanguagePackHeader::plural_form.

◆ ReadLine()

virtual std::optional<std::string> StringReader::ReadLine ( )
pure virtual

Read a single line from the source of strings.

Returns
The line, or std::nullopt if at the end of the file.

Implemented in FileStringReader, and StringListReader.


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