aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/ConditionalExpression.cs
diff options
context:
space:
mode:
authorThomas Guillemard <thog@protonmail.com>2018-09-15 15:29:18 +0200
committerAc_K <Acoustik666@gmail.com>2018-09-15 15:29:18 +0200
commit46a11460d4701f66926f70b5dc394d209e877854 (patch)
tree504a52d2e4d33d83515105c571cf3cae01ce6efe /Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/ConditionalExpression.cs
parent7542f4a65f1bc5124c1d6ada3e4875592069dadf (diff)
Rewrite the C++ Demangler (#416)
* Rewrite the C++ Demangler This new Demangler provides support to almost every possible mangled symbols and should behaves like GNU c++filt. It works on 98.9% of the sdk's symbols and 99.5% of Puyo Puyo Tetris's symbols. * Fix code style * Fix noexcept enclosed expression parsing issues * fix code style issues
Diffstat (limited to 'Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/ConditionalExpression.cs')
-rw-r--r--Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/ConditionalExpression.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/ConditionalExpression.cs b/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/ConditionalExpression.cs
new file mode 100644
index 00000000..17ac7c1a
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/ConditionalExpression.cs
@@ -0,0 +1,29 @@
+using System.IO;
+
+namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
+{
+ public class ConditionalExpression : BaseNode
+ {
+ private BaseNode ThenNode;
+ private BaseNode ElseNode;
+ private BaseNode ConditionNode;
+
+ public ConditionalExpression(BaseNode ConditionNode, BaseNode ThenNode, BaseNode ElseNode) : base(NodeType.ConditionalExpression)
+ {
+ this.ThenNode = ThenNode;
+ this.ConditionNode = ConditionNode;
+ this.ElseNode = ElseNode;
+ }
+
+ public override void PrintLeft(TextWriter Writer)
+ {
+ Writer.Write("(");
+ ConditionNode.Print(Writer);
+ Writer.Write(") ? (");
+ ThenNode.Print(Writer);
+ Writer.Write(") : (");
+ ElseNode.Print(Writer);
+ Writer.Write(")");
+ }
+ }
+} \ No newline at end of file