Package org.eclipse.cdt.core.dom.ast
Interface IASTExpression
-
- All Superinterfaces:
IASTInitializerClause
,IASTNode
- All Known Subinterfaces:
IASTArraySubscriptExpression
,IASTBinaryExpression
,IASTBinaryTypeIdExpression
,IASTCastExpression
,IASTConditionalExpression
,IASTExpressionList
,IASTFieldReference
,IASTFunctionCallExpression
,IASTIdExpression
,IASTLiteralExpression
,IASTProblemExpression
,IASTTypeIdExpression
,IASTTypeIdInitializerExpression
,IASTUnaryExpression
,ICASTTypeIdInitializerExpression
,ICPPASTArraySubscriptExpression
,ICPPASTBinaryExpression
,ICPPASTCastExpression
,ICPPASTDeleteExpression
,ICPPASTExpression
,ICPPASTExpressionList
,ICPPASTFieldReference
,ICPPASTFunctionCallExpression
,ICPPASTLambdaExpression
,ICPPASTLiteralExpression
,ICPPASTNaryTypeIdExpression
,ICPPASTNewExpression
,ICPPASTPackExpansionExpression
,ICPPASTSimpleTypeConstructorExpression
,ICPPASTTypeIdExpression
,ICPPASTTypenameExpression
,ICPPASTUnaryExpression
,IGNUASTCompoundStatementExpression
,IGNUASTTypeIdExpression
,IGNUASTUnaryExpression
,IGPPASTBinaryExpression
public interface IASTExpression extends IASTInitializerClause
This is the root class of expressions.- Restriction:
- This interface is not intended to be implemented by clients.
- Restriction:
- This interface is not intended to be extended by clients.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
IASTExpression.ValueCategory
-
Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode
IASTNode.CopyStyle
-
-
Field Summary
Fields Modifier and Type Field Description static IASTExpression[]
EMPTY_EXPRESSION_ARRAY
Empty expression array.-
Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode
EMPTY_NODE_ARRAY
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description IASTExpression
copy()
Returns a mutable copy of the tree rooted at this node.IASTExpression
copy(IASTNode.CopyStyle style)
Returns a mutable copy of the tree rooted at this node.IType
getExpressionType()
Returns the type of the value the expression evaluates to.IASTExpression.ValueCategory
getValueCategory()
Returns the value category of this expression.boolean
isLValue()
Returns whether this expression is an lvalue.-
Methods inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode
accept, contains, getChildren, getContainingFilename, getFileLocation, getLeadingSyntax, getNodeLocations, getOriginalNode, getParent, getPropertyInParent, getRawSignature, getSyntax, getTrailingSyntax, getTranslationUnit, isActive, isFrozen, isPartOfTranslationUnitFile, setParent, setPropertyInParent
-
-
-
-
Field Detail
-
EMPTY_EXPRESSION_ARRAY
static final IASTExpression[] EMPTY_EXPRESSION_ARRAY
Empty expression array.
-
-
Method Detail
-
getExpressionType
IType getExpressionType()
Returns the type of the value the expression evaluates to.
-
isLValue
boolean isLValue()
Returns whether this expression is an lvalue. LValues are for instance required on the left hand side of an assignment expression.- Since:
- 5.2
-
getValueCategory
IASTExpression.ValueCategory getValueCategory()
Returns the value category of this expression.- Since:
- 5.3
-
copy
IASTExpression copy()
Description copied from interface:IASTNode
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:copy.getParent() == null copy.getPropertyInParent() == null copy.isFrozen() == false
Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.Calling this method is equivalent to
copy(CopyStyle.withoutLocations)
.- Specified by:
copy
in interfaceIASTInitializerClause
- Specified by:
copy
in interfaceIASTNode
- Since:
- 5.1
-
copy
IASTExpression copy(IASTNode.CopyStyle style)
Description copied from interface:IASTNode
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:copy.getParent() == null copy.getPropertyInParent() == null copy.isFrozen() == false
Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.- Specified by:
copy
in interfaceIASTInitializerClause
- Specified by:
copy
in interfaceIASTNode
- Parameters:
style
-IASTNode.CopyStyle
create a copy with or without locations. Please seeIASTNode.CopyStyle
for restrictions on copies with Locations.- Since:
- 5.3
-
-