Az Emerald programozási nyelv

Literálok


A literál objektumok az Emeraldban az alábbi kategóriákba sorolhatók:

Numerikus


A numerikus literálok szintaxisa:

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.

Boolean - Logikai


BooleanLiteral	::=	true | false

Nil


NilLiteral	::=	nil

A nil lefoglalt szó a nevezetes nil objektumokra vonatkozik.


Karakter


A karakter literál egy karakter szimpla idézõjelben;

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.

String

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", ""

Vektor


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]


Típusok


Az Emerald támogatja a rekord és a felsorolás típusokat.
Ls. késõbb.