if (constant) {
return makeResult(type, node, eval);
}
// TODO add function calling
IListWriter w = eval.getValueFactory().listWriter(Factory.Tree);
for (org.rascalmpl.ast.Expression arg : args) {
w.append(arg.interpret(eval).getValue());
}
ISourceLocation location = getLocation();
if (location != null) {
java.util.Map<String,IValue> annos = new HashMap<String,IValue>();
annos.put("loc", location);
return makeResult(type, eval.getValueFactory().constructor(Factory.Tree_Appl, annos, production, flatten(w.done())), eval);
}
else {
return makeResult(type, eval.getValueFactory().constructor(Factory.Tree_Appl, production, flatten(w.done())), eval);
}
}