Example #1
0
 string getOperandString(Instruction instr)
 {
     if (instr.Operand is Instruction)
         return getLabel((Instruction)instr.Operand);
     else if (instr.Operand is Instruction[]) {
         var sb = new StringBuilder();
         var targets = (Instruction[])instr.Operand;
         for (int i = 0; i < targets.Length; i++) {
             if (i > 0)
                 sb.Append(',');
             sb.Append(getLabel(targets[i]));
         }
         return sb.ToString();
     }
     else if (instr.Operand is string)
         return Utils.toCsharpString((string)instr.Operand);
     else if (instr.Operand is ParameterDefinition) {
         var arg = (ParameterDefinition)instr.Operand;
         var s = instr.GetOperandString();
         if (s != "")
             return s;
         return string.Format("<arg_{0}>", DotNetUtils.getArgIndex(method, arg));
     }
     else
         return instr.GetOperandString();
 }