OpenClonk
StdCompiler Class Referenceabstract

#include <StdCompiler.h>

Inheritance diagram for StdCompiler:
[legend]

Classes

class  CorruptException
 
class  EOFException
 
struct  Exception
 
class  NotFoundException
 

Public Types

enum  Sep {
  SEP_NONE =0 , SEP_SEP , SEP_SEP2 , SEP_SET ,
  SEP_PART , SEP_PART2 , SEP_PLUS , SEP_START ,
  SEP_END , SEP_START2 , SEP_END2 , SEP_VLINE ,
  SEP_DOLLAR
}
 
enum  RawCompileType {
  RCT_Escaped =0 , RCT_All , RCT_Idtf , RCT_IdtfAllowEmpty ,
  RCT_ID
}
 
typedef void(* WarnCBT) (void *, const char *, const char *)
 

Public Member Functions

 StdCompiler ()=default
 
virtual ~StdCompiler ()=default
 
virtual bool isDoublePass ()
 
virtual bool isDeserializer ()
 
bool isSerializer ()
 
virtual bool hasNaming ()
 
virtual bool isVerbose ()
 
virtual bool isRegistry ()
 
virtual void setRuntimeWritesAllowed (int32_t iChange)
 
virtual bool Name (const char *szName)
 
virtual void NameEnd (bool fBreak=false)
 
virtual const char * GetNameByIndex (size_t idx) const
 
virtual bool FollowName (const char *szName)
 
virtual bool Default (const char *szName)
 
virtual int NameCount (const char *szName=nullptr)
 
virtual bool Separator (Sep eSep=SEP_SEP)
 
virtual void NoSeparator ()
 
virtual void DWord (int32_t &rInt)=0
 
virtual void DWord (uint32_t &rInt)=0
 
virtual void Word (int16_t &rShort)=0
 
virtual void Word (uint16_t &rShort)=0
 
virtual void Byte (int8_t &rByte)=0
 
virtual void Byte (uint8_t &rByte)=0
 
virtual void Boolean (bool &rBool)=0
 
virtual void Character (char &rChar)=0
 
virtual void String (char *szString, size_t iMaxLength, RawCompileType eType=RCT_Escaped)=0
 
virtual void String (char **pszString, RawCompileType eType=RCT_Escaped)=0
 
virtual void String (std::string &str, RawCompileType type=RCT_Escaped)=0
 
virtual void Raw (void *pData, size_t iSize, RawCompileType eType=RCT_Escaped)=0
 
virtual StdStrBuf getPosition () const
 
virtual void Begin ()
 
virtual void BeginSecond ()
 
virtual void End ()
 
template<class T >
void Value (const T &rStruct)
 
template<class T >
void Value (T &rStruct)
 
void Value (int32_t &rInt)
 
void Value (uint32_t &rInt)
 
void Value (int16_t &rInt)
 
void Value (uint16_t &rInt)
 
void Value (int8_t &rInt)
 
void Value (uint8_t &rInt)
 
void Value (bool &rBool)
 
template<class T >
void Compile (T &&rStruct)
 
template<class T >
void Decompile (const T &rStruct)
 
void excNotFound (const char *szMessage,...)
 
void excEOF (const char *szMessage="EOF",...)
 
void excCorrupt (const char *szMessage,...)
 
void setWarnCallback (WarnCBT pnWarnCB, void *pData)
 
void Warn (const char *szWarning,...)
 

Protected Member Functions

template<class T >
void DoCompilation (T &rStruct)
 

Static Protected Member Functions

static char SeparatorToChar (Sep eSep)
 
static bool IsStringEnd (char c, RawCompileType eType)
 

Detailed Description

Definition at line 37 of file StdCompiler.h.

Member Typedef Documentation

◆ WarnCBT

typedef void(* StdCompiler::WarnCBT) (void *, const char *, const char *)

Definition at line 281 of file StdCompiler.h.

Member Enumeration Documentation

◆ RawCompileType

Enumerator
RCT_Escaped 
RCT_All 
RCT_Idtf 
RCT_IdtfAllowEmpty 
RCT_ID 

Definition at line 135 of file StdCompiler.h.

136  {
137  RCT_Escaped=0,// Any data allowed, no separator needed (default)
138  RCT_All, // Printable characters only, must be last element in naming.
139  RCT_Idtf, // Alphanumerical characters or '_', separator needed.
140  RCT_IdtfAllowEmpty, // Like RCT_Idtf, but empty strings are also allowed
141  RCT_ID // Like RCT_Idtf (only used for special compilers that treat IDs differently)
142  };
@ RCT_IdtfAllowEmpty
Definition: StdCompiler.h:140

◆ Sep

Enumerator
SEP_NONE 
SEP_SEP 
SEP_SEP2 
SEP_SET 
SEP_PART 
SEP_PART2 
SEP_PLUS 
SEP_START 
SEP_END 
SEP_START2 
SEP_END2 
SEP_VLINE 
SEP_DOLLAR 

Definition at line 103 of file StdCompiler.h.

