package driver; import java.util.Stack; import source.Source; /** * Enables some functions to produce better diagnostics by providing bits of * context. */ public class Hints { /****************************************************************************/ private static Hints instance = new Hints(); /****************************************************************************/ public static Hints get() { return instance; } /****************************************************************************/ private Stack<Source> sources = new Stack<>(); /****************************************************************************/ public Source source() { return sources.isEmpty() ? null : sources.peek(); } /****************************************************************************/ public void hintSource(Source source) { sources.push(source); } /****************************************************************************/ public void endHintSource() { sources.pop(); } }