diff --git a/WDL/_parser.py b/WDL/_parser.py index e9881eaf..ba9f3770 100644 --- a/WDL/_parser.py +++ b/WDL/_parser.py @@ -138,7 +138,7 @@ ?expr_core: "(" expr ")" | literal | string - | "!" expr -> negate + | "!" expr_core -> negate | "[" [expr ("," expr)*] ","? "]" -> array | expr_core "[" expr "]" -> at diff --git a/tests/test_0eval.py b/tests/test_0eval.py index 2dcdee32..1f6c00b6 100644 --- a/tests/test_0eval.py +++ b/tests/test_0eval.py @@ -131,7 +131,10 @@ def test_logic(self): ("!!true", "true"), ("!false", "true"), ("!false && true", "true"), - ("!(false && true)", "true") + ("!false && false", "false"), + ("!true && false", "false"), + ("!(false && false)", "true"), + ("!(false && true)", "true"), ) def test_arithmetic(self):