From 276000727125bc1fb3fd3c5032b0bdf7241da725 Mon Sep 17 00:00:00 2001 From: Etienne Kneuss <ekneuss@gmail.com> Date: Mon, 10 Dec 2012 18:10:35 +0100 Subject: [PATCH] Build Expr from tuples --- src/main/java/leon/codegen/runtime/Tuple.java | 4 ++++ src/main/scala/leon/codegen/CompilationUnit.scala | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/leon/codegen/runtime/Tuple.java b/src/main/java/leon/codegen/runtime/Tuple.java index 112b4fe7a..93ed14032 100644 --- a/src/main/java/leon/codegen/runtime/Tuple.java +++ b/src/main/java/leon/codegen/runtime/Tuple.java @@ -20,4 +20,8 @@ public final class Tuple { } return this.elements[index]; } + + public final int getArity() { + return this.arity; + } } diff --git a/src/main/scala/leon/codegen/CompilationUnit.scala b/src/main/scala/leon/codegen/CompilationUnit.scala index b31c0f98b..35b3a59ee 100644 --- a/src/main/scala/leon/codegen/CompilationUnit.scala +++ b/src/main/scala/leon/codegen/CompilationUnit.scala @@ -53,6 +53,14 @@ class CompilationUnit(val program: Program, val classes: Map[Definition, ClassFi case _ => throw CompilationException("Unsupported return value : " + e) } + + case tpl: runtime.Tuple => + val elems = for (i <- 0 until tpl.getArity) yield { + javaToGroundExpr(tpl.get(i)) + } + + Tuple(elems) + case _ => throw CompilationException("MEH Unsupported return value : " + e.getClass) } -- GitLab