Finished MPROM support. Fixes #10
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / standard / memory / MainMemoryParser.java
diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/standard/memory/MainMemoryParser.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/standard/memory/MainMemoryParser.java
deleted file mode 100644 (file)
index c3b0d68..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-package net.mograsim.machine.standard.memory;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
-
-import net.mograsim.logic.core.types.BitVector;
-import net.mograsim.machine.MainMemory;
-import net.mograsim.machine.MainMemoryDefinition;
-
-public class MainMemoryParser
-{
-       private final static String lineSeparator = System.getProperty("line.separator");
-
-       public static void parseMemory(final MainMemory memory, String inputPath) throws IOException
-       {
-               try (InputStream input = new FileInputStream(inputPath))
-               {
-                       parseMemory(memory, input);
-               }
-       }
-
-       /**
-        * @param input The input to parse must be in csv format; The stream is closed after being consumed.
-        * 
-        * @throws IOException
-        */
-       public static MainMemory parseMemory(MainMemoryDefinition memDef, InputStream input) throws IOException
-       {
-               try
-               {
-                       MainMemory memory = new WordAddressableMemory(memDef);
-                       parseMemory(memory, input);
-                       return memory;
-               }
-               catch (NullPointerException e)
-               {
-                       throw new MainMemoryParseException(e);
-               }
-       }
-
-       /**
-        *
-        * @param input The input to parse must be in csv format; The stream is closed after being consumed.
-        * 
-        * @throws IOException
-        */
-       public static void parseMemory(final MainMemory memory, InputStream input) throws IOException
-       {
-               try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)))
-               {
-                       MainMemoryDefinition def = memory.getDefinition();
-
-                       long minAddr = def.getMinimalAddress();
-                       long maxAddr = def.getMaximalAddress();
-
-                       String line;
-                       long i = minAddr;
-                       try
-                       {
-                               for (; i <= maxAddr && reader.ready() && !"".equals((line = reader.readLine())); i++)
-                               {
-                                       memory.setCell(i, BitVector.parseBitstring(line));
-                               }
-                       }
-                       catch (IOException e)
-                       {
-                               e.printStackTrace();
-                       }
-               }
-       }
-
-       public static InputStream write(MainMemory memory)
-       {
-               return new InputStream()
-               {
-                       long instIndex = memory.getDefinition().getMinimalAddress(), maxAddress = memory.getDefinition().getMaximalAddress();
-                       InputStream instStream = new ByteArrayInputStream(new byte[0]);
-
-                       @Override
-                       public int read() throws IOException
-                       {
-                               int val = instStream.read();
-                               if (val == -1 && instIndex <= maxAddress)
-                               {
-                                       instStream = new ByteArrayInputStream(
-                                                       (memory.getCell(instIndex++).toBitstring() + lineSeparator).getBytes(StandardCharsets.UTF_8));
-                                       val = instStream.read();
-                               }
-                               return val;
-                       }
-               };
-       }
-}