| Purpose | The arithmetic and relational operators are used in the <expr> clause of the <eval> statement. | |
| Escape Sequences | The escape sequences used in XML and HTML for the < and > comparison operators must be used in your Superx++ program. This is because those characters are reserved in XML for use in delimiting XML elements. This means that you must use < for the < operator and > for the > operator. | |
| Arithmetic Operators | ||
| + | Addition | |
| Example #1 |
<eval> <expr>5 + 6</expr> </eval> yields 11 |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) + 5) < 5</expr> </eval> yields false |
|
| - | Subtraction | |
| Example #1 |
<eval> <expr>5 - 6</expr> </eval> yields -1 |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) - 5) < 5</expr> </eval> yields false |
|
| * | Multiplication | |
| Example #1 |
<eval> <expr>5 * 6</expr> </eval> yields 30 |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) * 5) < 5</expr> </eval> yields false |
|
| / | Division | |
| Example #1 |
<eval> <expr>30 / 6</expr> </eval> yields 5 |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) / 5) < 5</expr> </eval> yields true |
|
| % | Modulus | |
| Example #1 |
<eval> <expr>50 % 6</expr> </eval> yields 2 |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) % 5) < 5</expr> </eval> yields true |
|
| Relational Operators | ||
| < | true if left operand is less than right operand; else false | |
| Example #1 |
<eval> <expr>5 < 3</expr> </eval> yields false |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>len(a) < 5</expr> </eval> yields true |
|
| <= | true if left operand is less than or equal to right operand; else false | |
| Example #1 |
<eval> <expr>5 <= 3</expr> </eval> yields false |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>len(a) <= 5</expr> </eval> yields true |
|
| > | true if left operand is greater than right operand; else false | |
| Example #1 |
<eval> <expr>5 > 3</expr> </eval> yields true |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>len(a) > 5</expr> </eval> yields false |
|
| >= | true if left operand is greater than or equal to right operand; else false | |
| Example #1 |
<eval> <expr>5 >= 3</expr> </eval> yields true |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>len(a) >= 5</expr> </eval> yields false |
|
| = | true if left operand is equal to right operand; else false | |
| Example #1 |
<eval> <expr>5 = 3</expr> </eval> yields false |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>len(a) = 4</expr> </eval> yields true |
|
| != or <> | true if left operand is not equal to right operand; else false | |
| Example #1 |
<eval> <expr>5 != 3</expr> </eval>
<eval> yields true |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>len(a) != 4</expr> </eval>
<eval> yields false |
|
| and | true if both operands are true; else false | |
| Example #1 |
<eval> <expr>5 = 5 and 3 = 3</expr> </eval> yields true |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) + 5) > 5 and true</expr> </eval> yields true |
|
| or | true if either of the operands are true; else false | |
| Example #1 |
<eval> <expr>5 = 5 or 3 = 3</expr> </eval> yields true |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) + 5) < 5 or true</expr> </eval> yields true |
|
| xor | true if only one of the operands is true; else false | |
| Example #1 |
<eval> <expr>5 = 5 xor 3 = 3</expr> </eval> yields false |
|
| Example #2 |
<eval> <parm type="string" name="a">atom</parm> <expr>(len(a) + 5) > 5 xor false</expr> </eval> yields true |
|