public VectorSTL<OpTpl> newOutput(Location location, boolean usesLocalKey, ExprTree rhs,
			String varname, int size) {
		entry("newOutput", location, rhs, varname, size);
		VarnodeSymbol sym;
		VarnodeTpl tmpvn = buildTemporary(location);
		if (size != 0) {
			tmpvn.setSize(new ConstTpl(ConstTpl.const_type.real, size)); // Size
		}
		else if ((rhs.getSize().getType() == ConstTpl.const_type.real) &&
			(rhs.getSize().getReal() != 0)) {
			tmpvn.setSize(rhs.getSize()); // Inherit size from unnamed
		}
		// expression result
		// Only inherit if the size is real, otherwise we
		// cannot build the VarnodeSymbol with a placeholder constant
		rhs.setOutput(location, tmpvn);
		// Create new symbol regardless
		sym = new VarnodeSymbol(location, varname, tmpvn.getSpace().getSpace(),
			tmpvn.getOffset().getReal(), (int) tmpvn.getSize().getReal());
		addSymbol(sym);
		if ((!usesLocalKey) && enforceLocalKey) {
			reportError(location, "Must use 'local' keyword to define symbol '" + varname + "'");
		}
		return ExprTree.toVector(rhs);
	}
Handle a sleigh 'macro' invocation, returning the resulting p-code op templates (OpTpl)

@param location is the file/line where the macro is invoked
@param sym MacroSymbol is the macro symbol
@param param is the parsed list of operand expressions
@return a list of p-code op templates
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/slgh_compile/PcodeCompile.java