e1d3e656af4f0bfd32acd83b08b2a04b1604a7de
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / mi / parameters / BooleanClassification.java
1 package net.mograsim.machine.mi.parameters;
2
3 import net.mograsim.logic.core.types.BitVector;
4 import net.mograsim.machine.mi.parameters.MicroInstructionParameter.ParameterType;
5
6 public class BooleanClassification extends MnemonicFamily
7 {
8         String trueName, falseName;
9
10         public BooleanClassification(boolean defaultValue, String trueName, String falseName)
11         {
12                 super(defaultValue ? trueName : falseName, new MnemonicPair("X", BitVector.SINGLE_0),
13                                 new MnemonicPair(trueName, BitVector.SINGLE_1), new MnemonicPair(falseName, BitVector.SINGLE_0));
14                 this.trueName = trueName;
15                 this.falseName = falseName;
16         }
17
18         public BooleanClassification(String trueName, String falseName)
19         {
20                 super("X", new MnemonicPair("X", BitVector.SINGLE_0), new MnemonicPair(trueName, BitVector.SINGLE_1),
21                                 new MnemonicPair(falseName, BitVector.SINGLE_0));
22                 this.trueName = trueName;
23                 this.falseName = falseName;
24         }
25
26         public Mnemonic get(boolean value)
27         {
28                 return get(value ? trueName : falseName);
29         }
30
31         @Override
32         public ParameterType getExpectedType()
33         {
34                 return ParameterType.BOOLEAN_IMMEDIATE;
35         }
36
37         @Override
38         public int getExpectedBits()
39         {
40                 return 1;
41         }
42 }