The final restructured version for automatic build using maven tycho
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / isa / AsmIntegerOperand.java
diff --git a/net.mograsim.machine/src/net/mograsim/machine/isa/AsmIntegerOperand.java b/net.mograsim.machine/src/net/mograsim/machine/isa/AsmIntegerOperand.java
deleted file mode 100644 (file)
index d3ac80f..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-package net.mograsim.machine.isa;
-
-import java.math.BigInteger;
-
-import net.mograsim.logic.core.types.Bit;
-import net.mograsim.logic.core.types.BitVector;
-import net.mograsim.logic.core.types.BitVector.BitVectorMutator;
-import net.mograsim.machine.isa.types.AsmNumberFormatException;
-
-public class AsmIntegerOperand implements AsmOperand
-{
-       private final int size;
-
-       public AsmIntegerOperand(int size)
-       {
-               this.size = size;
-       }
-
-       @Override
-       public int getSize()
-       {
-               return size;
-       }
-
-       @Override
-       public BitVector parse(String s) throws AsmNumberFormatException
-       {
-               String cleaned = s.replace("_", "").toLowerCase();
-               int len = cleaned.length();
-               BigInteger res;
-               try
-               {
-                       if (cleaned.startsWith("0x"))
-                               res = new BigInteger(cleaned.substring(2), 16);
-                       else if (cleaned.endsWith("h"))
-                               res = new BigInteger(cleaned.substring(0, len - 1), 16);
-                       else if (cleaned.startsWith("0b"))
-                               res = new BigInteger(cleaned.substring(2), 2);
-                       else if (cleaned.endsWith("b"))
-                               res = new BigInteger(cleaned.substring(2), 2);
-                       else if (cleaned.endsWith("q"))
-                               res = new BigInteger(cleaned.substring(0, len - 1), 8);
-                       else
-                               res = new BigInteger(cleaned);
-               }
-               catch (NumberFormatException e)
-               {
-                       throw new AsmNumberFormatException(e, "Error parsing %s: no valid integer format", s);
-               }
-               return bigIntToBitVector(res);
-       }
-
-       BitVector bigIntToBitVector(BigInteger bi) throws AsmNumberFormatException
-       {
-               int bitLength = bi.bitLength() - (bi.signum() - 1) / 2;
-               if (bitLength > size)
-                       throw new AsmNumberFormatException("Error parsing %s: bit count %d exceeds size %d", bi, bitLength, size);
-               BitVectorMutator bvm = BitVectorMutator.ofLength(size);
-               for (int i = 0; i < size; i++)
-                       bvm.setLSBit(i, Bit.of(bi.testBit(i)));
-               return bvm.toBitVector();
-       }
-
-       public static void main(String[] args) throws AsmNumberFormatException
-       {
-               AsmIntegerOperand aio = new AsmIntegerOperand(4);
-               System.out.println(aio.parse("0"));
-               System.out.println(aio.parse("1"));
-               System.out.println(aio.parse("2"));
-               System.out.println(aio.parse("3"));
-               System.out.println(aio.parse("4"));
-               System.out.println(aio.parse("5"));
-               System.out.println(aio.parse("6"));
-               System.out.println(aio.parse("7"));
-               System.out.println(aio.parse("8"));
-               System.out.println(aio.parse("9"));
-               System.out.println(aio.parse("10"));
-               System.out.println(aio.parse("11"));
-               System.out.println(aio.parse("12"));
-               System.out.println(aio.parse("13"));
-               System.out.println(aio.parse("14"));
-               System.out.println(aio.parse("15"));
-//             System.out.println(aio.parse("16"));
-               System.out.println(aio.parse("-0"));
-               System.out.println(aio.parse("-1"));
-               System.out.println(aio.parse("-2"));
-               System.out.println(aio.parse("-3"));
-               System.out.println(aio.parse("-4"));
-               System.out.println(aio.parse("-5"));
-               System.out.println(aio.parse("-6"));
-               System.out.println(aio.parse("-7"));
-               System.out.println(aio.parse("-8"));
-//             System.out.println(aio.parse("-9"));
-       }
-}