A literál objektumok az Emeraldban az alábbi kategóriákba
sorolhatók:
NumericLiteral ::= "0x" {hexdigit} |"0" {octdigit} |digit {digit} "." {digit} |digit {digit} digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 octdigit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 hexdigit ::= digit | a | b | c | d | e | f
Azok a numerikus literálok, amikben nincs
tizedes "pont" (".") Integer típusúak,
amelyekben megtalálható,
azok Real típusúak.
A "0x"-szel kezdõdõ literálok hexadecimálisak, a
"0"-val kezdõdõek oktálisak. Pl.: 12, 014, 0xc
Integer
literálok a 12 decimális értéket képviselik, 4.5 és 4356.34
pedig Real literálok.
BooleanLiteral ::= true | false
NilLiteral ::= nil
A nil lefoglalt szó a nevezetes nil objektumokra vonatkozik.
CharacterLiteral::= 'character' Character ::= BármilyenKarakterKivéveDuplaIdézõjelVagyBackSlash | "\" BármilyenKarakterKivéve^ | "\" "^" Bármilyen Karakter | "\" EgyKettõVagyHáromOktálisSzámjegy
A \ után álló karakter egy speciális
karakter, és a '\' veszi el a jelentését. Pl.: '\\' jelenti
a '\' karaktert, "\^C" - ahol C bármilyen karakter
lehet - control karakter.
A "\" mögé akár egy, kett vagy három számjegyet is
írhatunk. Pl.: '\43'
Karakterekre példák: 'F', 'e', '\^S', '\\', '\^J', '\n', '\012'
Az utolsó három példa az újsor karakterrel ekvivalens.
A String karakterek sorozata macskaköröm közé zárva, és az is megengedett, hogy több soron keresztül folytatódjon.
StringLiteral ::= """ {Character} """
Stringre példa: "Emerald City",
"The \"Evergreen\" State", ""
VectorLiteral ::= "{" expression {" "expression } [: typeExpression ] "}"
A Vektor literál kifejezések
szekvenciája kapcsoszárójelek között.
A
kifejezés típusa: ImmutableVector.of[t], ahol a t lehet
Példák: {1,3,5} típusa:
ImmutableVector.of[Integer]
{1,3,5 : Any} típusa: ImmutableVector.of[Any]
{1,'a',true} típusa: ImmutableVector.of[Any]