PageRenderTime 52ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

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

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