104  {
105  SEP_NONE=0, // No separator ("")
106  SEP_SEP, // Array separation (",")
107  SEP_SEP2, // Array separation 2 (";")
108  SEP_SET, // Map pair separation ("=")
109  SEP_PART, // Value part separation (".")
110  SEP_PART2, // Value part separation 2 (":")
111  SEP_PLUS, // Value separation with a '+' char ("+")
112  SEP_START, // Start some sort of list ('(')
113  SEP_END, // End some sort of list ('(')
114  SEP_START2, // Start some sort of list ('[')
115  SEP_END2, // End some sort of list (']')
116  SEP_VLINE, // Vertical line separator ('|')
117  SEP_DOLLAR // Dollar sign ('$')
118  };

Constructor & Destructor Documentation

◆ StdCompiler()

StdCompiler::StdCompiler ( )
default

◆ ~StdCompiler()

virtual StdCompiler::~StdCompiler ( )
virtualdefault

Member Function Documentation

◆ Begin()

virtual void StdCompiler::Begin ( )
inlinevirtual

Reimplemented in StdCompilerINIRead, StdCompilerINIWrite, StdCompilerBinRead, StdCompilerBinWrite, and C4ValueCompiler.

Definition at line 154 of file StdCompiler.h.

154 { }

Referenced by DoCompilation().

Here is the caller graph for this function:

◆ BeginSecond()

virtual void StdCompiler::BeginSecond ( )
inlinevirtual

Reimplemented in StdCompilerBinWrite.

Definition at line 155 of file StdCompiler.h.

155 { }

Referenced by DoCompilation().

Here is the caller graph for this function:

◆ Boolean()

virtual void StdCompiler::Boolean ( bool &  rBool)
pure virtual

Implemented in StdCompilerINIRead, StdCompilerINIWrite, StdCompilerBinRead, StdCompilerBinWrite, StdCompilerNull, and C4ValueCompiler.

Referenced by Value().

Here is the caller graph for this function:

◆ Byte() [1/2]

virtual void StdCompiler::Byte ( int8_t &  rByte)
pure virtual

Implemented in StdCompilerINIRead, StdCompilerINIWrite, StdCompilerBinRead, StdCompilerBinWrite, StdCompilerNull, and C4ValueCompiler.

Referenced by Value().

Here is the caller graph for this function:

◆ Byte() [2/2]

virtual void StdCompiler::Byte ( uint8_t &  rByte)
pure virtual

◆ Character()

virtual void StdCompiler::Character ( char &  rChar)
pure virtual

Implemented in StdCompilerINIRead, StdCompilerINIWrite, StdCompilerBinRead, StdCompilerBinWrite, StdCompilerNull, and C4ValueCompiler.

Referenced by C4Value::CompileFunc(), and C4ValueNumbers::CompileValue().

Here is the caller graph for this function:

◆ Compile()

template<class T >
void StdCompiler::Compile ( T &&  rStruct)
inline

Definition at line 173 of file StdCompiler.h.

174  {
175  assert(isDeserializer());
176  DoCompilation(rStruct);
177  }
void DoCompilation(T &rStruct)
Definition: StdCompiler.h:188
virtual bool isDeserializer()
Definition: StdCompiler.h:53

References DoCompilation(), and isDeserializer().

Referenced by C4Config::Default(), C4GameParameters::Load(), C4Config::Load(), C4ConfigGamepad::Reset(), and C4ConfigGamepad::ResetButtons().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Decompile()

template<class T >
void StdCompiler::Decompile ( const T &  rStruct)
inline

Definition at line 178 of file StdCompiler.h.

179  {
180  assert(!isDeserializer());
181  DoCompilation(const_cast<T &>(rStruct));
182  }

References DoCompilation(), and isDeserializer().

Referenced by GetValByStdCompiler(), and C4Config::Save().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Default()

virtual bool StdCompiler::Default ( const char *  szName)
inlinevirtual

Reimplemented in C4ValueCompiler.

Definition at line 88 of file StdCompiler.h.

88 { return true; }

Referenced by C4ConfigControls::CompileFunc(), C4PlayerControlAssignmentSets::CompileFunc(), and StdNamingDefaultAdapt< T, D >::CompileFunc().

Here is the caller graph for this function:

◆ DoCompilation()

template<class T >
void StdCompiler::DoCompilation ( T &  rStruct)
inlineprotected

Definition at line 188 of file StdCompiler.h.

189  {
190  // Start compilation, do first pass
191  Begin();
192  Value(rStruct);
193  // Second pass needed?
194  if (isDoublePass())
195  {
196  BeginSecond();
197  Value(rStruct);
198  }
199  // Finish
200  End();
201  }
virtual void BeginSecond()
Definition: StdCompiler.h:155
void Value(const T &rStruct)
Definition: StdCompiler.h:161
virtual void End()
Definition: StdCompiler.h:156
virtual bool isDoublePass()
Definition: StdCompiler.h:50
virtual void Begin()
Definition: StdCompiler.h:154

References Begin(), BeginSecond(), End(), isDoublePass(), and Value().

Referenced by Compile(), and Decompile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DWord() [1/2]

virtual void StdCompiler::DWord ( int32_t &  rInt)
pure virtual

