summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/src/parser/ast.lua11
-rw-r--r--server/src/parser/grammar.lua5
-rw-r--r--server/test/full/dirty.lua8
3 files changed, 22 insertions, 2 deletions
diff --git a/server/src/parser/ast.lua b/server/src/parser/ast.lua
index 55364ca9..f7a94dfc 100644
--- a/server/src/parser/ast.lua
+++ b/server/src/parser/ast.lua
@@ -1235,6 +1235,17 @@ local Defs = {
symbol = symbol,
}
}
+ return
+ end,
+ UnknownAction = function (start, symbol)
+ pushError {
+ type = 'UNKNOWN_SYMBOL',
+ start = start,
+ finish = start + #symbol - 1,
+ info = {
+ symbol = symbol,
+ }
+ }
return false
end,
DirtyName = function (pos)
diff --git a/server/src/parser/grammar.lua b/server/src/parser/grammar.lua
index 42e52d05..b5e083e6 100644
--- a/server/src/parser/grammar.lua
+++ b/server/src/parser/grammar.lua
@@ -55,6 +55,7 @@ defs.er = '\r'
defs.et = '\t'
defs.ev = '\v'
defs['nil'] = m.Cp() / function () return nil end
+defs['false'] = m.Cp() / function () return false end
defs.NotReserved = function (_, _, str)
if RESERVED[str] then
return false
@@ -386,9 +387,9 @@ CrtAction <- Semicolon
/ Call
/ ExpInAction
UnkAction <- ({} {Word+})
- -> UnknownSymbol
+ -> UnknownAction
/ ({} {. (!Sps !CrtAction .)*})
- -> UnknownSymbol
+ -> UnknownAction
ExpInAction <- Sp ({} Exp {})
-> ExpInAction
diff --git a/server/test/full/dirty.lua b/server/test/full/dirty.lua
index 9c2e65fb..5fe4e998 100644
--- a/server/test/full/dirty.lua
+++ b/server/test/full/dirty.lua
@@ -5,3 +5,11 @@ a.
TEST [[
a:
]]
+
+TEST [[
+end
+]]
+
+TEST [[
+table.02X
+]]