28#include "../base/Variant.h"
29#include "../base/PComplexData.h"
30#include "../base/PList.h"
32#include "../utility/PEBLUtility.h"
33#include "../utility/PError.h"
36#include "../utility/re.h"
52#include "../platforms/sdl/PlatformEnvironment.h"
54#elif defined(PEBL_VALIDATOR)
55#include "../platforms/validator/PlatformEnvironment.h"
58#include "../platforms/sdl/PlatformEnvironment.h"
73 std::string s=plist->
First();
74 transform(s.begin(), s.end(), s.begin(), toupper);
88 std::string s=plist->
First();
89 transform(s.begin(), s.end(), s.begin(), tolower);
102 s[0] = (plist->
First()).GetInteger();
104 return Variant((std::string(s)));
115 std::string s=plist->
First();
117 return Variant((
int)(s.length()));
129 std::string s=plist->
First();
131 return Variant((
int)(s.length()));
142 std::string string1 = plist->
First();
145 int position = plist->
Nth(2);
148 int length = plist->
Nth(3);
154 if(string1.length()<position)
159 if(string1.length() < position-1+length)
164 return Variant(string1.substr(position-1,length));
177 std::string str1 = plist->
First();
181 std::string str2 = plist->
Nth(2);
184 int pos = plist->
Nth(3);
187 string::size_type newpos = str1.find(str2,pos-1);
188 if (newpos == string::npos)
204 std::string str1 = plist->
First();
208 std::string str2 = plist->
Nth(2);
211 std::string tmpstring = str1;
212 std::string sep = str2;
229 std::string str1 = plist->
First();
245 std::string text = plist->
First();
259 std::string input = plist->
First();
264 if (input.length() == 4 && std::isupper(input[0])) {
284 std::string text = plist->
First();
288 if (plist->
Length() >= 2) {
290 fontType = plist->
Nth(2);
291 if (fontType < 0 || fontType > 2) {
301 std::string code = (script.empty()) ?
"" : script;
340 "Argument error in first parameter of function RegexMatch(<string>, <pattern>)]: ");
341 std::string text = plist->
First();
344 "Argument error in second parameter of function RegexMatch(<string>, <pattern>)]: ");
345 std::string pattern = plist->
Nth(2);
348 int idx =
re_match(pattern.c_str(), text.c_str(), &matchlen);
PlatformEnvironment * myEnv
Variant Nth(unsigned int n)
unsigned long Length() const
PComplexData * GetComplexData() const
Variant ToASCII(Variant v)
Variant SplitString(Variant v)
Variant Uppercase(Variant v)
Variant StringLength(Variant v)
Variant GetSystemLocale(Variant v)
Variant DetectTextScript(Variant v)
Variant Lowercase(Variant v)
Variant IsSystemLocaleRTL(Variant v)
Variant GetFontForText(Variant v)
Variant FindInString(Variant v)
Variant CopyToClipboard(Variant v)
Variant RegexMatch(Variant v)
Variant SubString(Variant v)
std::string DetectScript(const std::string &text)
bool IsRTLScript(const std::string &script)
void CopyToClipboard(const std::string &text)
Variant Tokenize(const char *line, char separator)
std::string GetFontForLanguageOrScript(const std::string &code, int fontType)
void SignalWarning(const std::string &message)
void AssertType(Variant v, int type, const std::string &outsidemessage)
void SignalFatalError(const std::string &message)
int re_match(const char *pattern, const char *text, int *matchlength)