public static AbstractMsSymbol parse(AbstractPdb pdb, PdbByteReader reader)
			throws PdbException, CancelledException {
		Objects.requireNonNull(pdb, "pdb cannot be null");
		int symbolTypeId = reader.parseUnsignedShortVal();
		AbstractMsSymbol symbol;
		try {
			symbol = parseRecord(pdb, symbolTypeId, reader);
		}
		catch (PdbException e) {
			symbol = new BadMsSymbol(pdb, symbolTypeId);
		}
		return symbol;
	}
Deserializes an {@link AbstractMsSymbol} from the {@link PdbByteReader} and returns it.
@param pdb {@link AbstractPdb} that owns the Symbols to be parsed.
@param reader {@link PdbByteReader} from which to deserialize the symbol record.
@return {@link AbstractMsSymbol} that was parsed.
@throws PdbException upon error parsing a field.
@throws CancelledException Upon user cancellation.
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/SymbolParser.java