A Lua programozási nyelv

Nyelvi elemek

Azonosítók

Azonosító lehet betűk, számok, aláhúzásjelek tetszőleges sorozata, amely nem számmal kezdődik. A karakterek érvényességét a nyelvi beállítás-függő isalpha and isalnum C függvények ellenőrzik. A betű jelentése ebben az esetben: bármely karakter, ami a lokális karakterbeállítások szerint betűnek számít. A nyelv ebből kifolyólag megkülönbözteti a kis- és nagybetűket. Konvenció szerint az aláhúzás karakterrel kezdődő azonosítókat a Lua belső változói számára tartják fenn.

A Lua fenntartott szavai

and       break     do        else      elseif
end       false     for       function  if
in        local     nil       not       or
repeat    return    then      true      until     while

Literálok

Numerikus literálok

A Luában a numerikus konstansok legfőbb jellegzetessége, hogy opcionálisan tartalmazhatnak tört részt és decimális exponenst. Hexadecimális konstansokat is használhatunk, a 0x előtaggal. Például:

3    3.0    3.1416    314.16e-2    0.31416E1    0xff    0x56

Karakteres literálok

A karakteres literálokat (stringeket) dupla vagy szimpla idézőjelek közt adhatjuk meg. Ellentétben más nyelvekkel, a Luában a szimpla és dupla aposztrófok ekvivalensek. Az aposztrófok között ugyanúgy érvényesek az escape szekvenciák, mint idézőjelek között. A C-hez hasonló módon itt is használhatunk ún. escape szekvenciákat, ezek jelentése a következő:

String literálokat egy alternatív, "hosszú" formában is definiálhatunk, szögletes zárójelek között. Egy n-edik szintű nyitó szimbólum definíciója: egy nyitó szögletes zárójel, amit n egyenlőségjel, majd egy második nyitó szögletes zárójel követ. Így egy 0. szintű nyitó szimbólum [[, egy 1. szintű [=[, és így tovább. A záró szimbólumokat hasonlóan definiáljuk. Például egy 4. szintű záró szimbólum így néz ki: ]====]. Egy hosszú string egy tetszőleges szintű nyitó szimbólummal kezdődik és az azonos szintű záró szimbólummal ér véget.

Ezek a hosszú literálok többsörösak is lehetnek, a bennük található escape szekvenciák nem kerülnek feldolgozásra, és figyelmen kívül hagynak minden más szintű nyitó/záró szimbólumot. Az azonos szintű záró szimbólum kivételével bármit tartalmazhatnak.

Ha egy hosszú sztringben a nyitó zárójelet közvetlenül egy új sor karakter követi, akkor az az új sor karakter nem lesz a string része.

Megjegyzések (kommentek)

Kommenteket - karakteres literálokon kívül - bárhol elhelyezhetünk. A kommentet a -- jel vezeti be. Ha közvetlen utána nem nyitó szimbólum következik, akkor a komment egysoros. Különben hosszú kommentet kapunk, ami a megfelelő záró szimbólumig tart.

Egyéb önálló tokenek

A következő jelek szintén önálló lexikai egységeket képeznek:

+    -    *    /    ^    =
~=   <=   >=   <    >    ==
(    )    {    }    [    ]
;    :    ,    .    ..    ...