All Classes and Interfaces
Class
Description
Array access like
x[3] or x['foo']assert exp : msg;
Assignment operator
exp=rhs
TODO: tuple assignmentAttribute access expression like
foo.@bar, which is an l-value.AST Node of Groovy for CPS execution.
Env for a new block."break" statement to exit a loop.
Builder pattern for constructing
Blocks into a tree.As a crude way to distinguish asynchronous caller vs synchronous caller,
remember the method call about to happen so that the callee can check
if it is invoked by asynchronous caller or not.
Block that has CallSiteTags.Default implementation of
CallSiteBlock.Marker interface for objects that add metadata to call sites.
Catch block in a try/catch statement.
Closure instantiation: { ...
Turns a list of
Block into a collection object.Constant value.
Mutable representation of the program.
Represents the remaining computation that receives the result of
Block.Singleton implementation that maintains the singleton-ness across serialization
"continue" statement to repeat a loop.
A serializable equivalent of
BooleanClosureWrapper, where the
BooleanReturningMethodInvoker is instantiated when CpsBooleanClosureWrapper.call(Object...) is called to avoid serialization
issues with that as well.Common part of
CpsFunction and CpsClosureDef, which represents something that's invokable.When an CPS-interpreted method is invoked, it immediately throws this error
to signal that the method execution needs to be interpreted.
Closure whose code is CPS-transformed.Represents a CPS-transformed function.
Performs CPS transformation of Groovy methods.
Invoker that performs the expected operation without anything extra.do { ...
x ?: y
Represents an environment in which
Block is evaluated.Utility factory methods for
Env."++x", "--x", "x++", or "x--" operator.
for (Type var in col) { ...
for (e1; e2; e3) { ...
lhs.name(arg,arg,...)
if (...) { ...
Abstracts away interactions with Groovy objects, for example to provide an opportunity to intercept
calls.
Resolves the current
Env.closureOwner() value.[a,b,c,d] to list.
Access to local variables and method parameters.
Logical operator (
&& and ||)Represents a variable that's assignable, which is produced
by evaluating
LValueBlock, such as "x[y]"Base class for
Block that can come to the left hand side of an assignment, aka "l-value"
Subtypes implement LValueBlock.evalLValue(Env, Continuation) that computes LValue object,
which provides read/write access.[a:b, c:d, e:f, ...]
Triplet of source file / declaring class / method name.
Method pointer expression:
LHS&.methodNameMulti-dimensional array instantiation like
new String[1][2][3]Remaining computation to execute.
Exclude a marked method from CPS transformation.
!b
ObjectInputStream with a custom ClassLoader.Result of an evaluation.
Property access expression like
foo.bar, which is an l-value.CpsTransformer + SandboxTransformerInvoker that goes through the groovy-sandbox GroovyInterceptor,
so that interactions with Groovy objects can be inspected.exp1; exp2
Represents a specific location of the source file.
Handles
SpreadExpression similarly to the way that SpreadMapBlock handles SpreadMapExpression,
but with a groovy-cps-specific SpreadBlock.SpreadList marker class.Gets a value from local variable and removes it.
switch/case statement.
Switches that affect the behaviour of
CpsTransformerCallSiteTag to instruct SandboxInvoker that this code is trusted and will bypass sandbox check.Environment for evaluating the body of a try/catch block.
CallSiteTag to instruct SandboxInvoker that this code is untrusted and should be under sandbox check.while(...) { ...
Used internally to designate methods that were actually CPS-transformed.
Yield a value and suspend the execution of the program.