@Override
	public void decode(Decoder decoder, PcodeFactory pfactory) throws DecoderException {
		for (;;) {
			int attribId = decoder.getNextAttributeId();
			if (attribId == 0) {
				break;
			}
			if (attribId == AttributeId.ATTRIB_OPEN.id()) {
				open = (int) decoder.readSignedInteger();
			}
			else if (attribId == AttributeId.ATTRIB_CLOSE.id()) {
				close = (int) decoder.readSignedInteger();
			}
		}
		decoder.rewindAttributes();
		super.decode(decoder, pfactory);
	}
A source code token which is not an operation, variable, function name, or type. Like '(' or ','.
A SyntaxToken may be or may include spacing.  As a special case, the token can be part of
an enclosing pair of tokens, as with '(' and ')' or '{' and '}'. In this case, the token
is either opening or closing and contains an id that matches it with its pair token.
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/ClangSyntaxToken.java