import { InstructionStatement } from "../../src/parse/nodes"; import { AddressingModes, Mnemonics, Qualifiers } from "../../src/syntax"; import instructionQualifier from "../../src/parse/instructionQualifier"; describe("instructionQualifier()", () => { test("word default", () => { const result = instructionQualifier({ opcode: { op: { name: Mnemonics.MOVE } }, } as InstructionStatement); expect(result).toEqual(Qualifiers.W); }); test("long default", () => { const result = instructionQualifier({ opcode: { op: { name: Mnemonics.MOVEQ } }, } as InstructionStatement); expect(result).toEqual(Qualifiers.L); }); test("byte default", () => { const result = instructionQualifier({ opcode: { op: { name: Mnemonics.SCC } }, } as InstructionStatement); expect(result).toEqual(Qualifiers.B); }); test("bit op - register", () => { const result = instructionQualifier({ opcode: { op: { name: Mnemonics.BTST } }, operands: [{}, { mode: AddressingModes.Dn }], } as InstructionStatement); expect(result).toEqual(Qualifiers.L); }); test("bit op - memory", () => { const result = instructionQualifier({ opcode: { op: { name: Mnemonics.BTST } }, operands: [{}, { mode: AddressingModes.AbsW }], } as InstructionStatement); expect(result).toEqual(Qualifiers.B); }); });