Implemented in StdCompilerINIRead, StdCompilerINIWrite, StdCompilerBinRead, StdCompilerBinWrite, StdCompilerNull, and C4ValueCompiler.

Referenced by Value().

Here is the caller graph for this function:

◆ DWord() [2/2]

virtual void StdCompiler::DWord ( uint32_t &  rInt)
pure virtual

◆ End()

virtual void StdCompiler::End ( )
inlinevirtual

Reimplemented in StdCompilerINIRead, and StdCompilerINIWrite.

Definition at line 156 of file StdCompiler.h.

156 { }

Referenced by DoCompilation(), and C4Playback::ReadBinary().

Here is the caller graph for this function:

◆ excCorrupt()

void StdCompiler::excCorrupt ( const char *  szMessage,
  ... 
)
inline

Definition at line 249 of file StdCompiler.h.

250  {
251  // Throw the appropriate exception
252  va_list args; va_start(args, szMessage);
253  throw new CorruptException(getPosition(), FormatStringV(szMessage, args));
254  }
StdStrBuf FormatStringV(const char *szFmt, va_list args)
Definition: StdBuf.cpp:276
virtual StdStrBuf getPosition() const
Definition: StdCompiler.h:151

References FormatStringV(), and getPosition().

Referenced by C4ClientPlayerInfos::CompileFunc(), C4PlayerInfoList::CompileFunc(), C4RoundResultsPlayers::CompileFunc(), StdSubMeshInstance::CompileFunc(), C4DefGraphicsAdapt::CompileFunc(), C4Network2ResCore::CompileFunc(), C4Network2ResChunkData::CompileFunc(), C4IDPacket::CompileFunc(), StdMeshInstance::CompileFunc(), C4Value::CompileFunc(), C4PropListNumbered::CompileFunc(), StdMeshInstanceAnimationNode::CompileFunc(), C4MeshDenumerator::CompileFunc(), C4KeyCodeEx::CompileFunc(), C4ValueNumbers::CompileValue(), C4PropListStatic::RefCompileFunc(), and StdCompilerBinRead::String().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ excEOF()

void StdCompiler::excEOF ( const char *  szMessage = "EOF",
  ... 
)
inline

Definition at line 243 of file StdCompiler.h.

244  {
245  // Throw the appropriate exception
246  va_list args; va_start(args, szMessage);
247  throw new EOFException(getPosition(), FormatStringV(szMessage, args));
248  }

References FormatStringV(), and getPosition().

Referenced by StdCompilerBinRead::Raw(), StdCompilerBinRead::ReadValue(), and StdCompilerBinRead::String().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ excNotFound()

void StdCompiler::excNotFound ( const char *  szMessage,
  ... 
)
inline

Definition at line 233 of file StdCompiler.h.

234  {
235 #ifdef STDCOMPILER_EXCEPTION_WORKAROUND
236  // Exception workaround: Just set a flag in failesafe mode.
237  if (fFailSafe) { fFail = true; return; }
238 #endif
239  // Throw the appropriate exception
240  va_list args; va_start(args, szMessage);
241  throw new NotFoundException(getPosition(), FormatStringV(szMessage, args));
242  }

References FormatStringV(), and getPosition().

Referenced by C4PlayerControlDef::CompileFunc(), C4PlayerControlAssignment::CompileFunc(), C4PlayerControlAssignmentSet::CompileFunc(), C4ScenarioParameterDef::Option::CompileFunc(), C4ScenarioParameterDef::CompileFunc(), StdHexAdapt::CompileFunc(), C4Object::CompileFunc(), and StdCompilerINIRead::notFound().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FollowName()

virtual bool StdCompiler::FollowName ( const char *  szName)
inlinevirtual

Reimplemented in StdCompilerINIRead.

Definition at line 84 of file StdCompiler.h.

84 { NameEnd(); return Name(szName); }
virtual void NameEnd(bool fBreak=false)
Definition: StdCompiler.h:78
virtual bool Name(const char *szName)
Definition: StdCompiler.h:77

References Name(), and NameEnd().

Referenced by C4Object::CompileFunc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNameByIndex()

virtual const char* StdCompiler::GetNameByIndex ( size_t  idx) const
inlinevirtual

Reimplemented in StdCompilerINIRead.

Definition at line 79 of file StdCompiler.h.

79 { return nullptr; }

Referenced by C4ScenarioParameters::CompileFunc().

Here is the caller graph for this function:

◆ getPosition()

virtual StdStrBuf StdCompiler::getPosition ( ) const
inlinevirtual

Reimplemented in StdCompilerINIRead, and StdCompilerBinRead.

Definition at line 151 of file StdCompiler.h.

151 { return StdStrBuf(); }

Referenced by excCorrupt(), excEOF(), excNotFound(), and Warn().

Here is the caller graph for this function:

◆ hasNaming()

◆ isDeserializer()

virtual bool StdCompiler::isDeserializer ( )
inlinevirtual

Reimplemented in StdCompilerINIRead, StdCompilerBinRead, StdCompilerNull, and C4ValueCompiler.

Definition at line 53 of file StdCompiler.h.

53 { return false; }

