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, ICPPASTFoldExpression, 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.
  • Field Details

    • EMPTY_EXPRESSION_ARRAY

      static final IASTExpression[] EMPTY_EXPRESSION_ARRAY
      Empty expression array.
  • Method Details

    • 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

      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 interface IASTInitializerClause
      Specified by:
      copy in interface IASTNode
      Since:
      5.1
    • 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.
      Specified by:
      copy in interface IASTInitializerClause
      Specified by:
      copy in interface IASTNode
      Parameters:
      style - IASTNode.CopyStyle create a copy with or without locations. Please see IASTNode.CopyStyle for restrictions on copies with Locations.
      Since:
      5.3