8ff21f49ba407f64cd82107c6c4ed74220367b51
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / AsmOps.java
1 package net.mograsim.plugin;
2
3 import java.util.Collection;
4 import java.util.HashSet;
5 import java.util.Set;
6 import java.util.function.Consumer;
7
8 public class AsmOps
9 {
10         public static Set<String> ops = new HashSet<>();
11         public static Set<Consumer<Set<String>>> listeners = new HashSet<>();
12
13         static
14         {
15                 ops.add("add");
16                 ops.add("mul");
17                 ops.add("mov");
18                 ops.add("inc");
19         }
20
21         public static void setWords(Collection<String> s)
22         {
23                 if (ops.size() == s.size() && ops.containsAll(s))
24                         return;
25                 ops.clear();
26                 ops.addAll(s);
27                 update();
28         }
29
30         public static void addListener(Consumer<Set<String>> con)
31         {
32                 listeners.add(con);
33                 con.accept(ops);
34         }
35
36         public static void removeListener(Consumer<Set<String>> con)
37         {
38                 listeners.remove(con);
39         }
40
41         public static void update()
42         {
43                 listeners.forEach(c -> c.accept(ops));
44         }
45 }