diff options
-rw-r--r-- | server/src/parser/ast.lua | 11 | ||||
-rw-r--r-- | server/src/parser/grammar.lua | 5 | ||||
-rw-r--r-- | server/test/full/dirty.lua | 8 |
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 +]] |