pub const OP_COUNT: usize = 83;
pub const OPNAMES: [&str; OP_COUNT] = [
"MOVE", "LOADI", "LOADF", "LOADK", "LOADKX", "LOADFALSE", "LFALSESKIP",
"LOADTRUE", "LOADNIL", "GETUPVAL", "SETUPVAL", "GETTABUP", "GETTABLE",
"GETI", "GETFIELD", "SETTABUP", "SETTABLE", "SETI", "SETFIELD",
"NEWTABLE", "SELF", "ADDI", "ADDK", "SUBK", "MULK", "MODK", "POWK",
"DIVK", "IDIVK", "BANDK", "BORK", "BXORK", "SHRI", "SHLI", "ADD",
"SUB", "MUL", "MOD", "POW", "DIV", "IDIV", "BAND", "BOR", "BXOR",
"SHL", "SHR", "MMBIN", "MMBINI", "MMBINK", "UNM", "BNOT", "NOT",
"LEN", "CONCAT", "CLOSE", "TBC", "JMP", "EQ", "LT", "LE", "EQK",
"EQI", "LTI", "LEI", "GTI", "GEI", "TEST", "TESTSET", "CALL",
"TAILCALL", "RETURN", "RETURN0", "RETURN1", "FORLOOP", "FORPREP",
"TFORPREP", "TFORCALL", "TFORLOOP", "SETLIST", "CLOSURE", "VARARG",
"VARARGPREP", "EXTRAARG",
];
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn op_count_matches_table() {
assert_eq!(OPNAMES.len(), OP_COUNT);
}
#[test]
fn first_and_last_opcodes() {
assert_eq!(OPNAMES[0], "MOVE");
assert_eq!(OPNAMES[OP_COUNT - 1], "EXTRAARG");
}
}