다음은 루아의 BNF이다. www.lua.org에 document 자료를 참조 했으며 5.1 기준이다.
Here is the complete syntax of Lua in extended BNF. (It does not describe operator precedences.)
chunk ::= {stat [';']} [laststat [';']] block ::= chunk stat ::= varlist '=' explist | functioncall | 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] laststat ::= return [explist] | break 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 | '...' | function | prefixexp | tableconstructor | exp binop exp | unop exp prefixexp ::= var | functioncall | '(' exp ')' functioncall ::= prefixexp args | prefixexp ':' Name args args ::= '(' [explist] ')' | tableconstructor | String function ::= 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 | '#'
반응형
'3.구현 > Lua' 카테고리의 다른 글
4. Lua의 조건문 반복문 (0) | 2008.01.21 |
---|---|
3. Lua의 각종 연산자들 (0) | 2007.07.23 |
2. Lua 함수에 대해서 (0) | 2007.07.20 |
1. 루아 스크립트 기초 (0) | 2007.07.19 |
Lua 시작하기 (0) | 2007.07.13 |