InstrBase.cs 879 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // InstrBase.cs
  2. // (C) Sergey Chaban ([email protected])
  3. using System;
  4. using System.Reflection.Emit;
  5. namespace Mono.ILASM {
  6. public abstract class InstrBase {
  7. private OpCode opcode;
  8. /// <summary>
  9. /// </summary>
  10. /// <param name="opcode"></param>
  11. public InstrBase (OpCode opcode)
  12. {
  13. this.opcode = opcode;
  14. }
  15. /// <summary>
  16. /// </summary>
  17. /// <param name="tok"></param>
  18. public InstrBase (InstrToken tok) : this ((OpCode)tok.Value)
  19. {
  20. }
  21. /// <summary>
  22. /// </summary>
  23. /// <param name="tok"></param>
  24. public InstrBase (ILToken tok) : this (tok as InstrToken)
  25. {
  26. }
  27. /// <summary>
  28. /// </summary>
  29. public OpCode Opcode {
  30. get {
  31. return opcode;
  32. }
  33. }
  34. /// <summary>
  35. /// </summary>
  36. /// <param name="gen"></param>
  37. public abstract void Emit (ILGenerator ilgen);
  38. }
  39. }