Interface IASTUnaryExpression

All Superinterfaces:
IASTExpression, IASTInitializerClause, IASTNode
All Known Subinterfaces:
ICPPASTUnaryExpression, IGNUASTUnaryExpression

public interface IASTUnaryExpression extends IASTExpression
This interface is used to represent a unary expression in the AST.
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

    • op_prefixIncr

      static final int op_prefixIncr
      Prefix increment. op_prefixIncr: ++exp
      See Also:
    • op_prefixDecr

      static final int op_prefixDecr
      Prefix decrement. op_prefixDecr: --exp
      See Also:
    • op_plus

      static final int op_plus
      Operator plus. op_plus: +exp
      See Also:
    • op_minus

      static final int op_minus
      Operator minus. op_minux: -exp
      See Also:
    • op_star

      static final int op_star
      Operator star. op_star: *exp
      See Also:
    • op_amper

      static final int op_amper
      Operator ampersand. op_amper: &exp
      See Also:
    • op_tilde

      static final int op_tilde
      Operator tilde. op_tilde: ~exp
      See Also:
    • op_not

      static final int op_not
      not. op_not: !exp
      See Also:
    • op_sizeof

      static final int op_sizeof
      sizeof. op_sizeof: sizeof exp
      See Also:
    • op_postFixIncr

      static final int op_postFixIncr
      Postfix increment. op_postFixIncr: exp++
      See Also:
    • op_postFixDecr

      static final int op_postFixDecr
      Postfix decrement. op_postFixDecr: exp--
      See Also:
    • op_bracketedPrimary

      static final int op_bracketedPrimary
      A bracketed expression. op_bracketedPrimary: ( exp )
      See Also:
    • op_throw

      static final int op_throw
      For C++, only. op_throw: throw exp
      See Also:
    • op_typeid

      static final int op_typeid
      For C++, only. op_typeid: typeid( exp )
      See Also:
    • op_typeof

      @Deprecated static final int op_typeof
      Deprecated.
      Shall not be used, 'typeof something' is not an expression, it's a declaration specifier.
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • op_alignOf

      static final int op_alignOf
      For GCC parsers, only. op_alignOf is used for __alignOf( unaryExpression ) type expressions.
      See Also:
    • op_sizeofParameterPack

      static final int op_sizeofParameterPack
      For C++, only: 'sizeof... ( parameterPack )'
      Since:
      5.2
      See Also:
    • op_noexcept

      static final int op_noexcept
      For C++, only: noexcept ( expression )
      Since:
      5.5
      See Also:
    • op_labelReference

      static final int op_labelReference
      For GCC parsers, only. op_labelReference is used for &&label type expressions.
      Since:
      5.8
      See Also:
    • op_integerPack

      static final int op_integerPack
      For GCC parsers in C++ mode, only: '__integer_pack ( expression )'
      Since:
      6.11
      See Also:
    • OPERAND

      static final ASTNodeProperty OPERAND
      OPERAND represents the relationship between an IASTUnaryExpression and it's nested IASTExpression.
  • Method Details

    • getOperator

      int getOperator()
      Returns the operator/kind.
      Returns:
      the operator, one of op_* constants defined in this interface.
    • setOperator

      void setOperator(int operator)
      Sets the operator/kind.
      Parameters:
      operator - the operator, one of op_* constants defined in this interface.
    • getOperand

      IASTExpression getOperand()
      Returns the operand.
      Returns:
      IASTExpression
    • setOperand

      void setOperand(IASTExpression expression)
      Sets the operand.
      Parameters:
      expression - 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 interface IASTExpression
      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 IASTExpression
      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