Referenced by Compile(), C4MusicSystem::CompileFunc(), C4ValueArray::CompileFunc(), C4Set< T >::CompileFunc(), StdStrBuf::CompileFunc(), StdBuf::CompileFunc(), C4ValueNumbers::CompileFunc(), C4NetIO::EndpointAddress::CompileFunc(), C4Game::CompileFunc(), C4GameRes::CompileFunc(), C4GameResList::CompileFunc(), C4PlayerControlDefs::CompileFunc(), C4PlayerControlAssignment::CompileFunc(), C4PlayerInfo::CompileFunc(), C4ClientPlayerInfos::CompileFunc(), C4PlayerInfoList::CompileFunc(), C4RoundResultsPlayers::CompileFunc(), C4RoundResults::CompileFunc(), C4Team::CompileFunc(), C4TeamList::CompileFunc(), C4DrawTransform::CompileFunc(), C4KeyboardInput::CompileFunc(), C4Scoreboard::CompileFunc(), C4MapFolderData::CompileFunc(), C4Landscape::CompileFunc(), C4MaterialReaction::CompileFunc(), C4MaterialCore::CompileFunc(), C4StrValAdapt< T >::CompileFunc(), StdSubMeshInstance::CompileFunc(), C4Client::CompileFunc(), C4ClientList::CompileFunc(), DisconnectData::CompileFunc(), C4Network2Address::CompileFunc(), C4DefGraphicsAdapt::CompileFunc(), C4GraphicsOverlay::CompileFunc(), C4GraphicsOverlayListAdapt::CompileFunc(), C4ObjectInfoCore::CompileFunc(), C4PlayerInfoCore::CompileFunc(), C4ObjectPtr::CompileFunc(), C4ScenarioParameters::CompileFunc(), StdNamingDefaultAdapt< T, D >::CompileFunc(), StdArrayDefaultAdapt< T, D, M >::CompileFunc(), StdArrayDefaultArrayAdapt< T, D, M >::CompileFunc(), StdSTLContainerAdapt< C >::CompileFunc(), StdIntPackAdapt< T >::CompileFunc(), StdEnumAdapt< T, int_t >::CompileFunc(), StdBitfieldAdapt< T >::CompileFunc(), StdNamingCountAdapt< int_t >::CompileFunc(), StdHexAdapt::CompileFunc(), C4NetFilenameAdapt::CompileFunc(), C4PacketPostMortem::CompileFunc(), C4Network2ResChunkData::CompileFunc(), C4IDPacket::CompileFunc(), C4PacketList::CompileFunc(), C4ValueProviderLinear::CompileFunc(), StdMeshInstance::CompileFunc(), C4GameVersion::CompileFunc(), C4AulScriptEngine::CompileFunc(), C4SHead::CompileFunc(), C4NameList::CompileFunc(), C4Effect::CompileFunc(), C4Command::CompileFunc(), C4Object::CompileFunc(), C4Player::CompileFunc(), C4Property::CompileFunc(), C4PropList::CompileFunc(), C4Value::CompileFunc(), C4ValueMapData::CompileFunc(), C4ObjectList::CompileFunc(), C4PropListNumbered::CompileFunc(), StdMeshInstanceAnimationNode::CompileFunc(), StdMeshInstance::AttachedMesh::CompileFunc(), ValidatedStdCopyStrBufBase::CompileFunc(), C4MeshDenumerator::CompileFunc(), C4KeyCodeEx::CompileFunc(), C4ValueNumbers::CompileValue(), Decompile(), isSerializer(), C4PropListStatic::RefCompileFunc(), StdPtrAdaptCompileFunc(), and unpack_class< T >::unpack().

◆ isDoublePass()

virtual bool StdCompiler::isDoublePass ( )
inlinevirtual

Reimplemented in StdCompilerBinWrite.

Definition at line 50 of file StdCompiler.h.

50 { return false; }

Referenced by DoCompilation().

Here is the caller graph for this function:

◆ isRegistry()

virtual bool StdCompiler::isRegistry ( )
inlinevirtual

Definition at line 65 of file StdCompiler.h.

65 { return false; }

Referenced by C4PlayerControlAssignmentSets::CompileFunc().

Here is the caller graph for this function:

◆ isSerializer()

bool StdCompiler::isSerializer ( )
inline

Definition at line 54 of file StdCompiler.h.

54 { return !isDeserializer(); }

References isDeserializer().

Referenced by C4ConfigControls::CompileFunc(), C4Game::CompileFunc(), C4PlayerControlAssignmentSets::CompileFunc(), C4PlayerInfo::CompileFunc(), C4FoWLightSection::CompileFunc(), C4ID::CompileFunc(), StdNamingDefaultAdapt< T, D >::CompileFunc(), StdDecompileAdapt< T >::CompileFunc(), C4NetFilenameAdapt::CompileFunc(), C4ObjectList::CompileFunc(), C4Effect::CompileFunc(), and C4Command::CompileFunc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsStringEnd()

bool StdCompiler::IsStringEnd ( char  c,
RawCompileType  eType 
)
staticprotected

Definition at line 53 of file StdCompiler.cpp.

