and break do else elseifend false for function ifin local nil not orrepeat return then true until while
En Lua las letras mayúsculas y las minúsculas se consideran diferentes:
and
es una palabrareservada, pero
And
y
AND
son dos nombres diferentes válidos. Como convención, los nombres quecomienzan por un subrayado seguido por letras en mayúsculas (como _VERSION) están reservados para uso como variables globales internas de Lua.Los siguientes
strings
denotan otros elementos:
+ - * / % ^ #== ~= <= >= < > =( ) { } [ ]; : , . .. ...
Los
strings literales
pueden ser delimitados por comillas simples (apóstrofes) o dobles, y puedencontener las siguientes secuencias de
escape
de C: '
\a
' (pitido,
bell
) '
\b
' (retroceso,
backspace
),'
\f
' (salto de página,
form feed
), '
\n
' (nueva línea,
newline
), '
\r
' (retorno de carro,
carriagereturn
), '
\t
' (tabulador horizontal,
horizontal tab
), '
\v
' (tabulador vertical,
vertical tab
), '
\\
' (barrainversa,
backslash
), '
\"
' (comilla doble,
quotation mark
o
double quote
) y '
\'
' (apóstrofe,
apostrophe
o
single quote
). Además, una '
\
newline
' (esto es, una barra inversa seguida por un saltode línea real) produce un salto de línea en el
string
. Un carácter en un
string
puede tambiénespecificarse por su valor numérico usando la secuencia de escape '
\
ddd
', donde
ddd
es unasecuencia de tres dígitos decimales. (Tenga presente que si la secuencia numérica de escape estáseguida de un dígito debe ser expresada usando exactamente tres dígitos.) Los
strings
en Lua pueden contener cualquier valor de 8 bits, incluyendo el carácter cero, el cual puede ser especificado mediante '
\0
'.Para poner una comilla (simple) doble, una barra inversa, un retorno de carro o un carácter cerodentro de un
string
literal encerrado por comillas (simples) dobles se debe usar una secuencia deescape. Cualquier otro carácter puede ser incluido en el literal. (Algunos caracteres de control pueden causar problemas con el sistema de ficheros, pero Lua no tiene problemas con ellos.)Los
strings
literales pueden definirse usando un formato largo, encerrados en
corchetes largos
.Definimos un
corchete largo de abrir de nivel n
como un corchete de abrir seguido de
n
signosigual (=) seguidos de otro corchete de abrir. Así, un corchete largo de abrir de nivel 0 se escribe
[[
,un corchete largo de abrir de nivel 1 se escribe
[=[
, y así sucesivamente. Los
corchetes largos decerrar
se define de manera similar; por ejemplo, un corchete largo de cerrar de nivel 4 se expresa
]====]
. Un
string
largo comienza en un corchete largo de abrir de cualquier nivel y termina en el primer corchete largo de cerrar del mismo nivel. Los
strings
literales delimitados de esta manera pueden extenderse por varias líneas, las secuencias de escape no son interpretadas y se ignoran loscorchetes largos de cualquier otro nivel. Por tanto, pueden contener cualquier cosa excepto uncorchete de cerrar del mismo nivel o caracteres cero.Por conveniencia, cuando un corchete largo de abrir es seguido inmediatamente de un carácter denueva línea, éste no es incluido en el
string
. Por ejemplo, usando el código de caracteres ASCII (enel cual '
a
' se codifica como 97, el carácter de nueva línea se codifica como 10, y '
1
' se codificacomo 49), los cinco literales siguientes denotan el mismo
string
:
a = 'alo\n123"'a = "alo\n123\""a = '\97lo\10\04923"'a = [[alo123"]]a = [==[