using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cosmos.Assembler.X86 { /// /// This class represents a intructions and has information about all variants for it /// public abstract class Instruction { public InstructionEnum AsmInstruction { get; protected set; } public ConditionalTestEnum Condition { get; set; } public List Variants { get; protected set; } public IInstructionData InstructionData { get; set; } public Instruction() { } public InstructionVariant Match( InstructionData aData ) { if( Variants == null && Initialize() == false ) throw new NotSupportedException(); return null; } public abstract bool Initialize(); } }