NewExpression.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.IO;
  2. namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
  3. {
  4. public class NewExpression : BaseNode
  5. {
  6. private NodeArray Expressions;
  7. private BaseNode TypeNode;
  8. private NodeArray Initializers;
  9. private bool IsGlobal;
  10. private bool IsArrayExpression;
  11. public NewExpression(NodeArray Expressions, BaseNode TypeNode, NodeArray Initializers, bool IsGlobal, bool IsArrayExpression) : base(NodeType.NewExpression)
  12. {
  13. this.Expressions = Expressions;
  14. this.TypeNode = TypeNode;
  15. this.Initializers = Initializers;
  16. this.IsGlobal = IsGlobal;
  17. this.IsArrayExpression = IsArrayExpression;
  18. }
  19. public override void PrintLeft(TextWriter Writer)
  20. {
  21. if (IsGlobal)
  22. {
  23. Writer.Write("::operator ");
  24. }
  25. Writer.Write("new ");
  26. if (IsArrayExpression)
  27. {
  28. Writer.Write("[] ");
  29. }
  30. if (Expressions.Nodes.Count != 0)
  31. {
  32. Writer.Write("(");
  33. Expressions.Print(Writer);
  34. Writer.Write(")");
  35. }
  36. TypeNode.Print(Writer);
  37. if (Initializers.Nodes.Count != 0)
  38. {
  39. Writer.Write("(");
  40. Initializers.Print(Writer);
  41. Writer.Write(")");
  42. }
  43. }
  44. }
  45. }