Enum cpp_demangle::ast::Expression [−][src]
The <expression>
production.
<expression> ::= <unary operator-name> <expression>
::= <binary operator-name> <expression> <expression>
::= <ternary operator-name> <expression> <expression> <expression>
::= pp_ <expression> # prefix ++
::= mm_ <expression> # prefix --
::= cl <expression>+ E # expression (expr-list), call
::= cv <type> <expression> # type (expression), conversion with one argument
::= cv <type> _ <expression>* E # type (expr-list), conversion with other than one argument
::= tl <type> <expression>* E # type {expr-list}, conversion with braced-init-list argument
::= il <expression> E # {expr-list}, braced-init-list in any other context
::= [gs] nw <expression>* _ <type> E # new (expr-list) type
::= [gs] nw <expression>* _ <type> <initializer> # new (expr-list) type (init)
::= [gs] na <expression>* _ <type> E # new[] (expr-list) type
::= [gs] na <expression>* _ <type> <initializer> # new[] (expr-list) type (init)
::= [gs] dl <expression> # delete expression
::= [gs] da <expression> # delete[] expression
::= dc <type> <expression> # dynamic_cast<type> (expression)
::= sc <type> <expression> # static_cast<type> (expression)
::= cc <type> <expression> # const_cast<type> (expression)
::= rc <type> <expression> # reinterpret_cast<type> (expression)
::= ti <type> # typeid (type)
::= te <expression> # typeid (expression)
::= st <type> # sizeof (type)
::= sz <expression> # sizeof (expression)
::= at <type> # alignof (type)
::= az <expression> # alignof (expression)
::= nx <expression> # noexcept (expression)
::= <template-param>
::= <function-param>
::= dt <expression> <unresolved-name> # expr.name
::= pt <expression> <unresolved-name> # expr->name
::= ds <expression> <expression> # expr.*expr
::= sZ <template-param> # sizeof...(T), size of a template parameter pack
::= sZ <function-param> # sizeof...(parameter), size of a function parameter pack
::= sP <template-arg>* E # sizeof...(T), size of a captured template parameter pack from an alias template
::= sp <expression> # expression..., pack expansion
::= tw <expression> # throw expression
::= tr # throw with no operand (rethrow)
::= <unresolved-name> # f(p), N::f(p), ::f(p),
# freestanding dependent name (e.g., T::x),
# objectless nonstatic member reference
::= <expr-primary>
Variants
Unary(OperatorName, Box<Expression>)
A unary operator expression.
Binary(OperatorName, Box<Expression>, Box<Expression>)
A binary operator expression.
Ternary(OperatorName, Box<Expression>, Box<Expression>, Box<Expression>)
A ternary operator expression.
PrefixInc(Box<Expression>)
A prefix ++
.
PrefixDec(Box<Expression>)
A prefix --
.
Call(Box<Expression>, Vec<Expression>)
A call with functor and arguments.
ConversionOne(TypeHandle, Box<Expression>)
A type conversion with one argument.
ConversionMany(TypeHandle, Vec<Expression>)
A type conversion with many arguments.
ConversionBraced(TypeHandle, Vec<Expression>)
A type conversion with many arguments.
BracedInitList(Box<Expression>)
A braced init list expression.
New(Vec<Expression>, TypeHandle, Option<Initializer>)
The new
operator.
GlobalNew(Vec<Expression>, TypeHandle, Option<Initializer>)
The global ::new
operator.
NewArray(Vec<Expression>, TypeHandle, Option<Initializer>)
The new[]
operator.
GlobalNewArray(Vec<Expression>, TypeHandle, Option<Initializer>)
The global ::new[]
operator.
Delete(Box<Expression>)
The delete
operator.
GlobalDelete(Box<Expression>)
The global ::delete
operator.
DeleteArray(Box<Expression>)
The delete[]
operator.
GlobalDeleteArray(Box<Expression>)
The global ::delete[]
operator.
DynamicCast(TypeHandle, Box<Expression>)
dynamic_cast<type> (expression)
StaticCast(TypeHandle, Box<Expression>)
static_cast<type> (expression)
ConstCast(TypeHandle, Box<Expression>)
const_cast<type> (expression)
ReinterpretCast(TypeHandle, Box<Expression>)
reinterpret_cast<type> (expression)
TypeidType(TypeHandle)
typeid (type)
TypeidExpr(Box<Expression>)
typeid (expression)
SizeofType(TypeHandle)
sizeof (type)
SizeofExpr(Box<Expression>)
sizeof (expression)
AlignofType(TypeHandle)
alignof (type)
AlignofExpr(Box<Expression>)
alignof (expression)
Noexcept(Box<Expression>)
noexcept (expression)
TemplateParam(TemplateParam)
A named template parameter.
FunctionParam(FunctionParam)
A function parameter.
Member(Box<Expression>, MemberName)
expr.name
DerefMember(Box<Expression>, MemberName)
expr->name
PointerToMember(Box<Expression>, Box<Expression>)
expr.*expr
SizeofTemplatePack(TemplateParam)
sizeof...(T)
, size of a template parameter pack.
SizeofFunctionPack(FunctionParam)
sizeof...(parameter)
, size of a function parameter pack.
SizeofCapturedTemplatePack(Vec<TemplateArg>)
sizeof...(T)
, size of a captured template parameter pack from an alias
template.
PackExpansion(Box<Expression>)
expression...
, pack expansion.
Throw(Box<Expression>)
throw expression
throw
with no operand
UnresolvedName(UnresolvedName)
f(p)
, N::f(p)
, ::f(p)
, freestanding dependent name (e.g., T::x
),
objectless nonstatic member reference.
Primary(ExprPrimary)
An <expr-primary>
production.
Trait Implementations
impl Clone for Expression
[src]
fn clone(&self) -> Expression
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Expression
[src]
impl Eq for Expression
[src]
impl PartialEq<Expression> for Expression
[src]
fn eq(&self, other: &Expression) -> bool
[src]
fn ne(&self, other: &Expression) -> bool
[src]
impl StructuralEq for Expression
[src]
impl StructuralPartialEq for Expression
[src]
Auto Trait Implementations
impl RefUnwindSafe for Expression
impl Send for Expression
impl Sync for Expression
impl Unpin for Expression
impl UnwindSafe for Expression
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,