package org.jerlang.erts.emulator.op;
import org.jerlang.Module;
import org.jerlang.Process;
import org.jerlang.erts.emulator.Instruction;
import org.jerlang.erts.erlang.Error;
import org.jerlang.type.Atom;
import org.jerlang.type.List;
import org.jerlang.type.Term;
import org.jerlang.type.Tuple;
/**
* Raise badmatch error.
*
* Arg1: term which caused the problem
*/
public class Badmatch {
private static final Atom badmatch = Atom.of("badmatch");
public static Term execute(Process proc, Module m, Instruction i, List params) {
Term arg1 = i.arg(0);
if (arg1.isXRegister()) {
Term cause = arg1.toArg(proc);
throw new Error(Tuple.of(badmatch, cause));
} else {
throw new Error("Unsupported arg1: " + i);
}
}
}