54 {
55  switch (eType)
56  {
57  case RCT_Escaped: return c == '"' || !c || c == '\n' || c == '\r';
58  case RCT_All: return !c || c == '\n' || c == '\r';
59  // '-' is needed for Layers in Scenario.txt (C4NameList) and other Material-Texture combinations
60  case RCT_Idtf: case RCT_IdtfAllowEmpty: case RCT_ID: return !isalnum((unsigned char)c) && c != '_' && c != '-';
61  }
62  // unreachable
63  return true;
64 }

References RCT_All, RCT_Escaped, RCT_ID, RCT_Idtf, and RCT_IdtfAllowEmpty.

Referenced by StdCompilerINIRead::TestStringEnd().

Here is the caller graph for this function:

◆ isVerbose()

virtual bool StdCompiler::isVerbose ( )
inlinevirtual

Reimplemented in C4ValueCompiler.

Definition at line 62 of file StdCompiler.h.

62 { return hasNaming(); }
virtual bool hasNaming()
Definition: StdCompiler.h:58

References hasNaming().

Referenced by StdEnumAdapt< T, int_t >::CompileFunc(), StdBitfieldAdapt< T >::CompileFunc(), and StdHexAdapt::CompileFunc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Name()

◆ NameCount()

virtual int StdCompiler::NameCount ( const char *  szName = nullptr)
inlinevirtual

Reimplemented in StdCompilerINIRead, and StdCompilerNull.

Definition at line 91 of file StdCompiler.h.

91 { assert(false); return 0; }

Referenced by C4ScenarioParameters::CompileFunc(), and StdNamingCountAdapt< int_t >::CompileFunc().

Here is the caller graph for this function:

◆ NameEnd()

◆ NoSeparator()

virtual void StdCompiler::NoSeparator ( )
inlinevirtual

Reimplemented in StdCompilerINIRead.

Definition at line 120 of file StdCompiler.h.

120 { }

Referenced by C4Command::CompileFunc(), and C4KeyCodeEx::CompileFunc().

Here is the caller graph for this function:

◆ Raw()

virtual void StdCompiler::Raw ( void *  pData,
size_t  iSize,
RawCompileType  eType = RCT_Escaped 
)
pure virtual

Implemented in StdCompilerINIRead, StdCompilerINIWrite, StdCompilerBinRead, StdCompilerBinWrite, StdCompilerNull, and C4ValueCompiler.

Referenced by StdBuf::CompileFunc(), StdRawAdapt::CompileFunc(), and StdHexAdapt::CompileFunc().

Here is the caller graph for this function:

◆ Separator()

virtual bool StdCompiler::Separator ( Sep  eSep = SEP_SEP)
inlinevirtual

Reimplemented in StdCompilerINIRead, and StdCompilerINIWrite.

Definition at line 119 of file StdCompiler.h.

119 { return true; }

Referenced by C4ValueArray::CompileFunc(), C4Set< T >::CompileFunc(), StdBuf::CompileFunc(), C4ValueNumbers::CompileFunc(), C4ControlPlayerControl::ControlItem::CompileFunc(), C4PlayerControl::CSync::ControlDownState::CompileFunc(), C4DrawTransform::CompileFunc(), C4KeyEventData::CompileFunc(), C4MessageBoardQuery::CompileFunc(), C4SVal::CompileFunc(), C4Rect::CompileFunc(), C4TargetRect::CompileFunc(), C4Network2Address::CompileFunc(), C4DefGraphicsAdapt::CompileFunc(), C4GraphicsOverlay::CompileFunc(), C4GraphicsOverlayListAdapt::CompileFunc(), StdArrayAdapt< T, M >::CompileFunc(), StdArrayDefaultAdapt< T, D, M >::CompileFunc(), StdArrayDefaultArrayAdapt< T, D, M >::CompileFunc(), StdSTLContainerAdapt< C >::CompileFunc(), StdBitfieldAdapt< T >::CompileFunc(), C4Network2ResChunkData::CompileFunc(), C4ValueProviderLinear::CompileFunc(), C4ValueProviderX::CompileFunc(), C4ValueProviderY::CompileFunc(), C4ValueProviderR::CompileFunc(), C4ValueProviderAbsX::CompileFunc(), C4ValueProviderAbsY::CompileFunc(), C4ValueProviderDist::CompileFunc(), C4ValueProviderXDir::CompileFunc(), C4ValueProviderYDir::CompileFunc(), C4ValueProviderRDir::CompileFunc(), C4ValueProviderAbsRDir::CompileFunc(), C4ValueProviderCosR::CompileFunc(), C4ValueProviderSinR::CompileFunc(), C4ValueProviderCosV::CompileFunc(), C4ValueProviderSinV::CompileFunc(), C4ValueProviderAction::CompileFunc(), C4GameVersion::CompileFunc(), C4NameList::CompileFunc(), C4Effect::CompileFunc(), C4Command::CompileFunc(), C4Property::CompileFunc(), C4PropList::CompileFunc(), C4Value::CompileFunc(), C4ValueMapData::CompileFunc(), C4PropListNumbered::CompileFunc(), C4KeyCodeEx::CompileFunc(), C4ValueNumbers::CompileValue(), and C4PropListStatic::RefCompileFunc().

Here is the caller graph for this function:

