@Override
	public void decode(Decoder decoder, SleighLanguage lang) throws DecoderException {
//		int el = decoder.openElement(ELEM_OPERAND_SYM);
		defexp = null;
		triple = null;
		codeaddress = false;
		int attrib = decoder.getNextAttributeId();
		while (attrib != 0) {
			if (attrib == ATTRIB_INDEX.id()) {
				hand = (int) decoder.readSignedInteger();
			}
			else if (attrib == ATTRIB_OFF.id()) {
				reloffset = (int) decoder.readSignedInteger();
			}
			else if (attrib == ATTRIB_BASE.id()) {
				offsetbase = (int) decoder.readSignedInteger();
			}
			else if (attrib == ATTRIB_MINLEN.id()) {
				minimumlength = (int) decoder.readSignedInteger();
			}
			else if (attrib == ATTRIB_SUBSYM.id()) {
				int id = (int) decoder.readUnsignedInteger();
				triple = (TripleSymbol) lang.getSymbolTable().findSymbol(id);
			}
			else if (attrib == ATTRIB_CODE.id()) {
				codeaddress = decoder.readBool();
			}
			attrib = decoder.getNextAttributeId();
		}

		localexp = (OperandValue) PatternExpression.decodeExpression(decoder, lang);
		if (decoder.peekElement() != 0) {
			defexp = PatternExpression.decodeExpression(decoder, lang);
		}
		decoder.closeElement(ELEM_OPERAND_SYM.id());
	}
Variable representing an operand to a specific Constructor
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/symbol/OperandSymbol.java