UnaryExpression.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. namespace Jint.Parser.Ast
  3. {
  4. public enum UnaryOperator
  5. {
  6. Plus,
  7. Minus,
  8. BitwiseNot,
  9. LogicalNot,
  10. Delete,
  11. Void,
  12. TypeOf,
  13. Increment,
  14. Decrement,
  15. }
  16. public class UnaryExpression : Expression
  17. {
  18. public UnaryOperator Operator;
  19. public Expression Argument;
  20. public bool Prefix;
  21. public static UnaryOperator ParseUnaryOperator(string op)
  22. {
  23. switch (op)
  24. {
  25. case "+":
  26. return UnaryOperator.Plus;
  27. case "-":
  28. return UnaryOperator.Minus;
  29. case "++":
  30. return UnaryOperator.Increment;
  31. case "--":
  32. return UnaryOperator.Decrement;
  33. case "~":
  34. return UnaryOperator.BitwiseNot;
  35. case "!":
  36. return UnaryOperator.LogicalNot;
  37. case "delete":
  38. return UnaryOperator.Delete;
  39. case "void":
  40. return UnaryOperator.Void;
  41. case "typeof":
  42. return UnaryOperator.TypeOf;
  43. default:
  44. throw new ArgumentOutOfRangeException("Invalid unary operator: " + op);
  45. }
  46. }
  47. }
  48. }