public static PcodeOp decode(Decoder decoder, PcodeFactory pfact) throws DecoderException {
		int el = decoder.openElement(ELEM_OP);
		int opc = (int) decoder.readSignedInteger(ATTRIB_CODE);
		SequenceNumber seqnum = SequenceNumber.decode(decoder);
		Varnode output = Varnode.decode(decoder, pfact);
		ArrayList<Varnode> inputlist = new ArrayList<>();
		for (;;) {
			int subel = decoder.peekElement();
			if (subel == 0) {
				break;
			}
			Varnode vn = Varnode.decode(decoder, pfact);
			inputlist.add(vn);
		}
		PcodeOp res = pfact.newOp(seqnum, opc, inputlist, output);
		decoder.closeElement(el);
		return res;
	}
Decode p-code from a stream

@param decoder is the stream decoder
@param pfact factory used to create p-code correctly

@return new PcodeOp
@throws DecoderException if encodings are invalid
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeOp.java