public ILInstructionPattern(ILOpCodePattern opCode, ILOperandPattern operand,
                             params ILExpressionPattern[] arguments)
 {
     OpCode    = opCode ?? throw new ArgumentNullException(nameof(opCode));
     Operand   = operand;
     Arguments = new List <ILExpressionPattern>(arguments);
 }
 public ILInstructionPattern WithOpCode(ILOpCodePattern opCode)
 {
     OpCode = opCode;
     return(this);
 }
 public ILInstructionPattern WithOpCode(params ILCode[] opCodes)
 {
     OpCode = new ILOpCodePattern(opCodes);
     return(this);
 }
 public ILInstructionPattern(ILOpCodePattern opCode)
 {
     OpCode    = opCode ?? throw new ArgumentNullException(nameof(opCode));
     Operand   = ILOperandPattern.Null;
     Arguments = new List <ILExpressionPattern>();
 }