Ryujinx/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/IntegerLiteral.cs
Andrey Sukharev ae4324032a
Optimize string memory usage. Use Spans and StringBuilders where possible (#3933)
* Optimize string memory usage. Use ReadOnlySpan<char> and StringBuilder where possible.

* Fix copypaste error

* Code generator review fixes

* Use if statement instead of switch

* Code style fixes

Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>

* Another code style fix

* Styling fix

Co-authored-by: Mary-nyan <thog@protonmail.com>

* Styling fix

Co-authored-by: gdkchan <gab.dark.100@gmail.com>

Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
Co-authored-by: Mary-nyan <thog@protonmail.com>
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-01-18 22:25:16 +00:00

42 lines
1 KiB
C#

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