if (StartsWith(section, "if ")) { return (ProcessTextCommand_If(section, data)) } else if (StartsWith(section, "object:")) { return (ProcessTextCommand_Object(section, data)) } else if (StartsWith(section, "command:")) { return (ProcessTextCommand_Command(Mid(section, 9), data)) } else if (StartsWith(section, "page:")) { return (ProcessTextCommand_Command(Mid(section, 6), data)) } else if (StartsWith(section, "exit:")) { return (ProcessTextCommand_Exit(section, data)) } else if (StartsWith(section, "once:")) { return (ProcessTextCommand_Once(section, data)) } else if (StartsWith(section, "random:")) { return (ProcessTextCommand_Random(section, data)) } else if (StartsWith(section, "rndalt:")) { return (ProcessTextCommand_RandomAlias(section, data)) } else if (StartsWith(section, "img:")) { return (ProcessTextCommand_Img(section, data)) } else if (StartsWith(section, "counter:")) { return (ProcessTextCommand_Counter(Mid(section, 9), data)) } else if (StartsWith(section, "select:")) { return (ProcessTextCommand_Select(section, data)) } else { dot = Instr(section, ".") if (dot = 0) { return ("{" + ProcessTextSection(section, data) + "}") } else { objectname = Left(section, dot - 1) attributename = Mid(section, dot + 1) object = GetObject(objectname) if (object = null) { return ("{" + ProcessTextSection(section, data) + "}") } else { if (HasAttribute(object, attributename)) { type = TypeOf(object, attributename) switch (type) { case ("string", "int", "double") { return (ToString(GetAttribute(object, attributename))) } case ("boolean") { result = GetAttribute(object, attributename) if (result) { return ("true") } else { return ("false") } } case ("ProcessTextFunction") { return (RunDelegateFunction(object, attributename)) } default { return ("(" + type + ")") } } } else { return ("") } } } }