3615a70cae
This reverts commit 85dbb9559a
.
59 lines
No EOL
1.4 KiB
C#
59 lines
No EOL
1.4 KiB
C#
using System.IO;
|
|
|
|
namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
|
|
{
|
|
public class ArrayType : BaseNode
|
|
{
|
|
private BaseNode Base;
|
|
private BaseNode DimensionExpression;
|
|
private string DimensionString;
|
|
|
|
public ArrayType(BaseNode Base, BaseNode DimensionExpression = null) : base(NodeType.ArrayType)
|
|
{
|
|
this.Base = Base;
|
|
this.DimensionExpression = DimensionExpression;
|
|
}
|
|
|
|
public ArrayType(BaseNode Base, string DimensionString) : base(NodeType.ArrayType)
|
|
{
|
|
this.Base = Base;
|
|
this.DimensionString = DimensionString;
|
|
}
|
|
|
|
public override bool HasRightPart()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public override bool IsArray()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public override void PrintLeft(TextWriter Writer)
|
|
{
|
|
Base.PrintLeft(Writer);
|
|
}
|
|
|
|
public override void PrintRight(TextWriter Writer)
|
|
{
|
|
// FIXME: detect if previous char was a ].
|
|
Writer.Write(" ");
|
|
|
|
Writer.Write("[");
|
|
|
|
if (DimensionString != null)
|
|
{
|
|
Writer.Write(DimensionString);
|
|
}
|
|
else if (DimensionExpression != null)
|
|
{
|
|
DimensionExpression.Print(Writer);
|
|
}
|
|
|
|
Writer.Write("]");
|
|
|
|
Base.PrintRight(Writer);
|
|
}
|
|
}
|
|
} |