From c21e8207f8c358e1f3dbb4fcf73d449608283ff9 Mon Sep 17 00:00:00 2001 From: Henri DF Date: Sun, 14 Feb 2016 20:37:32 -0800 Subject: [PATCH] Don't allow '=' in BareStrings --- lua/parser-smoke.sh | 1 + lua/sysdig-parser.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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";