aboutsummaryrefslogtreecommitdiff
path: root/grammars/lua.bp
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2021-07-19 19:40:43 -0700
committerBruce Hill <bruce@bruce-hill.com>2021-07-19 19:40:43 -0700
commit711fe47a7f651f38e090c9a20ecef11feba6f705 (patch)
tree98a3283e7c630919a08f8bd95326ceeb1a93da9e /grammars/lua.bp
parent62e7d654bd70db89cb38e5d9efeb9a9b0e9cf202 (diff)
Overhaul of word boundaries/edges. Now they use \b, which is implemented
in C, and the C code understands UTF8 id chars.
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)