|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
if false then x else y -> y
-
e
:
Expression
-
Returns:
Expression
|
|
|
Evaluate simple math between two constants.
9 * 3 --> 27
"G" + "G" --> "GG"
-
e
:
Expression
-
Returns:
Expression
|
|
|
Evaluating constants to not mess with our expressions:
-
e
:
Expression
-
Returns:
Expression
|
|
|
-
e
:
Expression
-
Returns:
Expression
|
|
|
Optimize range/interval comparisons with proper max/min logic
-
exp
:
Expression
-
Returns:
Expression
|
|
|
String comparisons to IsNullOrEmpty
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
Purpose of this is to replace non-used anonymous types:
new AnonymousObject(Item1 = x, Item2 = "").Item1 --> x
-
e
:
Expression
-
Returns:
Expression
|
|
|
-
e
:
Expression
-
Returns:
Expression
|
|
|
-
e
:
Expression
-
Returns:
Expression
|
|
|
The purpose of this is to optimize away already known constant=constant style expressions.
7 > 8 --> False
"G" = "G" --> True
-
e
:
Expression
-
Returns:
Expression
|
|
|
Additional arithmetic identity optimizations
x - 0 -> x, x - x -> 0, x % 1 -> 0
-
e
:
Expression
-
Returns:
Expression
|
|
|
Simplify conditional expressions
x ? true : false -> x, x ? false : true -> !x, x ? y : y -> y
-
e
:
Expression
-
Returns:
Expression
|
|
|
String concatenation with empty string optimization
"" + x -> x, x + "" -> x
-
e
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
Not in use, would cause looping...
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
exp
:
Expression
-
Returns:
Expression
|
|
|
Balance tree that is too much weighted to other side.
The real advantage is not-so-nested-stack
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
Not in use, would cause looping...
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
exp
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
Not in use, would cause looping...
This is opposite of gather
-
e
:
Expression
-
Returns:
Expression
|
|
|
-
exp
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|
|
|
-
_arg1
:
Expression
-
Returns:
Expression
|