BracedExpression.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System.IO;
  2. namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
  3. {
  4. public class BracedExpression : BaseNode
  5. {
  6. private BaseNode Element;
  7. private BaseNode Expression;
  8. private bool IsArrayExpression;
  9. public BracedExpression(BaseNode Element, BaseNode Expression, bool IsArrayExpression) : base(NodeType.BracedExpression)
  10. {
  11. this.Element = Element;
  12. this.Expression = Expression;
  13. this.IsArrayExpression = IsArrayExpression;
  14. }
  15. public override void PrintLeft(TextWriter Writer)
  16. {
  17. if (IsArrayExpression)
  18. {
  19. Writer.Write("[");
  20. Element.Print(Writer);
  21. Writer.Write("]");
  22. }
  23. else
  24. {
  25. Writer.Write(".");
  26. Element.Print(Writer);
  27. }
  28. if (!Expression.GetType().Equals(NodeType.BracedExpression) || !Expression.GetType().Equals(NodeType.BracedRangeExpression))
  29. {
  30. Writer.Write(" = ");
  31. }
  32. Expression.Print(Writer);
  33. }
  34. }
  35. }