aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/BracedExpression.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/BracedExpression.cs')
-rw-r--r--src/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/BracedExpression.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/BracedExpression.cs b/src/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/BracedExpression.cs
new file mode 100644
index 00000000..6b9782f5
--- /dev/null
+++ b/src/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/BracedExpression.cs
@@ -0,0 +1,40 @@
+using System.IO;
+
+namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
+{
+ public class BracedExpression : BaseNode
+ {
+ private BaseNode _element;
+ private BaseNode _expression;
+ private bool _isArrayExpression;
+
+ public BracedExpression(BaseNode element, BaseNode expression, bool isArrayExpression) : base(NodeType.BracedExpression)
+ {
+ _element = element;
+ _expression = expression;
+ _isArrayExpression = isArrayExpression;
+ }
+
+ public override void PrintLeft(TextWriter writer)
+ {
+ if (_isArrayExpression)
+ {
+ writer.Write("[");
+ _element.Print(writer);
+ writer.Write("]");
+ }
+ else
+ {
+ writer.Write(".");
+ _element.Print(writer);
+ }
+
+ if (!_expression.GetType().Equals(NodeType.BracedExpression) || !_expression.GetType().Equals(NodeType.BracedRangeExpression))
+ {
+ writer.Write(" = ");
+ }
+
+ _expression.Print(writer);
+ }
+ }
+}