private QurasCode _Convert1by1(Pure.VM.OpCode code, OpCode src, NeoMethod to, byte[] data = null) { QurasCode _code = new QurasCode(); int startaddr = addr; _code.addr = addr; if (src != null) { addrconv[src.addr] = addr; _code.debugcode = src.debugcode; _code.debugline = src.debugline; _code.debugILAddr = src.addr; _code.debugILCode = src.code.ToString(); } addr++; _code.code = code; if (data != null) { _code.bytes = data; addr += _code.bytes.Length; } to.body_Codes[startaddr] = _code; return(_code); }
private QurasCode _Insert1(Pure.VM.OpCode code, string comment, NeoMethod to, byte[] data = null) { QurasCode _code = new QurasCode(); int startaddr = addr; _code.addr = addr; { _code.debugcode = comment; _code.debugline = 0; } addr++; _code.code = code; if (data != null) { _code.bytes = data; addr += _code.bytes.Length; } to.body_Codes[startaddr] = _code; return(_code); }
static int getNumber(QurasCode code) { if (code.code <= Pure.VM.OpCode.PUSHBYTES75 && code.code >= Pure.VM.OpCode.PUSHBYTES1) { return((int)new BigInteger(code.bytes)); } else if (code.code == Pure.VM.OpCode.PUSH0) { return(0); } else if (code.code == Pure.VM.OpCode.PUSH1) { return(1); } else if (code.code == Pure.VM.OpCode.PUSH2) { return(2); } else if (code.code == Pure.VM.OpCode.PUSH3) { return(3); } else if (code.code == Pure.VM.OpCode.PUSH4) { return(4); } else if (code.code == Pure.VM.OpCode.PUSH5) { return(5); } else if (code.code == Pure.VM.OpCode.PUSH6) { return(6); } else if (code.code == Pure.VM.OpCode.PUSH7) { return(7); } else if (code.code == Pure.VM.OpCode.PUSH8) { return(8); } else if (code.code == Pure.VM.OpCode.PUSH9) { return(9); } else if (code.code == Pure.VM.OpCode.PUSH10) { return(10); } else if (code.code == Pure.VM.OpCode.PUSH11) { return(11); } else if (code.code == Pure.VM.OpCode.PUSH12) { return(12); } else if (code.code == Pure.VM.OpCode.PUSH13) { return(13); } else if (code.code == Pure.VM.OpCode.PUSH14) { return(14); } else if (code.code == Pure.VM.OpCode.PUSH15) { return(15); } else if (code.code == Pure.VM.OpCode.PUSH16) { return(16); } else if (code.code == Pure.VM.OpCode.PUSHDATA1) { return(pushdata1bytes2int(code.bytes)); } else { throw new Exception("not support getNumber From this:" + code.ToString()); } }