Kaynağa Gözat

adding src lines to compiler output

Klaas, Wilfried 6 yıl önce
ebeveyn
işleme
117923686c

+ 1 - 8
src/main/java/de/mcs/tools/sps/SPSAssembler.java

@@ -208,14 +208,7 @@ public class SPSAssembler {
     for (Class<?> outClass : outputClasses) {
       SPSOutputter annotation = outClass.getAnnotation(SPSOutputter.class);
       if (annotation.name().equalsIgnoreCase(outputFormat)) {
-        outputter = (Outputter) outClass.newInstance();
-        outputter = (Outputter) outClass.newInstance();
-        outputter = (Outputter) outClass.newInstance();
-        outputter = (Outputter) outClass.newInstance();
-        outputter = (Outputter) outClass.newInstance();
-        outputter = (Outputter) outClass.newInstance();
-        outputter = (Outputter) outClass.newInstance();
-        outputter = (Outputter) outClass.newInstance();
+        outputter = (Outputter) outClass.getConstructor().newInstance();
       }
     }
 

+ 9 - 0
src/main/java/de/mcs/tools/sps/emulator/AbstractEmulator.java

@@ -112,6 +112,15 @@ public abstract class AbstractEmulator implements Emulator {
       spsAssembler.doCompile(source);
       List<Mnemonic> mnemonics = spsAssembler.getMnemonics();
       List<Integer> lineNumbers = spsAssembler.getLines();
+      byte[] bin = new byte[mnemonics.size()];
+      int[] bin2SrcLine = new int[mnemonics.size()];
+      for (int i = 0; i < mnemonics.size(); i++) {
+        Mnemonic mnemonic = mnemonics.get(i);
+        bin[i] = (byte) mnemonic.getByte();
+        bin2SrcLine[i] = lineNumbers.get(i);
+      }
+      model.getProgram().setBin(bin);
+      model.getWork().setBin2SrcLine(bin2SrcLine);
     } catch (SyntaxError | IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();