In ilasm/tests:
[mono.git] / mcs / ilasm / codegen / InstrBase.cs
1 // InstrBase.cs\r
2 // (C) Sergey Chaban (serge@wildwestsoftware.com)\r
3 \r
4 using System;\r
5 using System.Reflection.Emit;\r
6 \r
7 namespace Mono.ILASM {\r
8 \r
9         public abstract class InstrBase {\r
10 \r
11                 private OpCode opcode;\r
12 \r
13                 /// <summary>\r
14                 /// </summary>\r
15                 /// <param name="opcode"></param>\r
16                 public InstrBase (OpCode opcode)\r
17                 {\r
18                         this.opcode = opcode;\r
19                 }\r
20 \r
21                 /// <summary>\r
22                 /// </summary>\r
23                 /// <param name="tok"></param>\r
24                 public InstrBase (InstrToken tok) : this ((OpCode)tok.Value)\r
25                 {\r
26                 }\r
27 \r
28 \r
29                 /// <summary>\r
30                 /// </summary>\r
31                 /// <param name="tok"></param>\r
32                 public InstrBase (ILToken tok) : this (tok as InstrToken)\r
33                 {\r
34                 }\r
35 \r
36 \r
37                 /// <summary>\r
38                 /// </summary>\r
39                 public OpCode Opcode {\r
40                         get {\r
41                                 return opcode;\r
42                         }\r
43                 }\r
44 \r
45 \r
46                 /// <summary>\r
47                 /// </summary>\r
48                 /// <param name="gen"></param>\r
49                 public abstract void Emit (ILGenerator ilgen, Class host);\r
50         }\r
51 }\r