EExpr
From Erights
A parsed Kernel-E expression.
Protocol
compile/1
- Signature: compile(env :Scope) :CompiledE
Compile the expression to an internal form (currently transformed E, but could be Java bytecode). The result is a Thunk which can be invoked to evaluate the code in the given environment.
The CompiledE is also useful if you want to debug the optimiser:
? def expr := e`def double (x) { return 2*x }`
# value: e`def double {
#
# method run(x) {
# escape __return {
# __return.run(2.multiply(x))
# null
# }
# }
# }`
? expr.compile(safeScope)
# value: compiled-e`def double {
#
# method run(x) {
# 2.multiply(x)
# }
# }`
eval/1
- Signature: eval(env :Scope) :any
Convenience method to compile and evaluate the expression in one go.

