private void reconstructContext(SleighParserContext protoContext, SleighDebugLogger debug)
			throws MemoryAccessException {
		ParserWalker walker = new ParserWalker(protoContext);
		walker.baseState();
		while (walker.isState()) {
			Constructor ct = walker.getConstructor();
			if (ct != null) {
				int oper = walker.getOperand();
				int numoper = ct.getNumOperands();
				if (oper == 0) {		// Upon first entry to this Constructor
					ct.applyContext(walker, debug); // Apply its context changes
				}
				if (oper < numoper) {
					walker.pushOperand(oper);
					continue;
				}
			}
			walker.popOperand();
		}
	}
Reconstruct the ParserContext's internal packed context array and its list of global 
ContextSet directives by walking a previously resolved ConstructState tree

@param protoContext is the SleighParserContext containing the tree and holding the context
  results
@param debug (optional) logger for collecting information about the recovered context
@throws MemoryAccessException if memory errors occur trying to recover context
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighInstructionPrototype.java