@Override
	public synchronized boolean added(Program p, AddressSetView set, TaskMonitor monitor,
			MessageLog log) {

		this.program = p;
		listing = program.getListing();
		refMgr = program.getReferenceManager();

		disassemblyPoints = new AddressSet();
		secondPassPoints = new AddressSet();

		try {
			pseudoDisassembler = new PseudoDisassembler(program);
			InstructionIterator instrIter = listing.getInstructions(set, true);
			while (instrIter.hasNext()) {
				Instruction instr = instrIter.next();
				if (instr.getFlowType().isJump()) {
					if ("ADDWF".equals(instr.getMnemonicString())) {
						handleAddSwitch(instr);
					}
					else if ("MOVWF".equals(instr.getMnemonicString())) {
						handleAddSwitch(instr);
					}
				}
			}

			performFollowOnAnalysis();
		}
		finally {
			program = null;
			listing = null;
			refMgr = null;
		}

		return true;
	}
Constructor for private use.
@param program
Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/PicSwitchAnalyzer.java