public ArrayList<TokenBin> getTokenMap(boolean matchConstantsExactly, TaskMonitor monitor)
			throws CancelledException {

		int index = matchConstantsExactly ? EXACT_MATCH_CONSTANTS : NOT_EXACT_MATCH_CONSTANTS;

		if (pairing[index] == null) {
			Pinning pin = Pinning.makePinning(hfunc[0], hfunc[1], matchConstantsExactly,
				sizeCollapse, true, monitor);
			ArrayList<TokenBin> highBins = pin.buildTokenMap(markup[0], markup[1]);
			pairing[index] = new Configuration(highBins, hfunc[0], hfunc[1]);
		}

		return pairing[index].highBins;
	}
Get sets of tokens (TokenBins) that have been paired across the two functions.
The pairing can be performed either forcing constants to match, or not.
@param matchConstantsExactly is true if constants should be forced to match
@param monitor is the TaskMonitor
@return the list of TokenBins
@throws CancelledException if the user cancels the task
Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompileDataDiff.java