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. _element = element;
  12. _expression = expression;
  13. _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. }