On Tue, Sep 4, 2012 at 9:35 PM, Marco Patzer <homerow@lavabit.com> wrote:
On 2012-09-04 Herbert Voss <Herbert.Voss@FU-Berlin.DE> wrote:

> voss@shania:~/ConTeXt> lua zzz.lua
> lua: zzz.lua:1: unexpected symbol near ';'

marco@homerow:/tmp$ lua t.lua
true

> voss@shania:~/ConTeXt> lua -v
> Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio

marco@homerow:/tmp$ lua -v
Lua 5.2.1  Copyright (C) 1994-2012 Lua.org, PUC-Rio

 
Because in Lua 5.2 there is the empty statements
http://www.lua.org/manual/5.2/manual.html#3
"""
3.3.1 – Blocks

A block is a list of statements, which are executed sequentially:

block ::= {stat}
Lua has empty statements that allow you to separate statements with semicolons, start a block with a semicolon or write two semicolons in sequence:

stat ::= ‘;’
"""
So
stat ::= if exp then block {elseif exp then block} [else block] end

means that
if exp then
;
else
;
end
is valid.

Luatex still uses lua 5.1.4


--
luigi