public void parseInject(InjectPayload payload) throws SleighException {

		String sourceName = payload.getSource();
		if (sourceName == null) {
			sourceName = "unknown";
		}
		if (!(payload instanceof InjectPayloadSleigh)) {
			return;
		}
		InjectPayloadSleigh payloadSleigh = (InjectPayloadSleigh) payload;
		String pcodeText = payloadSleigh.releaseParseString();
		if (pcodeText == null) {
			return;			// Dynamic p-code generation, or already parsed
		}

		PcodeParser parser = new PcodeParser(language, uniqueBase);
		Location loc = new Location(sourceName, 1);
		InjectParameter[] input = payload.getInput();
		for (InjectParameter element : input) {
			parser.addOperand(loc, element.getName(), element.getIndex());
		}
		InjectParameter[] output = payload.getOutput();
		for (InjectParameter element : output) {
			parser.addOperand(loc, element.getName(), element.getIndex());
		}
		ConstructTpl constructTpl = parser.compilePcode(pcodeText, sourceName, 1);

		uniqueBase = parser.getNextTempOffset();

		payloadSleigh.setTemplate(constructTpl);
	}
Convert the XML string representation of the given payload to a ConstructTpl
The payload should be unattached (not already installed in the library)
@param payload is the given payload whose XML should be converted
@throws SleighException if there is any parsing issue
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/PcodeInjectLibrary.java