Mercurial > p > roundup > code
diff roundup/backends/back_anydbm.py @ 6399:f3fcd6628c0c
Allow '-1' (empty) in multilink expression
| author | Ralf Schlatterbeck <rsc@runtux.com> |
|---|---|
| date | Sat, 08 May 2021 09:45:38 +0200 |
| parents | 75a53956cf13 |
| children | 8bc5faeb7677 |
line wrap: on
line diff
--- a/roundup/backends/back_anydbm.py Fri May 07 22:26:37 2021 -0400 +++ b/roundup/backends/back_anydbm.py Sat May 08 09:45:38 2021 +0200 @@ -77,6 +77,14 @@ def visit(self, visitor): visitor(self) +class Empty(Unary): + + def evaluate(self, v): + return not v + + def visit(self, visitor): + visitor(self) + class Not(Unary): def evaluate(self, v): @@ -110,7 +118,8 @@ stack = [] push, pop = stack.append, stack.pop for opcode in opcodes: - if opcode == -2: push(Not(pop())) + if opcode == -1: push(Empty(opcode)) + elif opcode == -2: push(Not(pop())) elif opcode == -3: push(And(pop(), pop())) elif opcode == -4: push(Or(pop(), pop())) else: push(Equals(opcode))
