aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-31 11:50:42 +0000
committerMichael Williamson <mike@zwobble.org>2015-10-31 11:50:42 +0000
commitcc7e5865de3e68c1ec2a5a12d40a7925d7b95e2d (patch)
tree7b4aa86dc1dfc54e3519fcad26ac6e4f200aeae4 /src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java
parent5e01b55caf49ddbed0f9abdf8ca6592303001985 (diff)
Implement divide and mod for Python backend
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java
index c5ea3e3..e325302 100644
--- a/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java
+++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCompiler.java
@@ -25,6 +25,9 @@ public class PythonCompiler {
compileClass(classNode);
}
writeClass(TypeName.of("java.lang.Integer"), "class Integer(object):\n def parseInt(value):\n return int(value)");
+ writeClass(TypeName.of("_couscous"),
+ "def _div_round_to_zero(a, b): return -(-a // b) if (a < 0) ^ (b < 0) else a // b\n" +
+ "def _mod_round_to_zero(a, b): return -(-a % b) if (a < 0) ^ (b < 0) else a % b");
}
private Path pathForClass(TypeName className) {