if (src instanceof ETuple2) {
ETuple2 tup = (ETuple2) src;
if (tup.elem1 == X_ATOM) {
int xreg = tup.elem2.asInt();
return new Arg(Arg.Kind.X, xreg, current.getx(xreg));
} else if (tup.elem1 == Y_ATOM) {
int yreg = tup.elem2.asInt();
return new Arg(Arg.Kind.Y, current.get_ypos(yreg),
current.gety(yreg));
} else if (tup.elem1 == FR_ATOM) {
int freg = tup.elem2.asInt();
return new Arg(Arg.Kind.F, freg, Type.DOUBLE_TYPE);
} else if (tup.elem1 == ATOM_ATOM) {
return new Arg(tup.elem2, EATOM_TYPE);
} else if (tup.elem1 == LITERAL_ATOM) {
return new Arg(tup.elem2);
} else if (tup.elem1 == STRING_ATOM) {
return new Arg(tup.elem2);
} else if (tup.elem1 == INTEGER_ATOM) {
return new Arg(tup.elem2);
} else if (tup.elem1 == FLOAT_ATOM) {
return new Arg(tup.elem2, Type.DOUBLE_TYPE);
}
} else if (src == NIL_ATOM) {
return new Arg(ERT.NIL, ENIL_TYPE);
}
return new Arg(src);
// return null;
}