1 package net.mograsim.machine;
3 import java.util.Collections;
4 import java.util.HashMap;
5 import java.util.HashSet;
9 public abstract class StandardRegister implements Register
11 private final String id;
12 private final Set<String> names;
13 private final int width;
14 private final Map<String, Integer> widthForAliases;
16 public StandardRegister(String id, Set<String> names, int width, Map<String, Integer> widthForAliases)
19 this.names = Collections.unmodifiableSet(new HashSet<>(names));
21 this.widthForAliases = Collections.unmodifiableMap(new HashMap<>(widthForAliases));
31 public Set<String> names()
43 public int getWidth(String name)
45 return widthForAliases.getOrDefault(name, width);