1.2.7 Expressions

An expression consists of constants, variables, and function calls that are combined with operators.
Parentheses can be used to group expressions to alter the evaluation sequence from that defined by the precedence:
3 * (4 + 7)
Unlike in C, there is no automatic type casting in MxScript. The expression (3.14 * 2) causes an error because double and int types are mixed. Both C and C++ forms of casts are permitted.
A string can be multiplied by an integer to create a concatenated string:
  • “hello” * 2 is equivalent to “hellohello”.
  • 4 * “#” is equivalent to “####”.
String/integer casts are permitted:
  • (string)5 is equivalent to "5".
  • string(5 + 77) is equivalent to "82".
  • int("555") is equivalent to 555.
  • (int)("0b" + "111") is equivalent to 7.
  • int("xfff") is equivalent to 0 because the string does not start with 0.
  • int("255xfff") is equivalent to 255 because the non-numbers are ignored.

Table 1-4 Results of cast operations

Original type Casting to int Casting to string Casting to bool Casting to double
int Error. Convert to string containing decimal integer format. false if integer is 0, otherwise true. Convert to double with same value.
string Interpret string as integer number. Prefixes 0b (binary), 0x (hexadecimal) and 0 (octal) are recognized. Error. Error. Interpret string as a decimal floating-point number in C format.
bool 1 if true, 0 if false. “true” if true, “false” if false. Error. Error.
double Round down to a lower integer value. Same as floor() function in C. Convert to string containing decimal floating-point format. Error. Error.
Non-ConfidentialPDF file icon PDF versionARM DUI0840C
Copyright © 2014, 2015 ARM. All rights reserved.