public static Address parseAddress(Program program, String addressString) {
		Address[] addrs = program.parseAddress(addressString);
		if (addrs != null && addrs.length > 0) {
			return addrs[0];
		}
		String stackPrefix = "Stack[";
		if (addressString.startsWith(stackPrefix)) {
			String offsetString =
				addressString.substring(stackPrefix.length(), addressString.length() - 1);
			try {
				long offset = NumericUtilities.parseLong(offsetString);
				return program.getAddressFactory().getStackSpace().getAddress(offset);
			}
			catch (NumberFormatException e) {
				return null;
			}
		}
		return null;

	}
Returns an iterator for all of the {@link Program} objects in the system, which is all
created programs in any state that have not been garbage collected.  
<p>
<b>Note:</b>The Iterator is backed by an unmodifiable set, so any attempts to modify the
Iterator will throw an {@link UnsupportedOperationException}.
@return an iterator for all of the programs in the system
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/ProgramUtilities.java