static public AssignAction restoreActionXml(XmlPullParser parser, ParamListStandard res)
			throws XmlParseException {
		AssignAction action;
		XmlElement elemId = parser.peek();
		String nm = elemId.getName();
		if (nm.equals(ELEM_GOTO_STACK.name())) {
			action = new GotoStack(res, 0);
		}
		else if (nm.equals(ELEM_JOIN.name())) {
			action = new MultiSlotAssign(res);
		}
		else if (nm.equals(ELEM_CONSUME.name())) {
			action = new ConsumeAs(StorageClass.GENERAL, res);
		}
		else if (nm.equals(ELEM_CONVERT_TO_PTR.name())) {
			action = new ConvertToPointer(res);
		}
		else if (nm.equals(ELEM_HIDDEN_RETURN.name())) {
			action = new HiddenReturnAssign(res, HIDDENRET_SPECIALREG);
		}
		else if (nm.equals(ELEM_JOIN_PER_PRIMITIVE.name())) {
			boolean consumeMostSig = res.getEntry(0).isBigEndian();
			action = new MultiMemberAssign(StorageClass.GENERAL, false, consumeMostSig, res);
		}
		else if (nm.equals(ELEM_JOIN_DUAL_CLASS.name())) {
			action = new MultiSlotDualAssign(res);
		}
		else {
			throw new XmlParseException("Unknown model rule action: " + nm);
		}
		action.restoreXml(parser);
		return action;
	}
Read the next action element from the stream and return the new configured
AssignAction object.  If the next element is not an action, throw an exception.
@param parser is the stream parser
@param res is the resource set for the new action
@return the new action
@throws XmlParseException for problems parsing the stream
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/protorules/AssignAction.java