- All Superinterfaces:
ASTNode,ExpressionNode,ForLoopInitializerNode,InitializerNode,SizeableNode
An expression in which the operator is the C
-> (arrow)
operator. In C, e->f is equivalent to (*e).f.-
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.expression.ExpressionNode
ExpressionNode.ExpressionKind -
Method Summary
Modifier and TypeMethodDescriptioncopy()Returns a deep copy of this AST node.Returns the node for the right argument of the arrow operator.Field[]Returns the sequence of nested fields navigates from an outer structure or union member to an inner member through anonymous structure or union members.Returns the node representing the left argument of the arrow operator.voidsetFieldName(IdentifierNode field) Sets the value that will be returned bygetFieldName().voidsetNavigationSequence(Field[] sequence) voidsetStructurePointer(ExpressionNode structure) Sets the value that will be returned bygetStructurePointer().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.expression.ExpressionNode
addConversion, expressionKind, getConversion, getConvertedType, getInitialType, getNumConversions, isConstantExpression, isLvalue, removeConversions, setInitialTypeMethods inherited from interface dev.civl.abc.ast.node.IF.declaration.InitializerNode
isSideEffectFreeMethods inherited from interface dev.civl.abc.ast.node.IF.expression.SizeableNode
getType
-
Method Details
-
getStructurePointer
ExpressionNode getStructurePointer()Returns the node representing the left argument of the arrow operator. That argument is an expression which is a pointer to a structure or union.- Returns:
- the left argument of the arrow operator
- See Also:
-
setStructurePointer
Sets the value that will be returned bygetStructurePointer().- Parameters:
structure- the left argument of the arrow operator
-
getFieldName
IdentifierNode getFieldName()Returns the node for the right argument of the arrow operator. That argument is an identifier which names a field in the structure or union.- Returns:
- the right argument of the arrow operator
- See Also:
-
setFieldName
Sets the value that will be returned bygetFieldName().- Parameters:
field- the right argument of the arrow operator
-
copy
ArrowNode 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 interfaceExpressionNode- Specified by:
copyin interfaceForLoopInitializerNode- Specified by:
copyin interfaceInitializerNode- Specified by:
copyin interfaceSizeableNode- Returns:
- deep copy of this node
-