Ryujinx/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/IntegerLiteral.cs

41 lines
1 KiB
C#
Raw Normal View History

using System.IO;
namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{
public class IntegerLiteral : BaseNode
{
2018-12-01 20:01:59 +00:00
private string _literalName;
private string _literalValue;
2018-12-01 20:01:59 +00:00
public IntegerLiteral(string literalName, string literalValue) : base(NodeType.IntegerLiteral)
{
2018-12-01 20:01:59 +00:00
this._literalValue = literalValue;
this._literalName = literalName;
}
2018-12-01 20:01:59 +00:00
public override void PrintLeft(TextWriter writer)
{
2018-12-01 20:01:59 +00:00
if (_literalName.Length > 3)
{
2018-12-01 20:01:59 +00:00
writer.Write("(");
writer.Write(_literalName);
writer.Write(")");
}
2018-12-01 20:01:59 +00:00
if (_literalValue[0] == 'n')
{
2018-12-01 20:01:59 +00:00
writer.Write("-");
writer.Write(_literalValue.Substring(1));
}
else
{
2018-12-01 20:01:59 +00:00
writer.Write(_literalValue);
}
2018-12-01 20:01:59 +00:00
if (_literalName.Length <= 3)
{
2018-12-01 20:01:59 +00:00
writer.Write(_literalName);
}
}
}
}