◆ SeparatorToChar()

char StdCompiler::SeparatorToChar ( Sep  eSep)
staticprotected

Definition at line 32 of file StdCompiler.cpp.

33 {
34  switch (eSep)
35  {
36  case SEP_SEP: return ',';
37  case SEP_SEP2: return ';';
38  case SEP_SET: return '=';
39  case SEP_PART: return '.';
40  case SEP_PART2: return ':';
41  case SEP_PLUS: return '+';
42  case SEP_START: return '(';
43  case SEP_END: return ')';
44  case SEP_START2: return '[';
45  case SEP_END2: return ']';
46  case SEP_VLINE: return '|';
47  case SEP_DOLLAR: return '$';
48  default: assert(!"Unhandled Separator value");
49  }
50  return ' ';
51 }

References SEP_DOLLAR, SEP_END, SEP_END2, SEP_PART, SEP_PART2, SEP_PLUS, SEP_SEP, SEP_SEP2, SEP_SET, SEP_START, SEP_START2, and SEP_VLINE.

Referenced by StdCompilerINIWrite::Separator(), and StdCompilerINIRead::Separator().

Here is the caller graph for this function:

◆ setRuntimeWritesAllowed()

virtual void StdCompiler::setRuntimeWritesAllowed ( int32_t  iChange)
inlinevirtual

Definition at line 68 of file StdCompiler.h.

68 { }

Referenced by StdRuntimeValueAdapt< T >::CompileFunc().

Here is the caller graph for this function:

◆ setWarnCallback()

void StdCompiler::setWarnCallback ( WarnCBT  pnWarnCB,
void *  pData 
)
inline

Definition at line 282 of file StdCompiler.h.

282 { pWarnCB = pnWarnCB; pWarnData = pData; }

◆ String() [1/3]

virtual void StdCompiler::String ( char **  pszString,
RawCompileType  eType = RCT_Escaped 
)
pure virtual

◆ String() [2/3]

virtual void StdCompiler::String ( char *  szString,
size_t  iMaxLength,
RawCompileType  eType = RCT_Escaped 
)
pure virtual

◆ String() [3/3]

virtual void StdCompiler::String ( std::string &  str,
RawCompileType  type = RCT_Escaped 
)
pure virtual

◆ Value() [1/9]

void StdCompiler::Value ( bool &  rBool)
inline

Definition at line 170 of file StdCompiler.h.

170 { Boolean(rBool); }
virtual void Boolean(bool &rBool)=0

References Boolean().

Here is the call graph for this function:

◆ Value() [2/9]

template<class T >
void StdCompiler::Value ( const T &  rStruct)
inline

Definition at line 161 of file StdCompiler.h.

161 { rStruct.CompileFunc(this); }

