public void makeNGrams(int numNGrams) {
		int sourceSize = (numNGrams - 1) / 2 + 1;
		for (int i = 0; i < sourceSize; ++i) {
			for (CtrlVertex node : nodeList) {
				node.nextNGramSource(i);		// Construct (n+1)-gram from existing n-gram	
			}
		}
		for (CtrlVertex node : nodeList) {
			node.nextNGramSink(0);				// Produces index = (sourceSize + 1)
		}
		for (int i = sourceSize + 1; i < numNGrams - 1; ++i) {
			for (CtrlVertex node : nodeList) {
				node.nextNGramSink(i);
			}
		}
	}
Populate n-gram lists for every node.  We generate two types of n-grams.  One walking
back from the root through sources, and the other walking forward from the root through sinks.
@param numNGrams is the number of n-grams to generate per node
Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlGraph.java