2018-09-15 13:29:18 +00:00
|
|
|
using System.IO;
|
|
|
|
|
|
|
|
namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
|
|
|
|
{
|
|
|
|
public class FunctionType : BaseNode
|
|
|
|
{
|
2018-12-06 11:16:24 +00:00
|
|
|
private BaseNode _returnType;
|
|
|
|
private BaseNode _params;
|
|
|
|
private BaseNode _cvQualifier;
|
|
|
|
private SimpleReferenceType _referenceQualifier;
|
|
|
|
private BaseNode _exceptionSpec;
|
2018-09-15 13:29:18 +00:00
|
|
|
|
2018-12-06 11:16:24 +00:00
|
|
|
public FunctionType(BaseNode returnType, BaseNode Params, BaseNode cvQualifier, SimpleReferenceType referenceQualifier, BaseNode exceptionSpec) : base(NodeType.FunctionType)
|
2018-09-15 13:29:18 +00:00
|
|
|
{
|
2018-12-06 11:16:24 +00:00
|
|
|
_returnType = returnType;
|
|
|
|
_params = Params;
|
|
|
|
_cvQualifier = cvQualifier;
|
|
|
|
_referenceQualifier = referenceQualifier;
|
|
|
|
_exceptionSpec = exceptionSpec;
|
2018-09-15 13:29:18 +00:00
|
|
|
}
|
|
|
|
|
2018-12-06 11:16:24 +00:00
|
|
|
public override void PrintLeft(TextWriter writer)
|
2018-09-15 13:29:18 +00:00
|
|
|
{
|
2018-12-06 11:16:24 +00:00
|
|
|
_returnType.PrintLeft(writer);
|
|
|
|
writer.Write(" ");
|
2018-09-15 13:29:18 +00:00
|
|
|
}
|
|
|
|
|
2018-12-06 11:16:24 +00:00
|
|
|
public override void PrintRight(TextWriter writer)
|
2018-09-15 13:29:18 +00:00
|
|
|
{
|
2018-12-06 11:16:24 +00:00
|
|
|
writer.Write("(");
|
|
|
|
_params.Print(writer);
|
|
|
|
writer.Write(")");
|
2018-09-15 13:29:18 +00:00
|
|
|
|
2018-12-06 11:16:24 +00:00
|
|
|
_returnType.PrintRight(writer);
|
2018-09-15 13:29:18 +00:00
|
|
|
|
2018-12-06 11:16:24 +00:00
|
|
|
_cvQualifier.Print(writer);
|
2018-09-15 13:29:18 +00:00
|
|
|
|
2018-12-06 11:16:24 +00:00
|
|
|
if (_referenceQualifier.Qualifier != Reference.None)
|
2018-09-15 13:29:18 +00:00
|
|
|
{
|
2018-12-06 11:16:24 +00:00
|
|
|
writer.Write(" ");
|
|
|
|
_referenceQualifier.PrintQualifier(writer);
|
2018-09-15 13:29:18 +00:00
|
|
|
}
|
|
|
|
|
2018-12-06 11:16:24 +00:00
|
|
|
if (_exceptionSpec != null)
|
2018-09-15 13:29:18 +00:00
|
|
|
{
|
2018-12-06 11:16:24 +00:00
|
|
|
writer.Write(" ");
|
|
|
|
_exceptionSpec.Print(writer);
|
2018-09-15 13:29:18 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public override bool HasRightPart()
|
|
|
|
{
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public override bool HasFunctions()
|
|
|
|
{
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|