if (hasJavaModifier(this)) {
throw new NonAbstractJavaFunction(this);
}
ISourceLocation src = this.getLocation();
AbstractAST ret = ASTBuilder.makeStat("Return", src, ASTBuilder.makeStat("Expression", src, getExpression()));
AbstractAST fail = ASTBuilder.makeStat("Fail", src, ASTBuilder.make("Target", "Labeled", src, getSignature().getName()));
AbstractAST ite = ASTBuilder.makeStat("IfThenElse", src, ASTBuilder.make("Label", "Empty", src), getConditions(), ret, fail);
List<AbstractAST> sl = Arrays.<AbstractAST>asList(ite);
AbstractAST body = ASTBuilder.make("FunctionBody", "Default", src, sl);