public static Set<PcodeOp> getForwardSliceToPCodeOps(Varnode seed) {
		Set<Varnode> varnodes = new HashSet<>();
		Set<PcodeOp> pcodeops = new HashSet<>();
		List<Varnode> worklist = new ArrayList<>();
		worklist.add(seed);

		for (int i = 0; i < worklist.size(); i++) {

			Varnode curvn = worklist.get(i);
			if (!varnodes.add(curvn)) {
				continue; // already processed
			}

			Iterator<PcodeOp> it = curvn.getDescendants();
			while (it.hasNext()) {
				PcodeOp op = it.next();
				if (op == null) {
					continue;
				}

				pcodeops.add(op);
				curvn = op.getOutput();
				if (curvn == null) {
					continue;
				}
				if (op.getOpcode() == PcodeOp.CALL) {
					continue;
				}
				if (op.getOpcode() == PcodeOp.CALLIND) {
					continue;
				}

				worklist.add(curvn);
			}
		}
		return pcodeops;
	}
Construct the set of varnodes making up a simple forward slice of seed
@param seed Varnode where the slice starts
@return set of Varnodes in the slice
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/component/DecompilerUtils.java