Package soot.JastAddJ
Class TryWithResources
- java.lang.Object
-
- beaver.Symbol
-
- soot.JastAddJ.ASTNode<ASTNode>
-
- soot.JastAddJ.Stmt
-
- soot.JastAddJ.TryStmt
-
- soot.JastAddJ.TryWithResources
-
- All Implemented Interfaces:
Cloneable,Iterable<ASTNode>,FinallyHost,VariableScope
public class TryWithResources extends TryStmt implements Cloneable, VariableScope
The JSR 334 try with resources statement.
-
-
Field Summary
Fields Modifier and Type Field Description protected MapcatchableException_TypeDecl_valuesprotected MaphandlesException_TypeDecl_valuesprotected MapisDAafter_Variable_valuesprotected MaplocalLookup_String_valuesprotected MaplocalVariableDeclaration_String_valuesprotected MaplookupVariable_String_valuesprotected booleantypeError_computedprotected TypeDecltypeError_valueprotected booleantypeRuntimeException_computedprotected TypeDecltypeRuntimeException_value-
Fields inherited from class soot.JastAddJ.TryStmt
branches_computed, branches_value, branchesFromFinally_computed, branchesFromFinally_value, canCompleteNormally_computed, canCompleteNormally_value, escapedBranches_computed, escapedBranches_value, exceptionRanges_computed, exceptionRanges_value, isDUafter_Variable_values, isDUbefore_Variable_values, label_begin_computed, label_begin_value, label_block_end_computed, label_block_end_value, label_catch_end_computed, label_catch_end_value, label_end_computed, label_end_value, label_exception_handler_computed, label_exception_handler_value, label_finally_block_computed, label_finally_block_value, label_finally_computed, label_finally_value, targetBranches_computed, targetBranches_value
-
Fields inherited from class soot.JastAddJ.Stmt
localNum_computed, localNum_value
-
Fields inherited from class soot.JastAddJ.ASTNode
children, generatedWithCacheCycle, generatedWithCircularEnabled, generatedWithComponentCheck, in$Circle, is$Final, numChildren, parent, PRIMITIVE_PACKAGE_NAME, state
-
-
Constructor Summary
Constructors Constructor Description TryWithResources()TryWithResources(List<ResourceDeclaration> p0, Block p1, List<CatchClause> p2, Opt<Block> p3)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddCatchClause(CatchClause node)Append an element to the CatchClause list.voidaddCatchClauseNoTransform(CatchClause node)voidaddResource(ResourceDeclaration node)Append an element to the Resource list.voidaddResourceNoTransform(ResourceDeclaration node)booleancatchableException(TypeDecl type)The block of the try statement can throw an exception of a type assignable to the given type.booleancatchHandlesException(TypeDecl exceptionType)This attribute computes whether or not the TWR statement has a catch clause which handles the exception.TryWithResourcesclone()TryWithResourcescopy()booleanDefine_boolean_handlesException(ASTNode caller, ASTNode child, TypeDecl exceptionType)booleanDefine_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v)booleanDefine_boolean_reachableCatchClause(ASTNode caller, ASTNode child, TypeDecl exceptionType)booleanDefine_boolean_resourcePreviouslyDeclared(ASTNode caller, ASTNode child, String name)SimpleSetDefine_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name)VariableScopeDefine_VariableScope_outerScope(ASTNode caller, ASTNode child)voidexceptionHandling()Exception error checks.voidflushCache()voidflushCollectionCache()TryWithResourcesfullCopy()Create a deep copy of the AST subtree at this node.BlockgetBlock()Retrieves the Block child.BlockgetBlockNoTransform()Retrieves the Block child.CatchClausegetCatchClause(int i)Retrieves the element at indexiin the CatchClause list..List<CatchClause>getCatchClauseList()Retrieves the CatchClause list.List<CatchClause>getCatchClauseListNoTransform()Retrieves the CatchClause list.List<CatchClause>getCatchClauses()Retrieves the CatchClause list.List<CatchClause>getCatchClausesNoTransform()Retrieves the CatchClause list.BlockgetFinally()Retrieves the (optional) Finally child.Opt<Block>getFinallyOpt()Opt<Block>getFinallyOptNoTransform()Retrieves the optional node for child Finally.intgetNumCatchClause()Retrieves the number of children in the CatchClause list.intgetNumCatchClauseNoTransform()Retrieves the number of children in the CatchClause list.intgetNumResource()Retrieves the number of children in the Resource list.intgetNumResourceNoTransform()Retrieves the number of children in the Resource list.ResourceDeclarationgetResource(int i)Retrieves the element at indexiin the Resource list..List<ResourceDeclaration>getResourceList()Retrieves the Resource list.List<ResourceDeclaration>getResourceListNoTransform()Retrieves the Resource list.List<ResourceDeclaration>getResources()Retrieves the Resource list.List<ResourceDeclaration>getResourcesNoTransform()Retrieves the Resource list.booleanhandlesException(TypeDecl exceptionType)Inherit the handlesException attribute from methoddecl.booleanhasFinally()Check whether the optional Finally child exists.voidinit$Children()Initializes the child array to the correct size.booleanisDAafter(Variable v)SimpleSetlocalLookup(String name)VariableDeclarationlocalVariableDeclaration(String name)MethodDecllookupClose(ResourceDeclaration resource)Lookup the close method declaration for the resource which is being used.SimpleSetlookupVariable(String name)booleanmayHaveRewrite()protected intnumChildren()protected booleanreachedException(TypeDecl catchType)Returns true if the try-with-resources statement can throw an exception of type (or a subtype of) catchType.booleanresourceClosingException(TypeDecl catchType)True if the automatic closing of resources in this try-with-resources statement may throw an exception of type catchType.booleanresourceInitializationException(TypeDecl catchType)True if the resource initialization of this try-with-resources statement may throw an exception of type catchType.booleanresourcePreviouslyDeclared(String name)ASTNoderewriteTo()voidsetBlock(Block node)Replaces the Block child.voidsetCatchClause(CatchClause node, int i)Replaces the CatchClause list element at indexiwith the new nodenode.voidsetCatchClauseList(List<CatchClause> list)Replaces the CatchClause list.voidsetFinally(Block node)Replaces the (optional) Finally child.voidsetFinallyOpt(Opt<Block> opt)Replaces the optional node for the Finally child.voidsetResource(ResourceDeclaration node, int i)Replaces the Resource list element at indexiwith the new nodenode.voidsetResourceList(List<ResourceDeclaration> list)Replaces the Resource list.voidtoString(StringBuffer sb)Pretty printing of try-with-resourcesbooleantwrHandlesException(TypeDecl exceptionType)Returns true if exceptions of type exceptionType are handled in the try-with-resources statement or any containing statement within the directly enclosing method or initializer block.TypeDecltypeError()TypeDecltypeRuntimeException()-
Methods inherited from class soot.JastAddJ.TryStmt
addFallThroughLabelTag, branches, branchesFromFinally, branchTarget, break_label, canCompleteNormally, collectBranches, collectFinally, continue_label, Define_ArrayList_exceptionRanges, Define_boolean_enclosedByExceptionHandler, Define_boolean_isDUbefore, Define_boolean_reachable, Define_boolean_reportUnreachable, Define_Collection_TypeDecl__caughtExceptions, emitExceptionHandler, emitFinallyCode, enclosedByExceptionHandler, escapedBranches, exceptionRanges, isDAafterFinally, isDUafter, isDUafterFinally, isDUbefore, jimplify2, label_begin, label_block_end, label_catch_end, label_end, label_exception_handler, label_finally, label_finally_block, modifiedInScope, needsFinallyTrap, targetBranches, typeThrowable
-
Methods inherited from class soot.JastAddJ.Stmt
addsIndentationLevel, continueLabel, declaresVariable, Define_String_typeDeclIndent, enclosingBodyDecl, hostType, isDAbefore, localNum, lookupMethod, lookupType, lookupType, reachable, reportUnreachable
-
Methods inherited from class soot.JastAddJ.ASTNode
accessControl, addAttributes, addChild, asImmediate, asLocal, asLocal, asRValue, beginExceptionRange, checkDUeverywhere, checkEnum, checkUncheckedConversion, checkWarnings, clearLocations, cloneSubtree, collectEnclosingVariables, collectErrors, collectExceptions, collectTypesToHierarchy, collectTypesToSignatures, compilationUnit, Define_Annotation_lookupAnnotation, Define_ASTNode_enclosingBlock, Define_BodyDecl_enclosingBodyDecl, Define_boolean_hasPackage, Define_boolean_inExplicitConstructorInvocation, Define_boolean_inExtendsOrImplements, Define_boolean_inhModifiedInScope, Define_boolean_insideLoop, Define_boolean_insideSwitch, Define_boolean_inStaticContext, Define_boolean_isAnonymous, Define_boolean_isAnonymousDecl, Define_boolean_isCatchParam, Define_boolean_isConstructorParameter, Define_boolean_isDest, Define_boolean_isExceptionHandlerParameter, Define_boolean_isExplicitGenericConstructorAccess, Define_boolean_isIncOrDec, Define_boolean_isLocalClass, Define_boolean_isMemberType, Define_boolean_isMethodParameter, Define_boolean_isNestedType, Define_boolean_isSource, Define_boolean_mayBeAbstract, Define_boolean_mayBeFinal, Define_boolean_mayBeNative, Define_boolean_mayBePrivate, Define_boolean_mayBeProtected, Define_boolean_mayBePublic, Define_boolean_mayBeStatic, Define_boolean_mayBeStrictfp, Define_boolean_mayBeSynchronized, Define_boolean_mayBeTransient, Define_boolean_mayBeVolatile, Define_boolean_mayUseAnnotationTarget, Define_boolean_variableArityValid, Define_boolean_withinDeprecatedAnnotation, Define_boolean_withinSuppressWarnings, Define_Case_bind, Define_CatchClause_catchClause, Define_ClassInstanceExpr_getClassInstanceExpr, Define_Collection_lookupConstructor, Define_Collection_lookupMethod, Define_Collection_lookupSuperConstructor, Define_CompilationUnit_compilationUnit, Define_ConstructorDecl_constructorDecl, Define_ConstructorDecl_unknownConstructor, Define_ElementValue_lookupElementTypeValue, Define_Expr_nestedScope, Define_GLBType_lookupGLBType, Define_int_localNum, Define_LabeledStmt_lookupLabel, Define_LUBType_lookupLUBType, Define_MethodDecl_unknownMethod, Define_NameType_nameType, Define_SimpleSet_allImportedTypes, Define_SimpleSet_lookupType, Define_soot_jimple_Stmt_condition_false_label, Define_soot_jimple_Stmt_condition_true_label, Define_String_hostPackage, Define_String_methodHost, Define_String_packageName, Define_TypeDecl_assignConvertedType, Define_TypeDecl_componentType, Define_TypeDecl_declType, Define_TypeDecl_enclosingAnnotationDecl, Define_TypeDecl_enclosingInstance, Define_TypeDecl_enclosingType, Define_TypeDecl_expectedType, Define_TypeDecl_genericDecl, Define_TypeDecl_hostType, Define_TypeDecl_lookupType, Define_TypeDecl_lookupWildcardExtends, Define_TypeDecl_lookupWildcardSuper, Define_TypeDecl_returnType, Define_TypeDecl_superType, Define_TypeDecl_switchType, Define_TypeDecl_typeBoolean, Define_TypeDecl_typeByte, Define_TypeDecl_typeChar, Define_TypeDecl_typeCloneable, Define_TypeDecl_typeDouble, Define_TypeDecl_typeError, Define_TypeDecl_typeException, Define_TypeDecl_typeFloat, Define_TypeDecl_typeInt, Define_TypeDecl_typeLong, Define_TypeDecl_typeNull, Define_TypeDecl_typeNullPointerException, Define_TypeDecl_typeObject, Define_TypeDecl_typeRuntimeException, Define_TypeDecl_typeSerializable, Define_TypeDecl_typeShort, Define_TypeDecl_typeString, Define_TypeDecl_typeThrowable, Define_TypeDecl_typeVoid, Define_TypeDecl_typeWildcard, Define_TypeDecl_unknownType, Define_Variable_unknownField, definesLabel, definiteAssignment, dumpString, dumpTree, dumpTree, dumpTreeNoRewrite, dumpTreeNoRewrite, duringAnnotations, duringAnonymousClasses, duringBoundNames, duringDU, duringEnums, duringGenericTypeVariables, duringImplicitConstructor, duringLiterals, duringNameResolution, duringSyntacticClassification, duringVariableDeclarationTransformation, emitConstant, end, endExceptionRange, error, errorPrefix, extractIndent, extractSingleType, flushCaches, getChild, getChildNoTransform, getIndexOfChild, getNumChild, getNumChildNoTransform, getParent, in$Circle, in$Circle, indent, insertChild, is$Final, is$Final, isDescendantTo, isStringAdd, iterator, jimplify1phase1, jimplify1phase2, jimplify2, lineNumber, location, nameCheck, newLabel, options, putSimpleSetElement, removeChild, removeInstanceMethods, removeInstanceVariables, replace, setChild, setEnd, setLocation, setParent, setStart, sourceFile, start, state, toString, transformation, transformEnumConstructors, typeCheck, unassignedEverywhere, usesTypeVariable, varChildIndex, varChildIndex, warning, warningPrefix, with
-
Methods inherited from class beaver.Symbol
getColumn, getEnd, getId, getLine, getStart, makePosition
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Field Detail
-
localLookup_String_values
protected Map localLookup_String_values
-
localVariableDeclaration_String_values
protected Map localVariableDeclaration_String_values
-
isDAafter_Variable_values
protected Map isDAafter_Variable_values
-
catchableException_TypeDecl_values
protected Map catchableException_TypeDecl_values
-
handlesException_TypeDecl_values
protected Map handlesException_TypeDecl_values
-
typeError_computed
protected boolean typeError_computed
-
typeError_value
protected TypeDecl typeError_value
-
typeRuntimeException_computed
protected boolean typeRuntimeException_computed
-
typeRuntimeException_value
protected TypeDecl typeRuntimeException_value
-
lookupVariable_String_values
protected Map lookupVariable_String_values
-
-
Constructor Detail
-
TryWithResources
public TryWithResources()
-
TryWithResources
public TryWithResources(List<ResourceDeclaration> p0, Block p1, List<CatchClause> p2, Opt<Block> p3)
-
-
Method Detail
-
flushCache
public void flushCache()
- Overrides:
flushCachein classTryStmt
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCachein classTryStmt
-
clone
public TryWithResources clone() throws CloneNotSupportedException
- Overrides:
clonein classTryStmt- Throws:
CloneNotSupportedException
-
copy
public TryWithResources copy()
-
fullCopy
public TryWithResources fullCopy()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
-
exceptionHandling
public void exceptionHandling()
Exception error checks.- Overrides:
exceptionHandlingin classASTNode<ASTNode>
-
reachedException
protected boolean reachedException(TypeDecl catchType)
Returns true if the try-with-resources statement can throw an exception of type (or a subtype of) catchType.- Overrides:
reachedExceptionin classTryStmt
-
toString
public void toString(StringBuffer sb)
Pretty printing of try-with-resources
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Childrenin classTryStmt
-
numChildren
protected int numChildren()
- Overrides:
numChildrenin classTryStmt
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewritein classTryStmt
-
setResourceList
public void setResourceList(List<ResourceDeclaration> list)
Replaces the Resource list.- Parameters:
list- The new list node to be used as the Resource list.
-
getNumResource
public int getNumResource()
Retrieves the number of children in the Resource list.- Returns:
- Number of children in the Resource list.
-
getNumResourceNoTransform
public int getNumResourceNoTransform()
Retrieves the number of children in the Resource list. Calling this method will not trigger rewrites..- Returns:
- Number of children in the Resource list.
-
getResource
public ResourceDeclaration getResource(int i)
Retrieves the element at indexiin the Resource list..- Parameters:
i- Index of the element to return.- Returns:
- The element at position
iin the Resource list.
-
addResource
public void addResource(ResourceDeclaration node)
Append an element to the Resource list.- Parameters:
node- The element to append to the Resource list.
-
addResourceNoTransform
public void addResourceNoTransform(ResourceDeclaration node)
-
setResource
public void setResource(ResourceDeclaration node, int i)
Replaces the Resource list element at indexiwith the new nodenode.- Parameters:
node- The new node to replace the old list element.i- The list index of the node to be replaced.
-
getResources
public List<ResourceDeclaration> getResources()
Retrieves the Resource list.- Returns:
- The node representing the Resource list.
-
getResourcesNoTransform
public List<ResourceDeclaration> getResourcesNoTransform()
Retrieves the Resource list.This method does not invoke AST transformations.
- Returns:
- The node representing the Resource list.
-
getResourceList
public List<ResourceDeclaration> getResourceList()
Retrieves the Resource list.- Returns:
- The node representing the Resource list.
-
getResourceListNoTransform
public List<ResourceDeclaration> getResourceListNoTransform()
Retrieves the Resource list.This method does not invoke AST transformations.
- Returns:
- The node representing the Resource list.
-
setBlock
public void setBlock(Block node)
Replaces the Block child.
-
getBlock
public Block getBlock()
Retrieves the Block child.
-
getBlockNoTransform
public Block getBlockNoTransform()
Retrieves the Block child.This method does not invoke AST transformations.
- Overrides:
getBlockNoTransformin classTryStmt- Returns:
- The current node used as the Block child.
-
setCatchClauseList
public void setCatchClauseList(List<CatchClause> list)
Replaces the CatchClause list.- Overrides:
setCatchClauseListin classTryStmt- Parameters:
list- The new list node to be used as the CatchClause list.
-
getNumCatchClause
public int getNumCatchClause()
Retrieves the number of children in the CatchClause list.- Overrides:
getNumCatchClausein classTryStmt- Returns:
- Number of children in the CatchClause list.
-
getNumCatchClauseNoTransform
public int getNumCatchClauseNoTransform()
Retrieves the number of children in the CatchClause list. Calling this method will not trigger rewrites..- Overrides:
getNumCatchClauseNoTransformin classTryStmt- Returns:
- Number of children in the CatchClause list.
-
getCatchClause
public CatchClause getCatchClause(int i)
Retrieves the element at indexiin the CatchClause list..- Overrides:
getCatchClausein classTryStmt- Parameters:
i- Index of the element to return.- Returns:
- The element at position
iin the CatchClause list.
-
addCatchClause
public void addCatchClause(CatchClause node)
Append an element to the CatchClause list.- Overrides:
addCatchClausein classTryStmt- Parameters:
node- The element to append to the CatchClause list.
-
addCatchClauseNoTransform
public void addCatchClauseNoTransform(CatchClause node)
- Overrides:
addCatchClauseNoTransformin classTryStmt
-
setCatchClause
public void setCatchClause(CatchClause node, int i)
Replaces the CatchClause list element at indexiwith the new nodenode.- Overrides:
setCatchClausein classTryStmt- Parameters:
node- The new node to replace the old list element.i- The list index of the node to be replaced.
-
getCatchClauses
public List<CatchClause> getCatchClauses()
Retrieves the CatchClause list.- Overrides:
getCatchClausesin classTryStmt- Returns:
- The node representing the CatchClause list.
-
getCatchClausesNoTransform
public List<CatchClause> getCatchClausesNoTransform()
Retrieves the CatchClause list.This method does not invoke AST transformations.
- Overrides:
getCatchClausesNoTransformin classTryStmt- Returns:
- The node representing the CatchClause list.
-
getCatchClauseList
public List<CatchClause> getCatchClauseList()
Retrieves the CatchClause list.- Overrides:
getCatchClauseListin classTryStmt- Returns:
- The node representing the CatchClause list.
-
getCatchClauseListNoTransform
public List<CatchClause> getCatchClauseListNoTransform()
Retrieves the CatchClause list.This method does not invoke AST transformations.
- Overrides:
getCatchClauseListNoTransformin classTryStmt- Returns:
- The node representing the CatchClause list.
-
setFinallyOpt
public void setFinallyOpt(Opt<Block> opt)
Replaces the optional node for the Finally child. This is theOptnode containing the child Finally, not the actual child!- Overrides:
setFinallyOptin classTryStmt- Parameters:
opt- The new node to be used as the optional node for the Finally child.
-
hasFinally
public boolean hasFinally()
Check whether the optional Finally child exists.- Overrides:
hasFinallyin classTryStmt- Returns:
trueif the optional Finally child exists,falseif it does not.
-
getFinally
public Block getFinally()
Retrieves the (optional) Finally child.- Overrides:
getFinallyin classTryStmt- Returns:
- The Finally child, if it exists. Returns
nullotherwise.
-
setFinally
public void setFinally(Block node)
Replaces the (optional) Finally child.- Overrides:
setFinallyin classTryStmt- Parameters:
node- The new node to be used as the Finally child.
-
getFinallyOpt
public Opt<Block> getFinallyOpt()
- Overrides:
getFinallyOptin classTryStmt
-
getFinallyOptNoTransform
public Opt<Block> getFinallyOptNoTransform()
Retrieves the optional node for child Finally. This is theOptnode containing the child Finally, not the actual child!This method does not invoke AST transformations.
- Overrides:
getFinallyOptNoTransformin classTryStmt- Returns:
- The optional node for child Finally.
-
catchHandlesException
public boolean catchHandlesException(TypeDecl exceptionType)
This attribute computes whether or not the TWR statement has a catch clause which handles the exception.
-
twrHandlesException
public boolean twrHandlesException(TypeDecl exceptionType)
Returns true if exceptions of type exceptionType are handled in the try-with-resources statement or any containing statement within the directly enclosing method or initializer block.
-
lookupClose
public MethodDecl lookupClose(ResourceDeclaration resource)
Lookup the close method declaration for the resource which is being used.
-
localVariableDeclaration
public VariableDeclaration localVariableDeclaration(String name)
-
resourceClosingException
public boolean resourceClosingException(TypeDecl catchType)
True if the automatic closing of resources in this try-with-resources statement may throw an exception of type catchType.
-
resourceInitializationException
public boolean resourceInitializationException(TypeDecl catchType)
True if the resource initialization of this try-with-resources statement may throw an exception of type catchType.
-
catchableException
public boolean catchableException(TypeDecl type)
Description copied from class:TryStmtThe block of the try statement can throw an exception of a type assignable to the given type.- Overrides:
catchableExceptionin classTryStmt- See Also:
TryStmt.catchableException(TypeDecl)
-
handlesException
public boolean handlesException(TypeDecl exceptionType)
Inherit the handlesException attribute from methoddecl.- Overrides:
handlesExceptionin classTryStmt
-
typeRuntimeException
public TypeDecl typeRuntimeException()
- Overrides:
typeRuntimeExceptionin classTryStmt
-
lookupVariable
public SimpleSet lookupVariable(String name)
- Specified by:
lookupVariablein interfaceVariableScope- Overrides:
lookupVariablein classStmt
-
resourcePreviouslyDeclared
public boolean resourcePreviouslyDeclared(String name)
-
Define_boolean_handlesException
public boolean Define_boolean_handlesException(ASTNode caller, ASTNode child, TypeDecl exceptionType)
- Overrides:
Define_boolean_handlesExceptionin classTryStmt
-
Define_boolean_reachableCatchClause
public boolean Define_boolean_reachableCatchClause(ASTNode caller, ASTNode child, TypeDecl exceptionType)
- Overrides:
Define_boolean_reachableCatchClausein classTryStmt
-
Define_SimpleSet_lookupVariable
public SimpleSet Define_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_SimpleSet_lookupVariablein classASTNode<ASTNode>
-
Define_VariableScope_outerScope
public VariableScope Define_VariableScope_outerScope(ASTNode caller, ASTNode child)
- Overrides:
Define_VariableScope_outerScopein classASTNode<ASTNode>
-
Define_boolean_resourcePreviouslyDeclared
public boolean Define_boolean_resourcePreviouslyDeclared(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_boolean_resourcePreviouslyDeclaredin classASTNode<ASTNode>
-
Define_boolean_isDAbefore
public boolean Define_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v)
- Overrides:
Define_boolean_isDAbeforein classTryStmt
-
-