この最初の版はLua 5.0向けに書かれました。後のバージョンにも依然として関連していますが、いくつかの違いがあります。
第4版はLua 5.3を対象にしており、Amazonや他の書店で入手できます。
本を購入することで、Luaプロジェクトをサポートすることもできます。


1.3 – 字句規則

Luaの識別子は、数字で始まらない、文字、数字、およびアンダースコアの任意の文字列にすることができます。たとえば

    i      j       i10      _ij
    aSomewhatLongName    _INPUT
アンダースコアで始まり、1つ以上の英大文字が続く識別子(例: _VERSION)は避ける必要があります。これらはLuaの特別な用途のために予約されています。通常、ダミー変数には識別子 _(単一のアンダースコア)を予約します。

Luaでは、文字の概念はロケールに依存します。したがって、適切なロケールを使用すると、índiceaçãoなどの変数名を使用できます。ただし、そのような名前を使用すると、そのロケールをサポートしていないシステムではプログラムを実行できなくなります。

次の単語は予約されています。識別子として使用することはできません。

    and       break     do        else      elseif
    end       false     for       function  if
    in        local     nil       not       or
    repeat    return    then      true      until
    while
Luaは、大文字と小文字を区別します。andは予約されていますが、AndANDは2つの異なる識別子です。

コメントは、二重ハイフン(--)から始まり、行末まで続きます。Luaはブロックコメントも提供します。これは--[[で始まり、対応する]]まで続きます。コードの一部をコメントアウトしたい場合は、次のように書くのが一般的な手法です。

    --[[
    print(10)         -- no action (comment)
    --]]
ここで、最初の行に単一のハイフンを追加すると、コードが再び有効になります。
    ---[[
    print(10)         --> 10
    --]]
最初の例では、最後の行の--は依然としてブロックコメント内です。2番目の例では、シーケンス---[[はブロックコメントを開始しません。したがって、printはコメント外です。この場合、最後の行は--で始まるため、独立したコメントになります。