aboutsummaryrefslogtreecommitdiff
path: root/grammars/lua.bp
diff options
context:
space:
mode:
Diffstat (limited to 'grammars/lua.bp')
-rw-r--r--grammars/lua.bp11
1 files changed, 8 insertions, 3 deletions
diff --git a/grammars/lua.bp b/grammars/lua.bp
index 562b44a..f75880e 100644
--- a/grammars/lua.bp
+++ b/grammars/lua.bp
@@ -13,6 +13,11 @@ keyword:
"and" / "break" / "do" / "else" / "elseif" / "end" / "false" / "for" /
"function" / "goto" / "if" / "in" / "local" / "nil" / "not" / "or" /
"repeat" / "return" / "then" / "true" / "until" / "while"
-function-def: {function}[_id (*(`.id)[`:id])]_ parens
-block: function / ({do}/{then}) ..%(comment/string/block/\n) {end}
-function: function-def ..%(comment/string/block/\n) {end}
+function-def: \b"function"\b[_id (*(`.id)[`:id])]_ parens
+block: function / if-block / while-block / for-block / repeat-block / do-block
+repeat-block: \b"repeat"\b ..%(comment/string/\n) (\b"until"\b)
+do-block: \b"do"\b ..%(comment/string/block/\n) (\b"end"\b)
+for-block: \b"for"\b ..%\n >(\b"do"\b) do-block
+while-block: \b"while"\b ..%\n >(\b"do"\b) do-block
+if-block: \b"if"\b ..%\n \b"then"\b ..%(comment/string/\n) (\b"end"\b)
+function: function-def ..%(comment/string/block/\n) (\b"end"\b)