@Override
	public void decode(Decoder decoder, SleighLanguage sleigh) throws DecoderException {
//		int el = decoder.openElement(ELEM_NAME_SYM);
		patval = (PatternValue) PatternExpression.decodeExpression(decoder, sleigh);
		ArrayList<String> names = new ArrayList<>();
		while (decoder.peekElement() == ELEM_NAMETAB.id()) {
			decoder.openElement();
			int attrib = decoder.getNextAttributeId();
			if (attrib == ATTRIB_NAME.id()) {
				names.add(decoder.readString());
			}
			else {
				names.add(null);
			}
			decoder.closeElement(ELEM_NAMETAB.id());
		}
		nametable = new String[names.size()];
		for (int i = 0; i < nametable.length; ++i) {
			nametable[i] = names.get(i);
		}
		checkTableFill();
		decoder.closeElement(ELEM_NAME_SYM.id());
	}
A ValueSymbol whose printing aspect is determined by looking
up the context value of the symbol in a table of strings
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/symbol/NameSymbol.java