Literál és Azonosító Kifejezések
expression ::= literal
| constantIfentifier
| variableIdentifier
Operátor Kifejezések
Az Emerald operátor precedencia táblázata:
Precedencia Level Operator Mûvelet
----------------- -------- -------
1 view-as objektum mûveletek kibõvitett nézete
restrict-to objektum mûveletek korlátozott nézete
2 | logikai vagy
or logikai feltételes vagy
3 & logikai és
and logikai feltételes és
4 ! logikai negáció
5 ==, !== object azonosság és különbség
o> típus hasonlóság
=,!=,<,<=,>,>= relációs mûveletek
6 +, - additiv operátorok
7 *, / multiplikativ operátorok
# modulus
user-defined
8 -, ~ aritmetikai negáció
isfixed ellenõrzi, hogy egy objektum node-hoz van-e kötve
locate az operandus lehetséges helyét keresi
awaiting a prcessek a feltétel teljesülésére várnak
nameof egy objektum neve
typeof egy objektum típusa
Relációs Operátorok
expression ::= expression relop expression | ...
relop ::= "=" | "!=" | "<" |
"<=" | ">=" | ">" |
"==" | "!==" | "o>"
Atirmetikai operátorok
expression ::= expression arithop expression | ...
arithop ::= "+" | "-" | "*" |
"/" | "#"
Boolean operátorok
expression ::= "~" expression |
expression binbooleanop expression | ...
binbooleanop ::= "|" | "&" | or | and
Location-related operátorok
expression ::= locate expression
| isfixed expression
Egyéb kifejezések
expression :== awaiting expression
| view expression as typeDenotation
| restrict expression to typeDenotation
| expression $ fieldIdentifier
| expression . enumIdentifier
| objectConstructor
| functionInvocation
| nameofexpression
| typeofexpression