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

61 lines
1.7 KiB
C#
Raw Normal View History

using System.IO;
namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{
public class FunctionType : BaseNode
{
private BaseNode _returnType;
private BaseNode _params;
private BaseNode _cvQualifier;
private SimpleReferenceType _referenceQualifier;
private BaseNode _exceptionSpec;
public FunctionType(BaseNode returnType, BaseNode Params, BaseNode cvQualifier, SimpleReferenceType referenceQualifier, BaseNode exceptionSpec) : base(NodeType.FunctionType)
{
_returnType = returnType;
_params = Params;
_cvQualifier = cvQualifier;
_referenceQualifier = referenceQualifier;
_exceptionSpec = exceptionSpec;
}
public override void PrintLeft(TextWriter writer)
{
_returnType.PrintLeft(writer);
writer.Write(" ");
}
public override void PrintRight(TextWriter writer)
{
writer.Write("(");
_params.Print(writer);
writer.Write(")");
_returnType.PrintRight(writer);
_cvQualifier.Print(writer);
if (_referenceQualifier.Qualifier != Reference.None)
{
writer.Write(" ");
_referenceQualifier.PrintQualifier(writer);
}
if (_exceptionSpec != null)
{
writer.Write(" ");
_exceptionSpec.Print(writer);
}
}
public override bool HasRightPart()
{
return true;
}
public override bool HasFunctions()
{
return true;
}
}
}