Lua - Informationen - Syntax

Der Syntax einer Sprache legt fest, wie Befehle eines Programmierers zu lesen sind. Das kann man sich vorstellen wie zwei Menschen die miteinander kommunizieren wollen, aber sich nicht darauf geeinigt haben, welches Wort welche Bedeutung hat. Da kann der eine noch soviel Reden, der andere wird ihn nicht verstehen. Im Skript des Programmieres bedeutet das, der Programmierer kann noch so viel schreiben, es wird nur eine Fehlermeldung kommen, wenn sich nicht an die Sprachrichtlinien gehalten wird.

Der Syntax ist für unser Tutorial vorerst nicht von Bedeutung und kann einfach mal überflogen werden.

Vollständiger Lua Syntax:

chunk ::= block
 
	block ::= {stat} [retstat]
 
	stat ::=;’ | 
		 varlist ‘=’ explist | 
		 functioncall | 
		 label | 
		 break | 
		 goto Name | 
		 do block end | 
		 while exp do block end | 
		 repeat block until exp | 
		 if exp then block {elseif exp then block} [else block] end | 
		 for Name ‘=exp,exp [,exp] do block end | 
		 for namelist in explist do block end | 
		 function funcname funcbody | 
		 local function Name funcbody | 
		 local namelist [=’ explist] 
 
	retstat ::= return [explist] [;]
 
	label ::=::’ Name ‘::’
 
	funcname ::= Name {.’ Name} [:’ Name]
 
	varlist ::= var {,’ var}
 
	var ::=  Name | prefixexp ‘[exp]’ | prefixexp ‘.’ Name 
 
	namelist ::= Name {,’ Name}
 
	explist ::= exp {,exp}
 
	exp ::=  nil | false | true | Number | String | ‘...’ | functiondef | 
		 prefixexp | tableconstructor | exp binop exp | unop exp 
 
	prefixexp ::= var | functioncall | ‘(exp)’
 
	functioncall ::=  prefixexp args | prefixexp ‘:’ Name args 
 
	args ::=([explist])’ | tableconstructor | String 
 
	functiondef ::= function funcbody
 
	funcbody ::=([parlist])’ block end
 
	parlist ::= namelist [,’ ‘...] | ‘...’
 
	tableconstructor ::={[fieldlist]}’
 
	fieldlist ::= field {fieldsep field} [fieldsep]
 
	field ::=[exp]’ ‘=exp | Name ‘=exp | exp
 
	fieldsep ::=,’ | ‘;’
 
	binop ::=+’ | ‘-’ | ‘*’ | ‘/’ | ‘^’ | ‘%’ | ‘..’ | 
		 ‘<’ | ‘<=’ | ‘>’ | ‘>=’ | ‘==’ | ‘~=’ | 
		 and | or
 
	unop ::=-’ | not | ‘#