PageRenderTime 39ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/IronPython_Main/Runtime/Microsoft.Scripting.Core/Ast/ExpressionType.cs

#
C# | 377 lines | 95 code | 7 blank | 275 comment | 0 complexity | 381f0b4cbb15739f2dab797f91ed37a6 MD5 | raw file
Possible License(s): GPL-2.0, MPL-2.0-no-copyleft-exception, CPL-1.0, CC-BY-SA-3.0, BSD-3-Clause, ISC, AGPL-3.0, LGPL-2.1, Apache-2.0
  1. /* ****************************************************************************
  2. *
  3. * Copyright (c) Microsoft Corporation.
  4. *
  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.
  10. *
  11. * You must not remove this notice, or any other, from this software.
  12. *
  13. *
  14. * ***************************************************************************/
  15. #if CLR2
  16. namespace Microsoft.Scripting.Ast {
  17. #else
  18. namespace System.Linq.Expressions {
  19. #endif
  20. /// <summary>
  21. /// Describes the node types for the nodes of an expression tree.
  22. /// </summary>
  23. public enum ExpressionType {
  24. #region Generated Expression Tree Node Types
  25. // *** BEGIN GENERATED CODE ***
  26. // generated by function: gen_tree_nodes from: generate_tree.py
  27. /// <summary>
  28. /// A node that represents arithmetic addition without overflow checking.
  29. /// </summary>
  30. Add,
  31. /// <summary>
  32. /// A node that represents arithmetic addition with overflow checking.
  33. /// </summary>
  34. AddChecked,
  35. /// <summary>
  36. /// A node that represents a bitwise AND operation.
  37. /// </summary>
  38. And,
  39. /// <summary>
  40. /// A node that represents a short-circuiting conditional AND operation.
  41. /// </summary>
  42. AndAlso,
  43. /// <summary>
  44. /// A node that represents getting the length of a one-dimensional array.
  45. /// </summary>
  46. ArrayLength,
  47. /// <summary>
  48. /// A node that represents indexing into a one-dimensional array.
  49. /// </summary>
  50. ArrayIndex,
  51. /// <summary>
  52. /// A node that represents represents a method call.
  53. /// </summary>
  54. Call,
  55. /// <summary>
  56. /// A node that represents a null coalescing operation.
  57. /// </summary>
  58. Coalesce,
  59. /// <summary>
  60. /// A node that represents a conditional operation.
  61. /// </summary>
  62. Conditional,
  63. /// <summary>
  64. /// A node that represents an expression that has a constant value.
  65. /// </summary>
  66. Constant,
  67. /// <summary>
  68. /// 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.
  69. /// </summary>
  70. Convert,
  71. /// <summary>
  72. /// 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.
  73. /// </summary>
  74. ConvertChecked,
  75. /// <summary>
  76. /// A node that represents arithmetic division.
  77. /// </summary>
  78. Divide,
  79. /// <summary>
  80. /// A node that represents an equality comparison.
  81. /// </summary>
  82. Equal,
  83. /// <summary>
  84. /// A node that represents a bitwise XOR operation.
  85. /// </summary>
  86. ExclusiveOr,
  87. /// <summary>
  88. /// A node that represents a "greater than" numeric comparison.
  89. /// </summary>
  90. GreaterThan,
  91. /// <summary>
  92. /// A node that represents a "greater than or equal" numeric comparison.
  93. /// </summary>
  94. GreaterThanOrEqual,
  95. /// <summary>
  96. /// A node that represents applying a delegate or lambda expression to a list of argument expressions.
  97. /// </summary>
  98. Invoke,
  99. /// <summary>
  100. /// A node that represents a lambda expression.
  101. /// </summary>
  102. Lambda,
  103. /// <summary>
  104. /// A node that represents a bitwise left-shift operation.
  105. /// </summary>
  106. LeftShift,
  107. /// <summary>
  108. /// A node that represents a "less than" numeric comparison.
  109. /// </summary>
  110. LessThan,
  111. /// <summary>
  112. /// A node that represents a "less than or equal" numeric comparison.
  113. /// </summary>
  114. LessThanOrEqual,
  115. /// <summary>
  116. /// A node that represents creating a new IEnumerable object and initializing it from a list of elements.
  117. /// </summary>
  118. ListInit,
  119. /// <summary>
  120. /// A node that represents reading from a field or property.
  121. /// </summary>
  122. MemberAccess,
  123. /// <summary>
  124. /// A node that represents creating a new object and initializing one or more of its members.
  125. /// </summary>
  126. MemberInit,
  127. /// <summary>
  128. /// A node that represents an arithmetic remainder operation.
  129. /// </summary>
  130. Modulo,
  131. /// <summary>
  132. /// A node that represents arithmetic multiplication without overflow checking.
  133. /// </summary>
  134. Multiply,
  135. /// <summary>
  136. /// A node that represents arithmetic multiplication with overflow checking.
  137. /// </summary>
  138. MultiplyChecked,
  139. /// <summary>
  140. /// A node that represents an arithmetic negation operation.
  141. /// </summary>
  142. Negate,
  143. /// <summary>
  144. /// 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.
  145. /// </summary>
  146. UnaryPlus,
  147. /// <summary>
  148. /// A node that represents an arithmetic negation operation that has overflow checking.
  149. /// </summary>
  150. NegateChecked,
  151. /// <summary>
  152. /// A node that represents calling a constructor to create a new object.
  153. /// </summary>
  154. New,
  155. /// <summary>
  156. /// A node that represents creating a new one-dimensional array and initializing it from a list of elements.
  157. /// </summary>
  158. NewArrayInit,
  159. /// <summary>
  160. /// A node that represents creating a new array where the bounds for each dimension are specified.
  161. /// </summary>
  162. NewArrayBounds,
  163. /// <summary>
  164. /// A node that represents a bitwise complement operation.
  165. /// </summary>
  166. Not,
  167. /// <summary>
  168. /// A node that represents an inequality comparison.
  169. /// </summary>
  170. NotEqual,
  171. /// <summary>
  172. /// A node that represents a bitwise OR operation.
  173. /// </summary>
  174. Or,
  175. /// <summary>
  176. /// A node that represents a short-circuiting conditional OR operation.
  177. /// </summary>
  178. OrElse,
  179. /// <summary>
  180. /// A node that represents a reference to a parameter or variable defined in the context of the expression.
  181. /// </summary>
  182. Parameter,
  183. /// <summary>
  184. /// A node that represents raising a number to a power.
  185. /// </summary>
  186. Power,
  187. /// <summary>
  188. /// 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.
  189. /// </summary>
  190. Quote,
  191. /// <summary>
  192. /// A node that represents a bitwise right-shift operation.
  193. /// </summary>
  194. RightShift,
  195. /// <summary>
  196. /// A node that represents arithmetic subtraction without overflow checking.
  197. /// </summary>
  198. Subtract,
  199. /// <summary>
  200. /// A node that represents arithmetic subtraction with overflow checking.
  201. /// </summary>
  202. SubtractChecked,
  203. /// <summary>
  204. /// A node that represents an explicit reference or boxing conversion where null reference (Nothing in Visual Basic) is supplied if the conversion fails.
  205. /// </summary>
  206. TypeAs,
  207. /// <summary>
  208. /// A node that represents a type test.
  209. /// </summary>
  210. TypeIs,
  211. /// <summary>
  212. /// A node that represents an assignment.
  213. /// </summary>
  214. Assign,
  215. /// <summary>
  216. /// A node that represents a block of expressions.
  217. /// </summary>
  218. Block,
  219. /// <summary>
  220. /// A node that represents a debugging information.
  221. /// </summary>
  222. DebugInfo,
  223. /// <summary>
  224. /// A node that represents a unary decrement.
  225. /// </summary>
  226. Decrement,
  227. /// <summary>
  228. /// A node that represents a dynamic operation.
  229. /// </summary>
  230. Dynamic,
  231. /// <summary>
  232. /// A node that represents a default value.
  233. /// </summary>
  234. Default,
  235. /// <summary>
  236. /// A node that represents an extension expression.
  237. /// </summary>
  238. Extension,
  239. /// <summary>
  240. /// A node that represents a goto.
  241. /// </summary>
  242. Goto,
  243. /// <summary>
  244. /// A node that represents a unary increment.
  245. /// </summary>
  246. Increment,
  247. /// <summary>
  248. /// A node that represents an index operation.
  249. /// </summary>
  250. Index,
  251. /// <summary>
  252. /// A node that represents a label.
  253. /// </summary>
  254. Label,
  255. /// <summary>
  256. /// A node that represents a list of runtime variables.
  257. /// </summary>
  258. RuntimeVariables,
  259. /// <summary>
  260. /// A node that represents a loop.
  261. /// </summary>
  262. Loop,
  263. /// <summary>
  264. /// A node that represents a switch operation.
  265. /// </summary>
  266. Switch,
  267. /// <summary>
  268. /// A node that represents a throwing of an exception.
  269. /// </summary>
  270. Throw,
  271. /// <summary>
  272. /// A node that represents a try-catch expression.
  273. /// </summary>
  274. Try,
  275. /// <summary>
  276. /// A node that represents an unbox value type operation.
  277. /// </summary>
  278. Unbox,
  279. /// <summary>
  280. /// A node that represents an arithmetic addition compound assignment without overflow checking.
  281. /// </summary>
  282. AddAssign,
  283. /// <summary>
  284. /// A node that represents a bitwise AND compound assignment.
  285. /// </summary>
  286. AndAssign,
  287. /// <summary>
  288. /// A node that represents an arithmetic division compound assignment .
  289. /// </summary>
  290. DivideAssign,
  291. /// <summary>
  292. /// A node that represents a bitwise XOR compound assignment.
  293. /// </summary>
  294. ExclusiveOrAssign,
  295. /// <summary>
  296. /// A node that represents a bitwise left-shift compound assignment.
  297. /// </summary>
  298. LeftShiftAssign,
  299. /// <summary>
  300. /// A node that represents an arithmetic remainder compound assignment.
  301. /// </summary>
  302. ModuloAssign,
  303. /// <summary>
  304. /// A node that represents arithmetic multiplication compound assignment without overflow checking.
  305. /// </summary>
  306. MultiplyAssign,
  307. /// <summary>
  308. /// A node that represents a bitwise OR compound assignment.
  309. /// </summary>
  310. OrAssign,
  311. /// <summary>
  312. /// A node that represents raising a number to a power compound assignment.
  313. /// </summary>
  314. PowerAssign,
  315. /// <summary>
  316. /// A node that represents a bitwise right-shift compound assignment.
  317. /// </summary>
  318. RightShiftAssign,
  319. /// <summary>
  320. /// A node that represents arithmetic subtraction compound assignment without overflow checking.
  321. /// </summary>
  322. SubtractAssign,
  323. /// <summary>
  324. /// A node that represents an arithmetic addition compound assignment with overflow checking.
  325. /// </summary>
  326. AddAssignChecked,
  327. /// <summary>
  328. /// A node that represents arithmetic multiplication compound assignment with overflow checking.
  329. /// </summary>
  330. MultiplyAssignChecked,
  331. /// <summary>
  332. /// A node that represents arithmetic subtraction compound assignment with overflow checking.
  333. /// </summary>
  334. SubtractAssignChecked,
  335. /// <summary>
  336. /// A node that represents an unary prefix increment.
  337. /// </summary>
  338. PreIncrementAssign,
  339. /// <summary>
  340. /// A node that represents an unary prefix decrement.
  341. /// </summary>
  342. PreDecrementAssign,
  343. /// <summary>
  344. /// A node that represents an unary postfix increment.
  345. /// </summary>
  346. PostIncrementAssign,
  347. /// <summary>
  348. /// A node that represents an unary postfix decrement.
  349. /// </summary>
  350. PostDecrementAssign,
  351. /// <summary>
  352. /// A node that represents a exact type test.
  353. /// </summary>
  354. TypeEqual,
  355. /// <summary>
  356. /// A node that represents a ones complement.
  357. /// </summary>
  358. OnesComplement,
  359. /// <summary>
  360. /// A node that represents a true condition value.
  361. /// </summary>
  362. IsTrue,
  363. /// <summary>
  364. /// A node that represents a false condition value.
  365. /// </summary>
  366. IsFalse,
  367. // *** END GENERATED CODE ***
  368. #endregion
  369. }
  370. }