I've been looking at the EBNF in the manual and I'm a bit confused by the following two rules:
var ::= Name | prefixexp ‘[’ exp ‘]’ | prefixexp ‘.’ Name
prefixexp ::= var | functioncall | ‘(’ exp ‘)’
if you expand this out you get var on the right hand side of the var rule definition. I'm not a CS guru so perhaps I'm misunderstanding EBNF notation.
Thanks,
Jason