public final class ClosureExpression extends ContextReferencingExpression
Modifier and Type | Class and Description |
---|---|
static class |
ClosureExpression.ClosureArgAst |
Constructor and Description |
---|
ClosureExpression(ASTInfo info,
ClosureType closureType,
Expression expression,
List<String> argNames) |
Modifier and Type | Method and Description |
---|---|
<T,E extends Throwable> |
accept(ExpressionVisitor<T,E> visitor)
Accepts visitor.
|
protected Object |
basicInterpret(Interpreter interpreter,
InterpreterStackTrace stackTrace)
Interpret expression.
|
Field[] |
createFields(ClosureType closureType) |
List<ClosureExpression.ClosureArgAst> |
getArgAsts()
Returns the list of argument AST nodes.
|
List<String> |
getArgNames()
Returns the argument names.
|
Map<String,ASTNode> |
getArgTypeRanges()
Returns the map of argument type ranges.
|
int |
getArgumentCount()
Returns the number of arguments.
|
Expression |
getExpression()
Returns the body expression.
|
String |
getNodeText()
Returns the text of this node.
|
ClosureType |
getType()
Returns the return type.
|
boolean |
isBodyCreatingNonModuleContextObjects()
Returns
true if the body expression creates non-module context objects,
e.g. |
boolean |
isModuleContextClosure()
Returns
true if the closure is not referencing
non-module variables from outside scope and no methods (if
it is in a method body). |
boolean |
isReferencingNonModuleContext()
Returns
true if the closure is referencing
non-module variables from outside scope and or methods (if
it is in a method body). |
createANTLRParser, doInterpret, evalCondition, evaluateToExpressions, executeCompiled, getCompiled, getDebugLine, getIdentifierAst, getParseTimeConstant, getPrimaryRange, getPropertySelectorRange, getRange, getResultExpression, getResultExpressions, interpret, interpretInCurrentNamespace, isCreatingNonModuleContextObjects, isParseTimeConstant, requiresNewNamespace, setCompiled, showInFullText, showInSurroundingText, showInText, toExpressions
getFullText, getLine, getText, toString
contains, getBeginIndex, getEndIndex, getLength
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFullText, getLine, getText
contains, getBeginIndex, getEndIndex, getLength
public ClosureExpression(ASTInfo info, ClosureType closureType, Expression expression, List<String> argNames)
info
- closureType
- expression
- argNames
- NullPointerException
- if expression
or argNames
is nullIllegalArgumentException
- if argNames
contains nullpublic ClosureType getType()
Expression
getType
in class Expression
public Expression getExpression()
public int getArgumentCount()
public List<String> getArgNames()
public boolean isModuleContextClosure()
true
if the closure is not referencing
non-module variables from outside scope and no methods (if
it is in a method body).true
if the closure is referencing
only the module contextpublic boolean isReferencingNonModuleContext()
ContextReferencingExpression
true
if the closure is referencing
non-module variables from outside scope and or methods (if
it is in a method body).isReferencingNonModuleContext
in class ContextReferencingExpression
true
if the closure is referencing
enclosing non-module contextpublic boolean isBodyCreatingNonModuleContextObjects()
true
if the body expression creates non-module context objects,
e.g. closures or references that reference non-module variables.true
if the body expression creates non-module context objectspublic String getNodeText()
ASTNode
getNodeText
in interface ASTNode
getNodeText
in class ASTNodeImpl
public <T,E extends Throwable> T accept(ExpressionVisitor<T,E> visitor) throws E extends Throwable
Expression
accept
in class Expression
E
E extends Throwable
protected Object basicInterpret(Interpreter interpreter, InterpreterStackTrace stackTrace)
Expression
basicInterpret
in class Expression
public Field[] createFields(ClosureType closureType)
closureType
- public Map<String,ASTNode> getArgTypeRanges()
public List<ClosureExpression.ClosureArgAst> getArgAsts()
Copyright © 2007-2020 Whitestein Technologies. All Rights Reserved.