IntegerLiteral.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.IO;
  2. using System;
  3. namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
  4. {
  5. public class IntegerLiteral : BaseNode
  6. {
  7. private string _literalName;
  8. private string _literalValue;
  9. public IntegerLiteral(string literalName, string literalValue) : base(NodeType.IntegerLiteral)
  10. {
  11. _literalValue = literalValue;
  12. _literalName = literalName;
  13. }
  14. public override void PrintLeft(TextWriter writer)
  15. {
  16. if (_literalName.Length > 3)
  17. {
  18. writer.Write("(");
  19. writer.Write(_literalName);
  20. writer.Write(")");
  21. }
  22. if (_literalValue[0] == 'n')
  23. {
  24. writer.Write("-");
  25. writer.Write(_literalValue.AsSpan(1));
  26. }
  27. else
  28. {
  29. writer.Write(_literalValue);
  30. }
  31. if (_literalName.Length <= 3)
  32. {
  33. writer.Write(_literalName);
  34. }
  35. }
  36. }
  37. }