Referenced by C4MusicSystem::CompileFunc(), C4ValueArray::CompileFunc(), C4Set< T >::CompileFunc(), StdBuf::CompileFunc(), C4ValueNumbers::CompileFunc(), EditorWindowState::CompileFunc(), C4NetIO::EndpointAddress::CompileFunc(), C4ConfigGeneral::CompileFunc(), C4ConfigDeveloper::CompileFunc(), C4ConfigGraphics::CompileFunc(), C4ConfigSound::CompileFunc(), C4ConfigNetwork::CompileFunc(), C4ConfigStartup::CompileFunc(), C4ConfigLobby::CompileFunc(), C4ConfigIRC::CompileFunc(), C4ConfigControls::CompileFunc(), C4ConfigSecurity::CompileFunc(), C4Config::CompileFunc(), C4ParticleDefCore::CompileFunc(), C4ConfigGamepad::CompileFunc(), C4Game::CompileFunc(), C4UpdatePackageCore::CompileFunc(), C4ControlPlayerControl::ControlItem::CompileFunc(), C4GameRes::CompileFunc(), C4GameResList::CompileFunc(), C4PlayerControlDef::CompileFunc(), C4PlayerControlDefs::CompileFunc(), C4PlayerControlAssignment::CompileFunc(), C4PlayerControlAssignmentSet::CompileFunc(), C4PlayerControlAssignmentSets::CompileFunc(), C4PlayerControlFile::CompileFunc(), C4PlayerControl::CSync::ControlDownState::CompileFunc(), C4PlayerControl::CSync::CompileFunc(), C4PlayerControl::CompileFunc(), C4PlayerInfo::CompileFunc(), C4ClientPlayerInfos::CompileFunc(), C4PlayerInfoList::CompileFunc(), C4RecordChunk::CompileFunc(), C4RoundResultsPlayer::CompileFunc(), C4RoundResultsPlayers::CompileFunc(), C4RoundResults::CompileFunc(), C4Team::CompileFunc(), C4TeamList::CompileFunc(), C4DrawTransform::CompileFunc(), C4FolderHead::CompileFunc(), C4Folder::CompileFunc(), C4KeyEventData::CompileFunc(), C4CustomKey::CompileFunc(), C4KeyboardInput::CompileFunc(), C4MessageBoardQuery::CompileFunc(), C4Scoreboard::CompileFunc(), C4MapFolderData::CompileFunc(), C4Landscape::CompileFunc(), C4MaterialReaction::CompileFunc(), C4MaterialCore::CompileFunc(), C4SVal::CompileFunc(), C4SDefinitions::CompileFunc(), C4SPlrStart::CompileFunc(), C4SLandscape::CompileFunc(), C4SWeather::CompileFunc(), C4SAnimals::CompileFunc(), C4SEnvironment::CompileFunc(), C4Sky::CompileFunc(), C4Weather::CompileFunc(), C4FoWBeam::CompileFunc(), C4FoWLightSection::CompileFunc(), C4StrValAdapt< T >::CompileFunc(), C4Rect::CompileFunc(), C4TargetRect::CompileFunc(), StdSubMeshInstance::CompileFunc(), StdMeshInstance::SerializableValueProvider::CompileFunc(), C4NetpuncherID::CompileFunc(), C4Client::CompileFunc(), C4ClientList::CompileFunc(), DisconnectData::CompileFunc(), C4LeagueRequestHead::CompileFunc(), C4LeagueReportDisconnectHead::CompileFunc(), C4LeagueRequestHeadEnd::CompileFunc(), C4LeagueResponseHead::CompileFunc(), C4LeagueResponseHeadStart::CompileFunc(), C4LeagueResponseHeadUpdate::CompileFunc(), C4LeagueResponseHeadAuthCheck::CompileFunc(), C4Network2Address::CompileFunc(), C4Network2Reference::CompileFunc(), C4Def::CompileFunc(), C4DefGraphicsAdapt::CompileFunc(), C4GraphicsOverlay::CompileFunc(), C4GraphicsOverlayListAdapt::CompileFunc(), C4ObjectInfoCore::CompileFunc(), C4RoundResult::CompileFunc(), C4PlayerInfoCore::CompileFunc(), C4Action::CompileFunc(), C4ObjectListDumpHelper::CompileFunc(), C4ObjectPtr::CompileFunc(), C4ScenarioParameterDef::Option::CompileFunc(), C4ScenarioParameterDef::CompileFunc(), C4ScenarioParameterDefs::CompileFunc(), C4ScenarioParameters::CompileFunc(), StdDefaultAdapt< T, D >::CompileFunc(), StdNamingAdapt< T >::CompileFunc(), StdNamingDefaultAdapt< T, D >::CompileFunc(), StdDecompileAdapt< T >::CompileFunc(), StdRuntimeValueAdapt< T >::CompileFunc(), StdIntAdapt< T, int_t >::CompileFunc(), StdCastAdapt< T, to_t >::CompileFunc(), StdArrayAdapt< T, M >::CompileFunc(), StdArrayDefaultAdapt< T, D, M >::CompileFunc(), StdArrayDefaultArrayAdapt< T, D, M >::CompileFunc(), StdInsertAdapt< T, I >::CompileFunc(), StdSTLContainerAdapt< C >::CompileFunc(), StdIntPackAdapt< T >::CompileFunc(), StdEnumAdapt< T, int_t >::CompileFunc(), StdBitfieldAdapt< T >::CompileFunc(), StdNamingCountAdapt< int_t >::CompileFunc(), C4NetFilenameAdapt::CompileFunc(), C4ControlPacket::CompileFunc(), C4Control::CompileFunc(), C4PacketPlayerInfoUpdRequest::CompileFunc(), C4PacketPlayerInfo::CompileFunc(), C4PktDebugRec::CompileFunc(), C4PacketLeagueRoundResults::CompileFunc(), C4GameLobby::C4PacketCountdown::CompileFunc(), C4GameLobby::C4PacketSetScenarioParameter::CompileFunc(), C4ClientCore::CompileFunc(), C4GameControlPacket::CompileFunc(), C4PacketControlReq::CompileFunc(), C4PacketControlPkt::CompileFunc(), C4PacketExecSyncCtrl::CompileFunc(), C4PacketJoinData::CompileFunc(), C4PacketActivateReq::CompileFunc(), C4PacketAddr::CompileFunc(), C4PacketTCPSimOpen::CompileFunc(), C4PacketPing::CompileFunc(), C4PacketConn::CompileFunc(), C4PacketConnRe::CompileFunc(), C4PacketFwd::CompileFunc(), C4PacketPostMortem::CompileFunc(), C4Network2ResCore::CompileFunc(), C4Network2ResChunkData::CompileFunc(), C4Network2ResChunk::CompileFunc(), C4PacketResStatus::CompileFunc(), C4PacketResDiscover::CompileFunc(), C4PacketResRequest::CompileFunc(), C4PktBuf::CompileFunc(), C4IDPacket::CompileFunc(), C4PacketList::CompileFunc(), C4ValueProviderLinear::CompileFunc(), C4ValueProviderX::CompileFunc(), C4ValueProviderY::CompileFunc(), C4ValueProviderR::CompileFunc(), C4ValueProviderAbsX::CompileFunc(), C4ValueProviderAbsY::CompileFunc(), C4ValueProviderDist::CompileFunc(), C4ValueProviderXDir::CompileFunc(), C4ValueProviderYDir::CompileFunc(), C4ValueProviderRDir::CompileFunc(), C4ValueProviderAbsRDir::CompileFunc(), C4ValueProviderCosR::CompileFunc(), C4ValueProviderSinR::CompileFunc(), C4ValueProviderCosV::CompileFunc(), C4ValueProviderSinV::CompileFunc(), C4ValueProviderAction::CompileFunc(), StdMeshInstance::CompileFunc(), C4GameVersion::CompileFunc(), C4Network2Status::CompileFunc(), C4AulScriptEngine::CompileFunc(), C4SHead::CompileFunc(), C4SGame::CompileFunc(), C4Scenario::CompileFunc(), C4NameList::CompileFunc(), C4ObjectList::CompileFunc(), C4Effect::CompileFunc(), C4GameParameters::CompileFunc(), C4Command::CompileFunc(), C4Object::CompileFunc(), C4Player::CompileFunc(), C4Property::CompileFunc(), C4PropList::CompileFunc(), C4Value::CompileFunc(), C4ValueMapData::CompileFunc(), C4LSector::CompileFunc(), C4PropListNumbered::CompileFunc(), C4Shape::CompileFunc(), StdMeshInstanceAnimationNode::CompileFunc(), StdMeshInstance::AttachedMesh::CompileFunc(), ValidatedStdCopyStrBufBase::CompileFunc(), C4MeshDenumerator::CompileFunc(), C4KeyCodeEx::CompileFunc(), CompileNewFunc(), CompileNewFuncCtx(), C4ValueNumbers::CompileValue(), DoCompilation(), C4Network2RefClient::GetReferences(), C4Playback::ReadBinary(), C4PropListStatic::RefCompileFunc(), StdPtrAdaptCompileFunc(), StdPtrAdaptDecompileNewFunc(), and unpack_class< T >::unpack().

