#include <C4ScriptHost.h>
Public Member Functions | |
~C4ScriptHost () override | |
virtual bool | Delete () |
void | Clear () |
virtual bool | Load (C4Group &hGroup, const char *szFilename, const char *szLanguage, C4LangStringTable *pLocalTable) |
virtual bool | LoadData (const char *szFilename, const char *szData, class C4LangStringTable *pLocalTable) |
void | Reg2List (C4AulScriptEngine *pEngine) |
virtual C4PropListStatic * | GetPropList () |
const C4PropListStatic * | GetPropList () const |
const char * | GetScript () const |
bool | IsReady () |
std::string | Translate (const std::string &text) const |
bool | IsWarningEnabled (const char *pos, C4AulWarningId warning) const |
const char * | GetFilePath () const |
const char * | GetData () const |
const StdStrBuf & | GetDataBuf () const |
size_t | GetDataSize () const |
bool | Load (C4Group &hGroup, const char *szFilename, const char *szLanguage=nullptr) |
bool | Load (C4GroupSet &hGroupSet, const char *szFilename, const char *szLanguage=nullptr) |
bool | GetLanguageString (const char *szLanguage, StdStrBuf &rTarget) |
Public Attributes | |
std::deque< C4ScriptHost * > | SourceScripts |
StdCopyStrBuf | ScriptName |
Protected Member Functions | |
C4ScriptHost () | |
void | Unreg () |
void | MakeScript () |
virtual bool | ReloadScript (const char *szPath, const char *szLanguage) |
bool | Preparse () |
virtual bool | Parse () |
virtual void | UnLink () |
void | UnlinkOwnedFunctions () |
void | DeleteOwnedPropLists () |
void | Warn (const char *pMsg,...) GNUC_FORMAT_ATTRIBUTE_O |
virtual void | AddEngineFunctions () |
void | CopyPropList (C4Set< C4Property > &from, C4PropListStatic *to) |
bool | ResolveIncludes (C4DefList *rDefs) |
bool | ResolveAppends (C4DefList *rDefs) |
void | DoAppend (C4Def *def) |
void | EnableWarning (const char *pos, C4AulWarningId warning, bool enable=true) |
virtual void | OnLoad () |
void | CopyFilePathFromGroup (const C4Group &hGroup) |
void | FinishLoad (const StdStrBuf &, C4Group &hGroup) |
Protected Attributes | |
C4AulScriptEngine * | Engine {nullptr} |
C4ScriptHost * | Prev {nullptr} |
C4ScriptHost * | Next {nullptr} |
std::list< StdCopyStrBuf > | Includes |
std::list< StdCopyStrBuf > | Appends |
bool | Resolving |
bool | IncludesResolved |
StdStrBuf | Script |
C4LangStringTable * | stringTable |
C4Set< C4Property > | LocalValues |
C4AulScriptState | State {ASS_NONE} |
std::vector< C4Value > | ownedFunctions |
std::vector< C4Value > | ownedPropLists |
StdCopyStrBuf | Data |
StdCopyStrBuf | Filename |
StdCopyStrBuf | FilePath |
Friends | |
class | C4AulParse |
class | C4AulProfiler |
class | C4AulScriptEngine |
class | C4AulDebug |
class | C4AulCompiler |
class | C4AulScriptFunc |
Definition at line 40 of file C4ScriptHost.h.
|
override |
Definition at line 43 of file C4ScriptHost.cpp.
References Clear(), and Unreg().
|
protected |
Definition at line 32 of file C4ScriptHost.cpp.
References Appends, Includes, IncludesResolved, Resolving, Script, SourceScripts, and stringTable.
|
inlineprotectedvirtual |
Reimplemented in C4MapScriptHost.
Definition at line 83 of file C4ScriptHost.h.
Referenced by Preparse().
void C4ScriptHost::Clear | ( | ) |
Definition at line 49 of file C4ScriptHost.cpp.
References Appends, ASS_NONE, C4ComponentHost::Clear(), StdStrBuf::Clear(), C4Set< T >::Clear(), DeleteOwnedPropLists(), C4LangStringTable::DelRef(), Includes, LocalValues, Script, SourceScripts, State, stringTable, and UnlinkOwnedFunctions().
Referenced by C4Def::C4Def(), C4MapScriptHost::Clear(), C4Def::Clear(), C4ExtraScriptHost::Clear(), C4GameScriptHost::Clear(), C4Def::Default(), C4Def::~C4Def(), and ~C4ScriptHost().
|
protectedinherited |
Definition at line 120 of file C4ComponentHost.cpp.
References StdStrBuf::Append(), StdStrBuf::AppendBackslash(), C4Config::AtRelativePath(), Config, StdStrBuf::Copy(), C4ComponentHost::Filename, C4ComponentHost::FilePath, StdStrBuf::getData(), and C4Group::GetFullName().
Referenced by C4ComponentHost::FinishLoad(), and C4ComponentHost::Load().
|
protected |
Definition at line 1690 of file C4AulParse.cpp.
References C4Value::_getPropList(), C4AulScriptFunc, C4V_Array, C4V_Function, C4V_PropList, C4VFunction(), C4VPropList(), C4Set< T >::First(), C4PropList::GetFunc(), C4Value::getFunction(), C4PropListStatic::GetParent(), C4Value::GetType(), C4PropList::IsStatic(), C4Property::Key, C4AulFunc::Name, C4PropList::NewStatic(), C4Set< T >::Next(), C4StringTable::P, P_Prototype, C4AulScriptFunc::pOrgScript, C4AulScriptFunc::SetOverloaded(), C4PropList::SetPropertyByS(), C4AulFunc::SFunc(), Strings, and C4Property::Value.
Referenced by Parse().
|
inlinevirtual |
Reimplemented in C4ExtraScriptHost.
Definition at line 44 of file C4ScriptHost.h.
Referenced by C4AulScriptEngine::Clear().
|
protected |
Definition at line 120 of file C4ScriptHost.cpp.
References C4PropList::Clear(), C4PropList::Delete(), and ownedPropLists.
Referenced by Clear(), and UnLink().
|
protected |
Definition at line 28 of file C4AulLink.cpp.
References Includes, C4Def::Script, SourceScripts, and Warn().
Referenced by ResolveAppends().
|
protected |
Definition at line 1776 of file C4AulParse.cpp.
Definition at line 99 of file C4ComponentHost.cpp.
References C4ComponentHost::CopyFilePathFromGroup(), C4ComponentHost::Data, StdStrBuf::EnsureUnicode(), C4ComponentHost::Filename, C4ComponentHost::FilePath, C4Group::FindEntry(), StdStrBuf::getData(), StdStrBuf::getSize(), LogF(), StdStrBuf::Move(), C4ComponentHost::OnLoad(), and StdStrBuf::Shrink().
Referenced by C4ComponentHost::Load().
|
inlineinherited |
Definition at line 30 of file C4ComponentHost.h.
References C4ComponentHost::Data, and StdStrBuf::getData().
Referenced by C4Game::CompileRuntimeData(), C4RankSystem::Load(), C4ScenarioListLoader::Entry::Load(), C4Player::LoadRuntimeData(), C4ObjectInfoList::New(), and C4Game::OpenScenario().
|
inlineinherited |
Definition at line 31 of file C4ComponentHost.h.
References C4ComponentHost::Data.
Referenced by C4Game::CompileRuntimeData(), C4Language::HasStringTable(), and MakeScript().
|
inlineinherited |
Definition at line 32 of file C4ComponentHost.h.
References C4ComponentHost::Data, and StdStrBuf::getLength().
Referenced by C4RankSystem::Load().
|
inlineinherited |
Definition at line 28 of file C4ComponentHost.h.
References C4ComponentHost::FilePath, and StdStrBuf::getData().
Referenced by Load(), C4Player::LoadRuntimeData(), ReloadScript(), and C4LangStringTable::ReplaceStrings().
|
inherited |
Definition at line 127 of file C4ComponentHost.cpp.
References StdStrBuf::Copy(), C4ComponentHost::Data, StdStrBuf::getData(), SAppend(), SCharPos(), SCopySegment(), and SSearch().
Referenced by C4DefList::Load(), C4ScenarioListLoader::Entry::Load(), and C4Game::OpenScenario().
|
inlinevirtual |
Reimplemented in C4GameScriptHost, C4DefScriptHost, C4ExtraScriptHost, and C4MapScriptHost.
Definition at line 51 of file C4ScriptHost.h.
Referenced by Parse(), C4AulParse::Parse_Script(), Preparse(), ResolveAppends(), C4AulProfiler::StartProfiling(), C4AulProfiler::StopProfiling(), UnLink(), UnlinkOwnedFunctions(), C4AulCompiler::PreparseAstVisitor::visit(), C4AulCompiler::ConstantResolver::visit(), and C4AulCompiler::ConstexprEvaluator::visit().
|
inline |
Definition at line 52 of file C4ScriptHost.h.
References GetPropList().
Referenced by GetPropList().
|
inline |
Definition at line 53 of file C4ScriptHost.h.
References StdStrBuf::getData(), and Script.
Referenced by C4AulParseError::C4AulParseError(), C4AulScriptFunc::GetLineOfCode(), and C4AulScriptContext::ReturnDump().
|
inline |
Definition at line 54 of file C4ScriptHost.h.
References ASS_PARSED, and State.
Referenced by C4GUI::FrameDecoration::SetByDef().
bool C4ScriptHost::IsWarningEnabled | ( | const char * | pos, |
C4AulWarningId | warning | ||
) | const |
Definition at line 1791 of file C4AulParse.cpp.
|
virtual |
Reimplemented in C4GameScriptHost, and C4MapScriptHost.
Definition at line 164 of file C4ScriptHost.cpp.
References C4LangStringTable::AddRef(), C4LangStringTable::DelRef(), C4ComponentHost::GetFilePath(), C4ComponentHost::Load(), MakeScript(), StdStrBuf::Ref(), ScriptName, and stringTable.
Referenced by C4Game::InitScriptEngine(), C4MapScriptHost::Load(), C4GameScriptHost::Load(), C4Def::Load(), C4Game::LoadAdditionalSystemGroup(), ReloadScript(), and C4ScenarioSection::ScenarioLoad().
|
inherited |
Definition at line 23 of file C4ComponentHost.cpp.
References _MAX_FNAME_LEN, C4ComponentHost::Clear(), StdStrBuf::Copy(), C4ComponentHost::CopyFilePathFromGroup(), C4ComponentHost::Data, C4ComponentHost::Filename, C4ComponentHost::FinishLoad(), StdStrBuf::Format(), StdStrBuf::getData(), StdStrBuf::getMData(), C4Group::LoadEntryString(), SCopySegment(), SReplaceChar(), and SSearch().
Referenced by C4Game::CompileRuntimeData(), C4Game::InitScriptEngine(), Load(), C4ScenarioListLoader::Entry::Load(), C4Language::LoadComponentHost(), and C4Game::LoadScenarioComponents().
|
inherited |
Definition at line 60 of file C4ComponentHost.cpp.
References _MAX_FNAME_LEN, C4ComponentHost::Clear(), StdStrBuf::Copy(), C4ComponentHost::CopyFilePathFromGroup(), C4ComponentHost::Data, C4ComponentHost::Filename, C4GroupSet::FindEntry(), C4ComponentHost::FinishLoad(), StdStrBuf::Format(), StdStrBuf::getData(), C4GroupSet::GetGroup(), StdStrBuf::getMData(), C4GroupSet::LoadEntryString(), SCopySegment(), SReplaceChar(), and SSearch().
|
virtual |
Reimplemented in C4GameScriptHost, and C4MapScriptHost.
Definition at line 184 of file C4ScriptHost.cpp.
References C4LangStringTable::AddRef(), StdStrBuf::Clear(), StdStrBuf::Copy(), C4LangStringTable::DelRef(), Preparse(), C4LangStringTable::ReplaceStrings(), Script, ScriptName, stringTable, and StdStrBuf::Take().
Referenced by C4MapScriptHost::LoadData(), and C4GameScriptHost::LoadData().
|
protected |
Definition at line 208 of file C4ScriptHost.cpp.
References StdStrBuf::Clear(), C4ComponentHost::GetDataBuf(), Preparse(), StdStrBuf::Ref(), C4LangStringTable::ReplaceStrings(), Script, and stringTable.
Referenced by Load().
|
inlineprotectedvirtualinherited |
Reimplemented in C4LangStringTable.
Definition at line 39 of file C4ComponentHost.h.
Referenced by C4ComponentHost::Clear(), and C4ComponentHost::FinishLoad().
|
protectedvirtual |
Reimplemented in C4DefScriptHost.
Definition at line 1739 of file C4AulParse.cpp.
References Appends, ASS_LINKED, ASS_PARSED, C4AulCompiler::Compile(), CopyPropList(), Engine, StdStrBuf::getData(), C4PropList::GetDef(), StdStrBuf::getLength(), GetPropList(), StdStrBuf::getPtr(), C4Def::IncludeDefinition(), C4AulScriptEngine::lineCnt, s, Script, SGetLine(), SourceScripts, and State.
Referenced by C4DefScriptHost::Parse().
|
protected |
Definition at line 693 of file C4AulParse.cpp.
References AddEngineFunctions(), Appends, ASS_NONE, ASS_PREPARSED, C4VPropList(), C4Set< T >::Clear(), Engine, StdStrBuf::getData(), C4AulScriptEngine::GetPropList(), GetPropList(), Includes, IncludesResolved, LocalValues, P_Prototype, C4AulParse::Parse_Script(), C4AulCompiler::Preparse(), Script, C4PropList::SetProperty(), and State.
Referenced by LoadData(), and MakeScript().
void C4ScriptHost::Reg2List | ( | C4AulScriptEngine * | pEngine | ) |
Definition at line 146 of file C4ScriptHost.cpp.
References C4AulScriptEngine::Child0, C4AulScriptEngine::ChildL, Engine, Next, and Prev.
Referenced by C4MapScriptHost::InitFunctionMap(), C4Game::InitScriptEngine(), C4GameScriptHost::Load(), C4Def::Load(), C4Game::LoadAdditionalSystemGroup(), C4GameScriptHost::LoadData(), and C4ScenarioSection::ScenarioLoad().
|
protectedvirtual |
Definition at line 227 of file C4ScriptHost.cpp.
References _MAX_PATH_LEN, C4ComponentHost::GetFilePath(), GetParentPath(), Load(), C4Group::Open(), SEqualNoCase(), and stringTable.
|
protected |
Definition at line 46 of file C4AulLink.cpp.
References Appends, ASS_PREPARSED, DoAppend(), C4DefList::GetByName(), C4DefList::GetDef(), C4DefList::GetDefCount(), GetPropList(), State, and Warn().
|
protected |
Definition at line 83 of file C4AulLink.cpp.
References ASS_LINKED, ASS_PREPARSED, Engine, C4DefList::GetByName(), C4AulScriptEngine::GetErrorHandler(), Includes, IncludesResolved, C4AulErrorHandler::OnError(), ResolveIncludes(), Resolving, s, C4Def::Script, SourceScripts, State, and Warn().
Referenced by ResolveIncludes().
std::string C4ScriptHost::Translate | ( | const std::string & | text | ) | const |
Definition at line 242 of file C4ScriptHost.cpp.
References stringTable, C4ScriptGuiWindowPropertyName::text, and C4LangStringTable::Translate().
|
protectedvirtual |
Definition at line 130 of file C4AulLink.cpp.
References ASS_PREPARSED, C4VPropList(), DeleteOwnedPropLists(), Engine, C4AulScriptEngine::GetPropList(), GetPropList(), IncludesResolved, P_Prototype, C4PropList::SetProperty(), and State.
|
protected |
Definition at line 72 of file C4ScriptHost.cpp.
References C4V_Function, C4VFunction(), C4RefCnt::DecRef(), C4Value::getFunction(), C4PropList::GetPropertyByS(), GetPropList(), C4AulFunc::Name, ownedFunctions, C4AulScriptFunc::OwnerOverloaded, C4AulFunc::Parent, C4PropList::ResetProperty(), ScriptEngine, C4PropList::SetPropertyByS(), C4AulFunc::SFunc(), C4AulScriptFunc::SFunc(), and C4PropList::Thaw().
Referenced by Clear().
|
protected |
Definition at line 137 of file C4ScriptHost.cpp.
References C4AulScriptEngine::Child0, C4AulScriptEngine::ChildL, Engine, Next, and Prev.
Referenced by C4AulScriptEngine::Clear(), and ~C4ScriptHost().
|
protected |
Definition at line 124 of file C4AulParse.cpp.
References StdStrBuf::AppendFormat(), Engine, FormatStringV(), StdStrBuf::getData(), C4AulScriptEngine::GetErrorHandler(), C4AulErrorHandler::OnWarning(), and ScriptName.
Referenced by DoAppend(), C4DefScriptHost::Parse(), ResolveAppends(), and ResolveIncludes().
|
friend |
Definition at line 110 of file C4ScriptHost.h.
|
friend |
Definition at line 109 of file C4ScriptHost.h.
|
friend |
Definition at line 106 of file C4ScriptHost.h.
|
friend |
Definition at line 107 of file C4ScriptHost.h.
|
friend |
Definition at line 108 of file C4ScriptHost.h.
|
friend |
Definition at line 111 of file C4ScriptHost.h.
Referenced by CopyPropList().
|
protected |
Definition at line 81 of file C4ScriptHost.h.
Referenced by C4ScriptHost(), Clear(), Parse(), Preparse(), ResolveAppends(), and C4AulCompiler::PreparseAstVisitor::visit().
|
protectedinherited |
Definition at line 41 of file C4ComponentHost.h.
Referenced by C4ComponentHost::Clear(), C4ComponentHost::FinishLoad(), C4ComponentHost::GetData(), C4ComponentHost::GetDataBuf(), C4ComponentHost::GetDataSize(), C4ComponentHost::GetLanguageString(), C4ComponentHost::Load(), and C4LangStringTable::ReplaceStrings().
|
protected |
Definition at line 77 of file C4ScriptHost.h.
Referenced by C4AulCompiler::ConstexprEvaluator::eval(), C4AulCompiler::ConstexprEvaluator::eval_static(), Parse(), Preparse(), Reg2List(), ResolveIncludes(), UnLink(), Unreg(), C4AulCompiler::PreparseAstVisitor::visit(), C4AulCompiler::ConstexprEvaluator::visit(), C4AulCompiler::ConstantResolver::visit(), and Warn().
|
protectedinherited |
Definition at line 42 of file C4ComponentHost.h.
Referenced by C4ComponentHost::CopyFilePathFromGroup(), C4ComponentHost::FinishLoad(), and C4ComponentHost::Load().
|
protectedinherited |
Definition at line 43 of file C4ComponentHost.h.
Referenced by C4ComponentHost::CopyFilePathFromGroup(), C4ComponentHost::FinishLoad(), and C4ComponentHost::GetFilePath().
|
protected |
Definition at line 80 of file C4ScriptHost.h.
Referenced by C4ScriptHost(), Clear(), DoAppend(), Preparse(), ResolveIncludes(), and C4AulCompiler::PreparseAstVisitor::visit().
|
protected |
Definition at line 89 of file C4ScriptHost.h.
Referenced by C4ScriptHost(), Preparse(), ResolveIncludes(), and UnLink().
|
protected |
Definition at line 93 of file C4ScriptHost.h.
Referenced by Clear(), and Preparse().
|
protected |
Definition at line 78 of file C4ScriptHost.h.
Referenced by Reg2List(), and Unreg().
|
protected |
Definition at line 97 of file C4ScriptHost.h.
Referenced by UnlinkOwnedFunctions(), and C4AulCompiler::PreparseAstVisitor::visit().
|
protected |
Definition at line 102 of file C4ScriptHost.h.
Referenced by DeleteOwnedPropLists().
|
protected |
Definition at line 78 of file C4ScriptHost.h.
Referenced by Reg2List(), and Unreg().
|
protected |
Definition at line 88 of file C4ScriptHost.h.
Referenced by C4ScriptHost(), and ResolveIncludes().
|
protected |
Definition at line 91 of file C4ScriptHost.h.
Referenced by C4ScriptHost(), Clear(), GetScript(), LoadData(), MakeScript(), Parse(), C4AulParse::Parse_Script(), and Preparse().
StdCopyStrBuf C4ScriptHost::ScriptName |
Definition at line 58 of file C4ScriptHost.h.
Referenced by C4AulParseError::C4AulParseError(), Load(), LoadData(), C4AulScriptContext::ReturnDump(), and Warn().
std::deque<C4ScriptHost *> C4ScriptHost::SourceScripts |
Definition at line 57 of file C4ScriptHost.h.
Referenced by C4ScriptHost(), Clear(), DoAppend(), Parse(), and ResolveIncludes().
|
protected |
Definition at line 94 of file C4ScriptHost.h.
Referenced by Clear(), IsReady(), Parse(), Preparse(), ResolveAppends(), ResolveIncludes(), and UnLink().
|
protected |
Definition at line 92 of file C4ScriptHost.h.
Referenced by C4ScriptHost(), Clear(), Load(), LoadData(), MakeScript(), ReloadScript(), and Translate().