Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EDT:EGL Language Operators and Expressions"
Line 32: | Line 32: | ||
| bgcolor="#cccccc" | ''{ } (set-values block)'' | | bgcolor="#cccccc" | ''{ } (set-values block)'' | ||
| <br>done | | <br>done | ||
− | | <br> | + | | 0.5d<br> |
| done<br> | | done<br> | ||
|- | |- | ||
Line 42: | Line 42: | ||
| bgcolor="#cccccc" | ''[ ] (array access)'' | | bgcolor="#cccccc" | ''[ ] (array access)'' | ||
| <br>done | | <br>done | ||
− | | <br> | + | | done<br> |
| done<br> | | done<br> | ||
|- | |- | ||
| bgcolor="#cccccc" | ''[ ] (dynamic access)'' | | bgcolor="#cccccc" | ''[ ] (dynamic access)'' | ||
| done<br> | | done<br> | ||
− | | <br> | + | | 1d<br> |
| 1d<br> | | 1d<br> | ||
|- | |- | ||
Line 57: | Line 57: | ||
| bgcolor="#cccccc" | ''isa<sup>3</sup>'' | | bgcolor="#cccccc" | ''isa<sup>3</sup>'' | ||
| <br>1d | | <br>1d | ||
− | | <br> | + | | 1d<br> |
| 1d<br> | | 1d<br> | ||
|- | |- | ||
| bgcolor="#cccccc" | ''as<sup>3</sup>'' | | bgcolor="#cccccc" | ''as<sup>3</sup>'' | ||
| <br>see isa | | <br>see isa | ||
− | | <br> | + | | done<br> |
| 1d<br> | | 1d<br> | ||
|- | |- | ||
| bgcolor="#cccccc" | ''unary (+ - ! ~)<sup>4, 5</sup>'' | | bgcolor="#cccccc" | ''unary (+ - ! ~)<sup>4, 5</sup>'' | ||
| <br>done | | <br>done | ||
− | | <br> | + | | 0.5d<br> |
| 0.5d<br> | | 0.5d<br> | ||
|- | |- | ||
| bgcolor="#cccccc" | ''math (+ - * / % **)<sup>9</sup>'' | | bgcolor="#cccccc" | ''math (+ - * / % **)<sup>9</sup>'' | ||
| <br>done | | <br>done | ||
− | | <br> | + | | 1d<br> |
| done<br> | | done<br> | ||
|- | |- | ||
Line 82: | Line 82: | ||
| bgcolor="#cccccc" | ''::'' | | bgcolor="#cccccc" | ''::'' | ||
| <br>done | | <br>done | ||
− | | <br> | + | | 0.5d<br> |
| 0.5d<br> | | 0.5d<br> | ||
|- | |- | ||
| bgcolor="#cccccc" | ''?:'' | | bgcolor="#cccccc" | ''?:'' | ||
| <br>done | | <br>done | ||
− | | <br> | + | | 0.5d<br> |
| 0.5d<br> | | 0.5d<br> | ||
|- | |- | ||
Line 97: | Line 97: | ||
| bgcolor="#cccccc" | ''comparison (< > <= >= == !=)'' | | bgcolor="#cccccc" | ''comparison (< > <= >= == !=)'' | ||
| <br>done | | <br>done | ||
− | | <br> | + | | 2d<br> |
| 2d<br> | | 2d<br> | ||
|- | |- | ||
Line 106: | Line 106: | ||
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=352742 Validation needs to allow these operators<br>] | [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352742 Validation needs to allow these operators<br>] | ||
− | | <br> | + | | 0.5d<br> |
| 0.5d<br> | | 0.5d<br> | ||
|- | |- | ||
Line 115: | Line 115: | ||
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=352742 Validation needs to allow these operators<br>] | [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352742 Validation needs to allow these operators<br>] | ||
− | | <br> | + | | 0.5d<br> |
| 0.5d<br> | | 0.5d<br> | ||
|- | |- |
Revision as of 14:57, 21 July 2011
Please see the parent of this page, EDT:EGL Language.
Operators and expressions (Table 7)
Operators and expressions1 | Core | JavaScript | Java |
. (member access) | done |
done |
done |
= | done |
done |
done |
function invocation | done |
done |
done |
new | done |
done |
done |
{ } (set-values block) | done |
0.5d |
done |
@ | done |
done (no work for generators) |
done (no work for generators) |
[ ] (array access) | done |
done |
done |
[ ] (dynamic access) | done |
1d |
1d |
[ ] (substring)2 | 1d |
done |
done |
isa3 | 1d |
1d |
1d |
as3 | see isa |
done |
1d |
unary (+ - ! ~)4, 5 | done |
0.5d |
0.5d |
math (+ - * / % **)9 | done |
1d |
done |
assigning math (+= -= *= /= %= **=)9 | done |
0.5d |
done |
:: | done |
0.5d |
0.5d |
?: | done |
0.5d |
0.5d |
logical (And Or && ||) | done |
done |
done |
comparison (< > <= >= == !=) | done |
2d |
2d |
bitwise (& | Xor << >> >>>)4, 5 |
|
0.5d |
0.5d |
assigning bitwise (&= |= Xor= <<= >>= >>>=)4, 5 |
|
0.5d |
0.5d |
if-then-else (condition ? val1 : val2)6 | 3d |
0.5d |
0.5d |
in7 | 1d | N/S | N/S |
like matches8 | 1d |
N/S | N/S |
Notes on Table 7
- We'll document error conditions of operators and expressions, and their resulting exceptions. Whenever possible this documentation will be comments in the EGL source file for a type.
- Substrings are immutable, so they can't be the target of an assignment or the argument to an inout parameter.
- The type cannot be a nullable type. Nullability is not part of a type signature.
- There are new bitwise operators in EDT. ~ is a bitwise NOT (also called the compliment), << is a left shift, >> is a right shift where the leftmost bits become zero, >>> is a right shift where the sign is copied into the leftmost bits.
- Bitwise operators are only supported on values of type int.
- The if-then-else operator is borrowed from languages like C and Java. The condition's type must be boolean. The two values must have the same type.
- We'll have functions in the array type to provide similar behavior.
- We'll have functions in the string type to provide similar behavior.
- Date/time math is not supported in EDT. Functions on the date and timestamp types provide similar behavior.