◆ Value() [3/9]

void StdCompiler::Value ( int16_t &  rInt)
inline

Definition at line 166 of file StdCompiler.h.

166 { Word(rInt); }
virtual void Word(int16_t &rShort)=0

References Word().

Here is the call graph for this function:

◆ Value() [4/9]

void StdCompiler::Value ( int32_t &  rInt)
inline

Definition at line 164 of file StdCompiler.h.

164 { DWord(rInt); }
virtual void DWord(int32_t &rInt)=0

References DWord().

Here is the call graph for this function:

◆ Value() [5/9]

void StdCompiler::Value ( int8_t &  rInt)
inline

Definition at line 168 of file StdCompiler.h.

168 { Byte(rInt); }
virtual void Byte(int8_t &rByte)=0

References Byte().

Here is the call graph for this function:

◆ Value() [6/9]

template<class T >
void StdCompiler::Value ( T &  rStruct)
inline

Definition at line 162 of file StdCompiler.h.

162 { CompileFunc(rStruct, this); }
void CompileFunc(T &rStruct, StdCompiler *pComp)
Definition: StdCompiler.h:301

References CompileFunc().

Here is the call graph for this function:

◆ Value() [7/9]

void StdCompiler::Value ( uint16_t &  rInt)
inline

Definition at line 167 of file StdCompiler.h.

167 { Word(rInt); }

References Word().

Here is the call graph for this function:

◆ Value() [8/9]

void StdCompiler::Value ( uint32_t &  rInt)
inline

Definition at line 165 of file StdCompiler.h.

165 { DWord(rInt); }

References DWord().

Here is the call graph for this function:

◆ Value() [9/9]

void StdCompiler::Value ( uint8_t &  rInt)
inline

Definition at line 169 of file StdCompiler.h.

169 { Byte(rInt); }

References Byte().

Here is the call graph for this function:

◆ Warn()

void StdCompiler::Warn ( const char *  szWarning,
  ... 
)

Definition at line 21 of file StdCompiler.cpp.

22 {
23  // Got warning callback?
24  if (!pWarnCB) return;
25  // Format message
26  va_list args; va_start(args, szWarning);
27  StdStrBuf Msg; Msg.FormatV(szWarning, args);
28  // do callback
29  (*pWarnCB)(pWarnData, getPosition().getData(), Msg.getData());
30 }
void FormatV(const char *szFmt, va_list args)
Definition: StdBuf.cpp:182
const char * getData() const
Definition: StdBuf.h:442

References StdStrBuf::FormatV(), StdStrBuf::getData(), and getPosition().

Referenced by StdCompilerINIRead::Byte(), StdEnumAdapt< T, int_t >::CompileFunc(), StdBitfieldAdapt< T >::CompileFunc(), StdCompilerINIRead::CreateNameTree(), StdCompilerINIRead::NameEnd(), StdCompilerINIRead::Raw(), StdCompilerINIRead::ReadEscapedChar(), StdCompilerINIRead::ReadString(), and StdCompilerINIRead::Word().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Word() [1/2]

virtual void StdCompiler::Word ( int16_t &  rShort)
pure virtual

Implemented in StdCompilerINIRead, StdCompilerINIWrite, StdCompilerBinRead, StdCompilerBinWrite, StdCompilerNull, and C4ValueCompiler.

Referenced by Value().

Here is the caller graph for this function:

◆ Word() [2/2]

virtual void StdCompiler::Word ( uint16_t &  rShort)
pure virtual

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