e1 [ a0, a1, a2, a3 ,... ]
[ e1, e2, e3, ... ]
[ key0 : value0, key1 : value1, ... ]
Possible to cast to one type while painting to another type
The ~= operator. It can have one of the following operators:
op is one of: TOK.lessThan, TOK.lessOrEqual, TOK.greaterThan, TOK.greaterOrEqual
econd ? e1 : e2
Declaration of a symbol
Mainly just a placeholder
foo.bar!(args)
Won't be generated by parser.
== and !=
Use this expression for error recovery. It should behave as a 'sink' to prevent further cascaded error messages.
Function/Delegate literal
is and !is
e1 [ e2 ]
Mainly just a placeholder
is(targ id tok tspec) is(targ id == tok2)
thisexp.new(newargs) class baseclasses { } (arguments)
thisexp.new(newargs) newtype(arguments)
Objective-C class reference expression.
Overload Set
For both i++ and i--
For both ++i and --i
This deletes the key e1 from the associative array e2
Mainly just a placeholder of Package, Module, Nspace, and TemplateInstance (including TemplateMixin)
e1 [lwr .. upr]
sd( e1, e2, e3, ... )
Offset from symbol
Mainly just a placeholder
__traits(identifier, args...)
Mainly just a placeholder
typeid(int)
Variable
e1.array property for vectors.
An uninitialized value, generated from void initializers.
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. Input: exps aray of Expressions Output: exps rewritten 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.
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
Defines the bulk of the classes which represent the AST at the expression level.
Specification: ($LINK2 https://dlang.org/spec/expression.html, Expressions)