protected void parseNewBlock(Address address, RegisterValue context) {
		/**
		 * Parse as few instructions as possible. If more are returned, it's because they form a
		 * parallel instruction group. In that case, I should not have to worry self-modifying code
		 * within that group, so no need to re-disassemble after each is executed.
		 */
		block = disassembler.pseudoDisassembleBlock(
			state.getConcreteBuffer(address, Purpose.DECODE), context, 1);
		if (block == null || block.isEmpty()) {
			throw new DecodePcodeExecutionException(lastMsg, address);
		}
		instruction = (PseudoInstruction) block.getInstructionAt(address);
	}
Construct a Sleigh instruction decoder

@see DefaultPcodeThread#createInstructionDecoder(PcodeExecutorState)
@param language the language to decoder
@param state the state containing the target program, probably the shared state of the p-code
           machine. It must be possible to obtain concrete buffers on this state.
@see DefaultPcodeThread#createInstructionDecoder(PcodeExecutorState)
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/SleighInstructionDecoder.java