diff --git a/lua/parser-smoke.sh b/lua/parser-smoke.sh index 2f9ee69f..95f69ec4 100755 --- a/lua/parser-smoke.sh +++ b/lua/parser-smoke.sh @@ -55,6 +55,7 @@ good "a.g in (1, 'a', b.c)" good "a.b = a.a" bad "a.g in ()" +bad "a.b = b = 1" bad "(a.b = 1" # Macros diff --git a/lua/sysdig-parser.lua b/lua/sysdig-parser.lua index a68b9e50..e27a04ca 100644 --- a/lua/sysdig-parser.lua +++ b/lua/sysdig-parser.lua @@ -216,7 +216,7 @@ local G = { Number = C(V"Hex" + V"Float" + V"Int") / function (n) return tonumber(n) end; String = (P'"' * C(((P'\\' * P(1)) + (P(1) - P'"'))^0) * P'"' + P"'" * C(((P"\\" * P(1)) + (P(1) - P"'"))^0) * P"'") / function (s) return fix_str(s) end; - BareString = C(((P(1) - S' (),'))^1); + BareString = C(((P(1) - S' (),='))^1); OrOp = kw("or") / "or"; AndOp = kw("and") / "and";