From d206fe408ebcc6255407566c2653866e55ac62fb Mon Sep 17 00:00:00 2001 From: JohnnyMorganz Date: Sat, 4 Dec 2021 11:20:49 +0000 Subject: [PATCH] Breakdown `primaryexp` Into `prefixexp`, `var` and `functioncall`. Same as Lua5.1+ --- docs/_pages/grammar.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/_pages/grammar.md b/docs/_pages/grammar.md index ecb32f1a..e4cfbb87 100644 --- a/docs/_pages/grammar.md +++ b/docs/_pages/grammar.md @@ -36,12 +36,15 @@ namelist ::= NAME {`,' NAME} binding ::= NAME [`:' TypeAnnotation] bindinglist ::= binding [`,' bindinglist] +var ::= NAME | prefixexp `[' exp `]' | prefixexp `.' Name +varlist ::= var {`,' var} +prefixexp ::= var | functioncall | `(' exp `)' +functioncall ::= prefixexp funcargs | prefixexp `:' NAME funcargs + exp ::= (asexp | unop exp) { binop exp } ifelseexp ::= if exp then exp {elseif exp then exp} else exp -prefixexp ::= NAME | '(' exp ')' -primaryexp ::= prefixexp { `.' NAME | `[' exp `]' | `:' NAME funcargs | funcargs } asexp ::= simpleexp [`::' Type] -simpleexp ::= NUMBER | STRING | nil | true | false | `...' | tableconstructor | function body | primaryexp | ifelseexp +simpleexp ::= NUMBER | STRING | nil | true | false | `...' | tableconstructor | function body | prefixexp | ifelseexp funcargs ::= `(' [explist] `)' | tableconstructor | STRING tableconstructor ::= `{' [fieldlist] `}'