package net.mograsim.machine.mi.parameters;
+import net.mograsim.logic.core.types.BitVector;
import net.mograsim.machine.mi.parameters.MicroInstructionParameter.ParameterType;
-public class BooleanClassification implements ParameterClassification
+public class BooleanClassification extends MnemonicFamily
{
+ String trueName, falseName;
+
+ public BooleanClassification(boolean defaultValue, String trueName, String falseName)
+ {
+ super(defaultValue ? trueName : falseName, new MnemonicPair(trueName, BitVector.SINGLE_1),
+ new MnemonicPair(falseName, BitVector.SINGLE_0));
+ this.trueName = trueName;
+ this.falseName = falseName;
+ }
+
+ public Mnemonic get(boolean value)
+ {
+ return get(value ? trueName : falseName);
+ }
+
@Override
public ParameterType getExpectedType()
{
{
return 1;
}
-
- @Override
- public BooleanImmediate parse(String toParse)
- {
- return new BooleanImmediate("H".equals(toParse));
- }
}