x += y
The addition operator, x + y
The 'address of' operator, &p
x &= y
The bitwise 'and' operator, x & y
e1 [ a0, a1, a2, a3 ,... ]
The .length property of an array
[ e1, e2, e3, ... ]
An assert expression, assert(x == y)
The assignment / initialization operator, =
[ key0 : value0, key1 : value1, ... ]
Binary operator assignment, += -= *= etc.
Base class for binary operators
A bit-for-bit copy from e2 to e1
The type cast operator, cast(T) x
The ~= operator.
The ~= operator when appending a single dchar
The ~= operator when appending a single element
The concatenation operator, x ~ y
A comparison operator, < <= > >=
The bitwise complement operator, ~x
A compile-time complex number (deprecated)
C11 6.5.2.5 ( type-name ) { initializer-list }
The ternary operator, econd ? e1 : e2
Declaration of a symbol
A special keyword when used as a function's default argument
The dg.funcptr property, pointing to the delegate's function
The dg.ptr property, pointing to the delegate's 'context'
The delete operator, delete x (deprecated)
x /= y
The division operator, x / y
The dollar operator used when indexing or slicing an array. E.g a[$], a[1 .. $] etc.
Mainly just a placeholder
foo.bar!(args)
Won't be generated by parser.
== and !=
Use this expression for error recovery.
The __FILE__ token as a default argument
Function/Delegate literal
The __FUNCTION__ token as a default argument
C11 6.5.1.1 Generic Selection For ImportC
Generates a halt instruction
An identifier in the context of an expression (as opposed to a declaration)
is and !is
An import expression, import("file.txt")
The in operator, "a" in ["a": 1]
e1 [ e2 ]
A compile-time known integer value
Mainly just a placeholder
is(targ id tok tspec) is(targ id == tok2)
The __LINE__ token as a default argument
The logical 'and' / 'or' operator, X && Y / X || Y
When an assignment expression is lowered to a druntime call this class is used to store the lowering. It essentially behaves the same as an AssignExp, but it is used to not waste space for other AssignExp that are not lowered to anything.
x -= y
The minus operator, x - y
A string mixin, mixin("x")
x %= y
The modulo operator, x % y
The __MODULE__ token as a default argument
x *= y
The multiplication operator, x * y
The negation operator, -x
class baseclasses { } (arguments)
newtype(arguments)
The logical not operator, !x
A compile-time known null value
Objective-C class reference expression.
x |= y
The bitwise 'or' operator, x | y
Overload Set
The postfix increment/decrement operator, i++ / i--
x ^^= y
The 'power' operator, x ^^ y
The prefix increment/decrement operator, ++i / --i
The __PRETTY_FUNCTION__ token as a default argument
The pointer dereference operator, *p
A compile-time known floating point number
Associative array removal, aa.remove(arg)
Mainly just a placeholder of Package, Module, Nspace, and TemplateInstance (including TemplateMixin)
x <<= y
The 'shift left' operator, x << y
x >>= y
The 'shift right' operator, x >> y
e1 [lwr .. upr]
sd( e1, e2, e3, ... )
Offset from symbol
Mainly just a placeholder
throw <e1> as proposed by DIP 1034.
__traits(identifier, args...)
A sequence of expressions
Mainly just a placeholder
typeid(int)
The unary add operator, +x
Base class for unary operators
x >>>= y
The 'unsigned shift right' operator, x >>> y
Variable
e1.array property for vectors.
An uninitialized value, generated from void initializers.
x ^= y
The bitwise 'xor' operator, x ^ y
Return value for checkModifiable
Specifies how the checkModify deals with certain situations
Test to see if two reals are the same. Regard NaN's as equivalent. Regard +0 and -0 as different.
Handle the postblit call on lvalue, or the move of rvalue.
Given an Expression, find the variable it really is.
Expand tuples in-place.
Find the first non-comma expression.
If s is a function template, i.e. the only member of a template and that member is a function, return that template.
Determine if this is available by walking up the enclosing scopes until a function is found.
Expand alias this tuples.
Verify if the given identifier is any of _d_array{ctor,setctor,setassign,assign_l, assign_r}.
check e is exp.opDispatch!(tiargs) or not It's used to switch to UFCS the semantic analysis path
Determine if a this is needed to access d.
Find the last non-comma expression.
TypeDotIdExp ***********************************
If we want the value of this expression, but do not want to call the destructor on it.
apply is running
inlineScan is running
optimize is running
scrubReturnValue is running
hasNonConstPointers is running
toCBuffer is running
The arguments of a function call
Defines the bulk of the classes which represent the AST at the expression level.
Specification: ($LINK2 https://dlang.org/spec/expression.html, Expressions)