public final class MacroLibGroovyMethods
extends Object
Macro library helpers for string and named-value expansion.
| Type Params | Return Type | Name and description |
|---|---|---|
|
public static Expression |
DO(MacroContext ctx, Expression exps)Monadic comprehension macro ( DO). |
|
public static Object |
DO(Object self, Object args)Runtime stub for DO(MacroContext, Expression...). |
|
public static Expression |
NV(MacroContext ctx, Expression exp)Builds a NamedValue expression from the supplied expression. |
<T> |
public static NamedValue<T> |
NV(Object self, T arg)Runtime stub for NV(MacroContext, Expression). |
|
public static Expression |
NVL(MacroContext ctx, Expression exps)Builds a list of NamedValue expressions from the supplied expressions. |
<T> |
public static List<NamedValue<T>> |
NVL(Object self, T args)Runtime stub for NVL(MacroContext, Expression...). |
|
public static Expression |
SV(MacroContext ctx, Expression exps)Builds a GString expression that labels each supplied expression with its source text. |
|
public static GString |
SV(Object self, Object args)Runtime stub for SV(MacroContext, Expression...). |
|
public static Expression |
SVD(MacroContext ctx, Expression exps)Builds a GString expression that labels each supplied expression with its dumped value. |
|
public static GString |
SVD(Object self, Object args)Runtime stub for SVD(MacroContext, Expression...). |
|
public static Expression |
SVI(MacroContext ctx, Expression exps)Builds a GString expression that labels each supplied expression with its inspected value. |
|
public static GString |
SVI(Object self, Object args)Runtime stub for SVI(MacroContext, Expression...). |
Monadic comprehension macro (DO). Rewrites a comma-separated list of
name in expression generators followed by a body closure into a nested
chain of Comprehensions.bind calls — the do-notation desugaring:
DO(x in m1, y in f(x)) { body }
==>
Comprehensions.bind(m1) { x -> Comprehensions.bind(f(x)) { y -> body } }
Every generator becomes a bind; the body is the innermost closure body and
must itself yield a carrier value (the do-notation rule — no implicit
lifting). Carrier-specific bind dispatch is deferred to runtime
(Comprehensions) because macros expand before type checking.
ctx - the current macro contextexps - the generators (each name in expression) followed by the body closureRuntime stub for DO(MacroContext, Expression...).
self - the receiverargs - the runtime valuesBuilds a NamedValue expression from the supplied expression.
ctx - the current macro contextexp - the expression to wrapRuntime stub for NV(MacroContext, Expression).
self - the receiverarg - the runtime valueT - the value typeBuilds a list of NamedValue expressions from the supplied expressions.
ctx - the current macro contextexps - the expressions to wrapRuntime stub for NVL(MacroContext, Expression...).
self - the receiverargs - the runtime valuesT - the value typeBuilds a GString expression that labels each supplied expression with its source text.
ctx - the current macro contextexps - the expressions to interpolateRuntime stub for SV(MacroContext, Expression...).
self - the receiverargs - the interpolated valuesBuilds a GString expression that labels each supplied expression with its dumped value.
ctx - the current macro contextexps - the expressions to dumpRuntime stub for SVD(MacroContext, Expression...).
self - the receiverargs - the interpolated valuesBuilds a GString expression that labels each supplied expression with its inspected value.
ctx - the current macro contextexps - the expressions to inspectRuntime stub for SVI(MacroContext, Expression...).
self - the receiverargs - the interpolated values