public static PcodeExpression compileExpression(PcodeParser parser, SleighLanguage language,
			String expression) {
		Map<Integer, UserOpSymbol> symbols = PcodeExpression.CAPTURING.getSymbols(language);
		addParserSymbols(parser, symbols);

		ConstructTpl template = compileTemplate(language, parser, EXPRESSION_SOURCE_NAME,
			PcodeExpression.RESULT_NAME + "(" + expression + ");");
		return constructProgram(PcodeExpression::new, language, template, symbols);
	}
Compile the given Sleigh expression into a p-code program that can evaluate it, using the
given parser

<p>
TODO: Currently, expressions cannot be compiled for a user-supplied userop library. The
evaluator p-code program uses its own library as a means of capturing the result; however,
userop libraries are easily composed. It should be easy to add that feature if needed.

@param parser a parser for the given language
@param language the language of the target p-code machine
@param expression the Sleigh expression to be evaluated
@return a p-code program whose {@link PcodeExpression#evaluate(PcodeExecutor)} method will
        evaluate the expression on the given executor and its state.
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/SleighProgramCompiler.java