- All Superinterfaces:
ASTNode,BlockItemNode,ContractNode,DeclarationNode,FunctionDeclarationNode,FunctionDefinitionNode,OrdinaryDeclarationNode
The ACSL predicate node, which in the view of ABC, is just a function with a
boolean return type. An ACSL predicate annotation will become a function
which get inserted in the AST tree at the location of the annotation.
-
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.acsl.ContractNode
ContractNode.ContractKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.declaration.OrdinaryDeclarationNode
OrdinaryDeclarationNode.OrdinaryDeclarationKind -
Method Summary
Modifier and TypeMethodDescriptioncopy()Returns a deep copy of this AST node.the body expression of the predicateThe parameters of the predicateThe name of the predicateMethods 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.acsl.ContractNode
contractKindMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.DeclarationNode
getIdentifier, getName, isDefinition, setEntity, setIdentifier, setIsDefinitionMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.FunctionDeclarationNode
getContract, getEntity, getSystemLibrary, hasAtomicFunctionSpecifier, hasDeviceFunctionSpecifier, hasGlobalFunctionSpecifier, hasInlineFunctionSpecifier, hasNoreturnFunctionSpecifier, hasPureFunctionSpecifier, hasStatefFunctionSpecifier, hasSystemFunctionSpecifier, isLogicFunction, setAtomicFunctionSpecifier, setContract, setDeviceFunctionSpecifier, setGlobalFunctionSpecifier, setInlineFunctionSpecifier, setIsLogicFunction, setNoreturnFunctionSpecifier, setPureFunctionSpecifier, setStatefFunctionSpecifier, setSystemFunctionSpecifier, setSystemLibraryMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.FunctionDefinitionNode
getBody, getLogicDefinition, getTypeNode, setBodyMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.OrdinaryDeclarationNode
hasExternStorage, hasStaticStorage, ordinaryDeclarationKind, setExternStorage, setStaticStorage, setTypeNode
-
Method Details
-
getPredicateName
IdentifierNode getPredicateName()The name of the predicate- Returns:
-
getParameters
SequenceNode<VariableDeclarationNode> getParameters()The parameters of the predicate- Returns:
-
getExpressionBody
ExpressionNode getExpressionBody()the body expression of the predicate- Returns:
-
copy
PredicateNode 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 interfaceContractNode- Specified by:
copyin interfaceDeclarationNode- Specified by:
copyin interfaceFunctionDeclarationNode- Specified by:
copyin interfaceFunctionDefinitionNode- Specified by:
copyin interfaceOrdinaryDeclarationNode- Returns:
- deep copy of this node
-