Ryujinx/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/FunctionType.cs
Alex Barney fb1d9493a3 Adjust naming conventions and general refactoring in HLE Project (#527)
* Rename enum fields

* Naming conventions

* Remove unneeded ".this"

* Remove unneeded semicolons

* Remove unused Usings

* Don't use var

* Remove unneeded enum underlying types

* Explicitly label class visibility

* Remove unneeded @ prefixes

* Remove unneeded commas

* Remove unneeded if expressions

* Method doesn't use unsafe code

* Remove unneeded casts

* Initialized objects don't need an empty constructor

* Remove settings from DotSettings

* Revert "Explicitly label class visibility"

This reverts commit ad5eb5787c.

* Small changes

* Revert external enum renaming

* Changes from feedback

* Apply previous refactorings to the merged code
2018-12-06 09:16:24 -02:00

61 lines
No EOL
1.7 KiB
C#

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;
}
}
}