- All Superinterfaces:
ASTNode,BlockItemNode,StatementNode
Syntax
Represents a CIVL-C $with(p) node. It has the form:
$with(expr) statement or
$with(expr, invalid input: '&write_set') statement .
-
Nested Class Summary
Nested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.ASTNode
ASTNode.NodeKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.statement.BlockItemNode
BlockItemNode.BlockItemKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.statement.StatementNode
StatementNode.StatementKind -
Method Summary
Modifier and TypeMethodDescriptioncopy()Returns a deep copy of this AST node.Ifreturns true, the returned statement node must wraps a function call expression node.invalid reference
#isCallWith()Returns the state reference expression attached with this WithNode.booleanReturns true if and only if this node represents a "parallel" $with statement, i.e.Methods inherited from interface dev.civl.abc.ast.node.IF.ASTNode
addAllTransformAnnotations, addTransformAnnotation, child, childIndex, children, diff, equiv, getAttribute, getOwner, getScope, getSource, id, keepOnly, nextDFS, nodeKind, numChildren, parent, prettyPrint, prettyRepresentation, prettyRepresentation, print, remove, removeChild, removeTransformAnnotation, setAttribute, setChild, setId, setOwner, setScope, toString, transformAnnotationsMethods inherited from interface dev.civl.abc.ast.node.IF.statement.BlockItemNode
blockItemKindMethods inherited from interface dev.civl.abc.ast.node.IF.statement.StatementNode
statementKind
-
Method Details
-
getStateReference
ExpressionNode getStateReference()Returns the state reference expression attached with this WithNode. A state reference expression represents reference (or pointer) to some object that can evaluate to a program state.- Returns:
-
getBodyNode
StatementNode getBodyNode()Ifreturns true, the returned statement node must wraps a function call expression node. Else, it can be any kind of statement.invalid reference
#isCallWith()- Returns:
- A
StatementNodeattached with the whole with expression.
-
isParallelStatement
boolean isParallelStatement()Returns true if and only if this node represents a "parallel" $with statement, i.e. the execution of this statement will not affect any thing outside of the $with scope. A parallel $with statement takes an extra output argument : write_set- Returns:
-
copy
WithNode copy()Description copied from interface:ASTNodeReturns a deep copy of this AST node. The node and all of its descendants will be cloned. The cloning does not copy analysis or attribute information.- Specified by:
copyin interfaceASTNode- Specified by:
copyin interfaceBlockItemNode- Specified by:
copyin interfaceStatementNode- Returns:
- deep copy of this node
-