Added machine plugin project to repository
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / isa / AsmLabel.java
1 package net.mograsim.machine.isa;\r
2 \r
3 import java.util.Objects;\r
4 \r
5 public final class AsmLabel implements AsmElement\r
6 {\r
7         private final String name;\r
8         private AsmInstruction inst;\r
9 \r
10         public AsmLabel(String name)\r
11         {\r
12                 this.name = Objects.requireNonNull(name);\r
13         }\r
14 \r
15         public String getName()\r
16         {\r
17                 return name;\r
18         }\r
19 \r
20         public void setInst(AsmInstruction inst)\r
21         {\r
22                 if (inst != null)\r
23                         throw new IllegalStateException("Instrution already set for " + name);\r
24                 this.inst = inst;\r
25         }\r
26 \r
27         @Override\r
28         public String toString()\r
29         {\r
30                 return name + ":";\r
31         }\r
32 \r
33         @Override\r
34         public int hashCode()\r
35         {\r
36                 return Objects.hash(inst, name);\r
37         }\r
38 \r
39         @Override\r
40         public boolean equals(Object obj)\r
41         {\r
42                 if (this == obj)\r
43                         return true;\r
44                 if (!(obj instanceof AsmLabel))\r
45                         return false;\r
46                 AsmLabel other = (AsmLabel) obj;\r
47                 return Objects.equals(inst, other.inst) && Objects.equals(name, other.name);\r
48         }\r
49 }\r