コード例 #1
0
ファイル: Instruction.java プロジェクト: lhyqie/noesis
  @Override
  protected void outputLocalInfo(XmlWriter writer) {
    super.outputLocalInfo(writer);

    // Opcode

    if (opcode != null) writer.write("code", opcode.getID());

    // Label

    if (label != null) writer.write("label", label);

    // Immediate operands

    if (reference != null) reference.output(writer);

    if ((targets == null) && (operand != null)) writer.write(operand);

    // Switch-like instructions

    if ((targets != null) && (targets.size() > 0)) {

      ReadOnlyCollection<Integer> labels = targets.keys();

      for (int key : labels) {
        writer.start("target");
        writer.write("key", key);
        writer.write(targets.get(key));
        writer.end("target");
      }

      if (operand != null) {
        writer.start("default");
        writer.write(operand);
        writer.end("default");
      }
    }
  }
コード例 #2
0
ファイル: Instruction.java プロジェクト: lhyqie/noesis
 public void removeTarget(int key) {
   targets.remove(key);
 }
コード例 #3
0
ファイル: Instruction.java プロジェクト: lhyqie/noesis
 public int getTargetCount() {
   if (targets != null) return targets.size();
   else return 0;
 }
コード例 #4
0
ファイル: Instruction.java プロジェクト: lhyqie/noesis
  public void addTarget(int key, String target) {
    if (targets == null) targets = new DynamicDictionary<Integer, String>();

    targets.set(key, target);
  }
コード例 #5
0
ファイル: Instruction.java プロジェクト: lhyqie/noesis
 public String getTarget(int key) {
   return targets.get(key);
 }