1 /* ****************************************************************************
3 * Copyright (c) Microsoft Corporation.
5 * This source code is subject to terms and conditions of the Apache License, Version 2.0. A
6 * copy of the license can be found in the License.html file at the root of this distribution. If
7 * you cannot locate the Apache License, Version 2.0, please send an email to
8 * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
9 * by the terms of the Apache License, Version 2.0.
11 * You must not remove this notice, or any other, from this software.
14 * ***************************************************************************/
17 namespace Microsoft.Scripting.Ast {
19 namespace System.Linq.Expressions {
23 /// Describes the node types for the nodes of an expression tree.
25 public enum ExpressionType {
27 #region Generated Expression Tree Node Types
29 // *** BEGIN GENERATED CODE ***
30 // generated by function: gen_tree_nodes from: generate_tree.py
33 /// A node that represents arithmetic addition without overflow checking.
37 /// A node that represents arithmetic addition with overflow checking.
41 /// A node that represents a bitwise AND operation.
45 /// A node that represents a short-circuiting conditional AND operation.
49 /// A node that represents getting the length of a one-dimensional array.
53 /// A node that represents indexing into a one-dimensional array.
57 /// A node that represents represents a method call.
61 /// A node that represents a null coalescing operation.
65 /// A node that represents a conditional operation.
69 /// A node that represents an expression that has a constant value.
73 /// A node that represents a cast or conversion operation. If the operation is a numeric conversion, it overflows silently if the converted value does not fit the target type.
77 /// A node that represents a cast or conversion operation. If the operation is a numeric conversion, an exception is thrown if the converted value does not fit the target type.
81 /// A node that represents arithmetic division.
85 /// A node that represents an equality comparison.
89 /// A node that represents a bitwise XOR operation.
93 /// A node that represents a "greater than" numeric comparison.
97 /// A node that represents a "greater than or equal" numeric comparison.
101 /// A node that represents applying a delegate or lambda expression to a list of argument expressions.
105 /// A node that represents a lambda expression.
109 /// A node that represents a bitwise left-shift operation.
113 /// A node that represents a "less than" numeric comparison.
117 /// A node that represents a "less than or equal" numeric comparison.
121 /// A node that represents creating a new IEnumerable object and initializing it from a list of elements.
125 /// A node that represents reading from a field or property.
129 /// A node that represents creating a new object and initializing one or more of its members.
133 /// A node that represents an arithmetic remainder operation.
137 /// A node that represents arithmetic multiplication without overflow checking.
141 /// A node that represents arithmetic multiplication with overflow checking.
145 /// A node that represents an arithmetic negation operation.
149 /// A node that represents a unary plus operation. The result of a predefined unary plus operation is simply the value of the operand, but user-defined implementations may have non-trivial results.
153 /// A node that represents an arithmetic negation operation that has overflow checking.
157 /// A node that represents calling a constructor to create a new object.
161 /// A node that represents creating a new one-dimensional array and initializing it from a list of elements.
165 /// A node that represents creating a new array where the bounds for each dimension are specified.
169 /// A node that represents a bitwise complement operation.
173 /// A node that represents an inequality comparison.
177 /// A node that represents a bitwise OR operation.
181 /// A node that represents a short-circuiting conditional OR operation.
185 /// A node that represents a reference to a parameter or variable defined in the context of the expression.
189 /// A node that represents raising a number to a power.
193 /// A node that represents an expression that has a constant value of type Expression. A Quote node can contain references to parameters defined in the context of the expression it represents.
197 /// A node that represents a bitwise right-shift operation.
201 /// A node that represents arithmetic subtraction without overflow checking.
205 /// A node that represents arithmetic subtraction with overflow checking.
209 /// A node that represents an explicit reference or boxing conversion where null reference (Nothing in Visual Basic) is supplied if the conversion fails.
213 /// A node that represents a type test.
217 /// A node that represents an assignment.
221 /// A node that represents a block of expressions.
225 /// A node that represents a debugging information.
229 /// A node that represents a unary decrement.
233 /// A node that represents a dynamic operation.
237 /// A node that represents a default value.
241 /// A node that represents an extension expression.
245 /// A node that represents a goto.
249 /// A node that represents a unary increment.
253 /// A node that represents an index operation.
257 /// A node that represents a label.
261 /// A node that represents a list of runtime variables.
265 /// A node that represents a loop.
269 /// A node that represents a switch operation.
273 /// A node that represents a throwing of an exception.
277 /// A node that represents a try-catch expression.
281 /// A node that represents an unbox value type operation.
285 /// A node that represents an arithmetic addition compound assignment without overflow checking.
289 /// A node that represents a bitwise AND compound assignment.
293 /// A node that represents an arithmetic division compound assignment .
297 /// A node that represents a bitwise XOR compound assignment.
301 /// A node that represents a bitwise left-shift compound assignment.
305 /// A node that represents an arithmetic remainder compound assignment.
309 /// A node that represents arithmetic multiplication compound assignment without overflow checking.
313 /// A node that represents a bitwise OR compound assignment.
317 /// A node that represents raising a number to a power compound assignment.
321 /// A node that represents a bitwise right-shift compound assignment.
325 /// A node that represents arithmetic subtraction compound assignment without overflow checking.
329 /// A node that represents an arithmetic addition compound assignment with overflow checking.
333 /// A node that represents arithmetic multiplication compound assignment with overflow checking.
335 MultiplyAssignChecked,
337 /// A node that represents arithmetic subtraction compound assignment with overflow checking.
339 SubtractAssignChecked,
341 /// A node that represents an unary prefix increment.
345 /// A node that represents an unary prefix decrement.
349 /// A node that represents an unary postfix increment.
353 /// A node that represents an unary postfix decrement.
357 /// A node that represents a exact type test.
361 /// A node that represents a ones complement.
365 /// A node that represents a true condition value.
369 /// A node that represents a false condition value.
373 // *** END GENERATED CODE ***