diff options
Diffstat (limited to 'mesonbuild/mparser.py')
-rw-r--r-- | mesonbuild/mparser.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py index b3fdba8..2f0eb2d 100644 --- a/mesonbuild/mparser.py +++ b/mesonbuild/mparser.py @@ -353,6 +353,7 @@ class Parser: def __init__(self, code): self.stream = Lexer().lex(code) self.getsym() + self.in_ternary = False def getsym(self): try: @@ -393,9 +394,14 @@ class Parser: left.lineno, left.colno) return AssignmentNode(left.lineno, left.colno, left.value, value) elif self.accept('questionmark'): + if self.in_ternary: + raise ParseException('Nested ternary operators are not allowed.', + left.lineno, left.colno) + self.in_ternary = True trueblock = self.e1() self.expect('colon') falseblock = self.e1() + self.in_ternary = False return TernaryNode(left.lineno, left.colno, left, trueblock, falseblock) return left |