Module dev.civl.abc

Interface WithNode

All Superinterfaces:
ASTNode, BlockItemNode, StatementNode

public interface WithNode extends StatementNode
Syntax

Represents a CIVL-C $with(p) node. It has the form: $with(expr) statement or $with(expr, invalid input: '&write_set') statement .

  • 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()
      If
      invalid reference
      #isCallWith()
      returns true, the returned statement node must wraps a function call expression node. Else, it can be any kind of statement.
      Returns:
      A StatementNode attached 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: ASTNode
      Returns 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:
      copy in interface ASTNode
      Specified by:
      copy in interface BlockItemNode
      Specified by:
      copy in interface StatementNode
      Returns:
      deep copy of this node