Lua

Sintaxes completas representadas por Diagrama Sintático - Diagrama de Sintaxe (ver convenções) ou BNF (ver convenções).
Diagrama Sintático - Diagrama de Sintaxe | Diagrama Sintático - Diagrama de Sintaxe e BNF | BNF
lua : [(stat [';'])+] [(return [exp {',' exp}] | break ) [';']]
stat : var {',' var} '=' exp {',' exp} | functioncall | repeat block until exp | if exp then block [(elseif exp then block)+] [else block] end | [(for (Name '=' exp ',' exp [',' exp]|Name {',' Name} in exp {',' exp})|while exp)] do block end | function funcname funcbody | local function Name funcbody | local (Name {',' Name}) ['=' exp {',' exp}]
funcname : Name {'.' Name} [':' Name]
var : Name | prefixexp '[' exp ']' | prefixexp '.' Name
exp : nil | false | true | Number | String | '...' | function | prefixexp | tableconstructor | exp binop exp | unop exp
prefixexp : var | functioncall | '(' exp ')'
functioncall : prefixexp [ ':' Name] '(' [exp {',' exp}] ')' | tableconstructor | String
function : 'function' funcbody
funcbody : '(' [parlist] ')' block end
parlist : namelist [',' '...'] | '...'
tableconstructor : '{' [([('[' exp ']' | Name) '='] exp (',' | ';'|''))+] '}'
binop : '+' | '-' | '*' | '/' | '^' | '%' | '..' | '<' | '<=' | '>' | '>=' | '==' | '~=' | and | or
unop : '-' | not | '#'