diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2016-09-02 16:39:16 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2016-09-02 18:52:45 +0100 |
commit | 00e5962aaada57215eaf32879041f92004e011d8 (patch) | |
tree | 6bbd52914314fe881e5ef092d1716346e2622410 /mesonbuild/interpreter.py | |
parent | c8213aaf1e3503855377e1372e1a7bbb19c5463d (diff) | |
download | meson-00e5962aaada57215eaf32879041f92004e011d8.zip meson-00e5962aaada57215eaf32879041f92004e011d8.tar.gz meson-00e5962aaada57215eaf32879041f92004e011d8.tar.bz2 |
Add support to integer modulo operator
Having support for the '%' operator makes it easier to implement
even/odd version checks, like:
enable_debug = get_option('enable-debug')
if enable_debug == 'auto'
if minor_version % 2 == 0
enable_debug = 'minimum'
else
enable_debug = 'yes'
endif
endif
which would be impossible without resorting to less obvious long-hand
forms like:
a - (b * (a / b))
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index ac95e15..535a3f0 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2595,6 +2595,10 @@ class Interpreter(): if not isinstance(l, int) or not isinstance(r, int): raise InvalidCode('Division works only with integers.') return l // r + elif cur.operation == 'mod': + if not isinstance(l, int) or not isinstance(r, int): + raise InvalidCode('Modulo works only with integers.') + return l % r else: raise InvalidCode('You broke me.') |