Index: EscStdLib.cpp =================================================================== --- EscStdLib.cpp (wersja 10460) +++ EscStdLib.cpp (kopia robocza) @@ -213,7 +213,31 @@ e = cos(e[0].GetNumber()); } +void ESC_pow(EscEscape& e) +{ + e = pow(e[0].GetNumber(), e[1].GetNumber()); +} +void ESC_pow10(EscEscape& e) +{ + e = pow10(e[0].GetNumber()); +} + +void ESC_sqrt(EscEscape& e) +{ + e = sqrt(e[0].GetNumber()); +} + +void ESC_log(EscEscape& e) +{ + e = log(e[0].GetNumber()); +} + +void ESC_log10(EscEscape& e) +{ + e = log10(e[0].GetNumber()); +} + bool IsDate(const EscValue& v) { return v.HasNumberField("year") && v.HasNumberField("month") && v.HasNumberField("day"); @@ -259,6 +283,17 @@ e = ToUpper(s); } +// --------------------------- + +void ESC_replace(EscEscape& e) +{ + String str = e[0]; + str.Replace(e[1], e[2]); + e = str; +} + +// --------------------------- + void StdLib(ArrayMap& global) { Escape(global, "is_number(value)", ESC_is_number); @@ -275,10 +310,12 @@ Escape(global, "reverse(array)", ESC_reverse); Escape(global, "sort(array)", ESC_sort); Escape(global, "order(array)", ESC_order); - + + Escape(global, "replace(str, find, replace)", ESC_replace); + Escape(global, "ToUpper(value)", ESC_ToUpper); Escape(global, "ToLower(value)", ESC_ToLower); - + Escape(global, "len(x)", ESC_count); Escape(global, "mid(array, pos, count)", ESC_mid); Escape(global, "exists(map, key)", ESC_exists); @@ -293,6 +330,11 @@ Escape(global, "sin(value)", ESC_sin); Escape(global, "cos(value)", ESC_cos); + Escape(global, "pow(value, x)", ESC_pow); + Escape(global, "pow10(value)", ESC_pow10); + Escape(global, "sqrt(value)", ESC_sqrt); + Escape(global, "log(value)", ESC_log); + Escape(global, "log10(value)", ESC_log10); } }