StringIterLoop::StringIterLoop(const ForEachContext* context) { StringVar* srcVar = g_StringMap.Get(context->sourceID); StringVar* iterVar = g_StringMap.Get(context->iteratorID); if (srcVar && iterVar) { m_src = srcVar->String(); m_curIndex = 0; m_iterID = context->iteratorID; if (m_src.length()) iterVar->Set(m_src.substr(0, 1).c_str()); } }
bool AssignableStringVarToken::Assign(const char* str) { StringVar* strVar = g_StringMap.Get(value.arrID); if (strVar) { UInt32 len = strVar->GetLength(); if (lower <= upper && upper < len) { strVar->Erase(lower, upper-lower + 1); if (str) { strVar->Insert(str, lower); substring = strVar->String(); } return true; } } return false; }