public static ClangHighlightController dummyIfNull(ClangHighlightController c) {
		if (c == null) {
			return new NullClangHighlightController();
		}
		return c;
	}
Class to handle highlights for a decompiled function.

<p>This class does not paint directly.  Rather, this class tracks the currently highlighted
tokens and then sets the highlight color on the token when it is highlighted and clears the
highlight color when the highlight is removed.

<p>This class maintains the following types of highlights:
<UL>
	<LI>Context Highlights - triggered by user clicking and some user actions; considered transient
 	and get cleared whenever the location changes.  These highlights show state such as the
		current field, impact of a variable (via a slicing action), or related syntax (such as
		matching braces)
 </LI>
 <LI>Secondary Highlights - triggered by the user to show all occurrences of a particular
 	variable; they will stay until they are manually cleared by a user action.  The user can
 	apply multiple secondary highlights at the same time, with different colors for each
 	highlight.
  	<B>These highlights apply to the function in use when the highlight is created.  Thus,
 	each function has a unique set of highlights that is maintained between decompilation.</B>
 </LI>
 <LI>Service Highlights - triggered by clients of the {@link DecompilerHighlightService}; they
 	will be stored in this class until the client of the service clears the highlight.  These
     can be global (applied to all functions) or specific to a given function.  Each user 
     highlight will be called to generate highlights when a function is first decompiled.
 </LI>
</UL>

<p>When multiple highlights overlap, their colors will be blended.
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/component/ClangHighlightController.java