Fix code style

This commit is contained in:
Thog 2018-09-13 23:48:42 +02:00
commit 2299ef0565
No known key found for this signature in database
GPG key ID: 0CD291558FAFDBC6
46 changed files with 1246 additions and 455 deletions

View file

@ -39,14 +39,21 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
// FIXME: detect if previous char was a ]. // FIXME: detect if previous char was a ].
Writer.Write(" "); Writer.Write(" ");
Writer.Write("[");
if (DimensionString != null)
Writer.Write(DimensionString);
else if (DimensionExpression != null)
DimensionExpression.Print(Writer);
Writer.Write("]");
Base.PrintRight(Writer);
Writer.Write("[");
if (DimensionString != null)
{
Writer.Write(DimensionString);
}
else if (DimensionExpression != null)
{
DimensionExpression.Print(Writer);
}
Writer.Write("]");
Base.PrintRight(Writer);
} }
} }
} }

View file

@ -70,9 +70,12 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public virtual void Print(TextWriter Writer) public virtual void Print(TextWriter Writer)
{ {
PrintLeft(Writer); PrintLeft(Writer);
if (HasRightPart()) if (HasRightPart())
{
PrintRight(Writer); PrintRight(Writer);
} }
}
public abstract void PrintLeft(TextWriter Writer); public abstract void PrintLeft(TextWriter Writer);
@ -101,7 +104,9 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override string ToString() public override string ToString()
{ {
StringWriter Writer = new StringWriter(); StringWriter Writer = new StringWriter();
Print(Writer); Print(Writer);
return Writer.ToString(); return Writer.ToString();
} }
} }

View file

@ -18,19 +18,24 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
if (Name.Equals(">")) if (Name.Equals(">"))
{
Writer.Write("("); Writer.Write("(");
}
Writer.Write("("); Writer.Write("(");
LeftPart.Print(Writer); LeftPart.Print(Writer);
Writer.Write(") "); Writer.Write(") ");
Writer.Write(Name); Writer.Write(Name);
Writer.Write(" ("); Writer.Write(" (");
RightPart.Print(Writer); RightPart.Print(Writer);
Writer.Write(")"); Writer.Write(")");
if (Name.Equals(">")) if (Name.Equals(">"))
{
Writer.Write(")"); Writer.Write(")");
} }
} }
} }
}

View file

@ -33,7 +33,9 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
Writer.Write(" = "); Writer.Write(" = ");
} }
Expression.Print(Writer); Expression.Print(Writer);
} }
} }
} }

View file

@ -27,6 +27,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
Writer.Write(" = "); Writer.Write(" = ");
} }
Expression.Print(Writer); Expression.Print(Writer);
} }

View file

@ -16,6 +16,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
Callee.Print(Writer); Callee.Print(Writer);
Writer.Write("("); Writer.Write("(");
Writer.Write(string.Join<BaseNode>(", ", Nodes.ToArray())); Writer.Write(string.Join<BaseNode>(", ", Nodes.ToArray()));
Writer.Write(")"); Writer.Write(")");

View file

@ -4,10 +4,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class ConversionOperatorType : ParentNode public class ConversionOperatorType : ParentNode
{ {
public ConversionOperatorType(BaseNode Child) : base(NodeType.ConversionOperatorType, Child) public ConversionOperatorType(BaseNode Child) : base(NodeType.ConversionOperatorType, Child) { }
{
}
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {

View file

@ -4,7 +4,8 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class CtorDtorNameType : ParentNode public class CtorDtorNameType : ParentNode
{ {
bool IsDestructor; private bool IsDestructor;
public CtorDtorNameType(BaseNode Name, bool IsDestructor) : base(NodeType.CtorDtorNameType, Name) public CtorDtorNameType(BaseNode Name, bool IsDestructor) : base(NodeType.CtorDtorNameType, Name)
{ {
this.IsDestructor = IsDestructor; this.IsDestructor = IsDestructor;
@ -13,7 +14,10 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
if (IsDestructor) if (IsDestructor)
{
Writer.Write("~"); Writer.Write("~");
}
Writer.Write(Child.GetName()); Writer.Write(Child.GetName());
} }
} }

View file

@ -16,10 +16,17 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
if (IsGlobal) if (IsGlobal)
{
Writer.Write("::"); Writer.Write("::");
}
Writer.Write("delete"); Writer.Write("delete");
if (IsArrayExpression) if (IsArrayExpression)
{
Writer.Write("[] "); Writer.Write("[] ");
}
Child.Print(Writer); Child.Print(Writer);
} }
} }

View file

@ -4,9 +4,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class DtorName : ParentNode public class DtorName : ParentNode
{ {
public DtorName(BaseNode Name) : base(NodeType.DtOrName, Name) public DtorName(BaseNode Name) : base(NodeType.DtOrName, Name) { }
{
}
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {

View file

@ -4,9 +4,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class DynamicExceptionSpec : ParentNode public class DynamicExceptionSpec : ParentNode
{ {
public DynamicExceptionSpec(BaseNode Child) : base(NodeType.DynamicExceptionSpec, Child) public DynamicExceptionSpec(BaseNode Child) : base(NodeType.DynamicExceptionSpec, Child) { }
{
}
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {

View file

@ -5,6 +5,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class ElaboratedType : ParentNode public class ElaboratedType : ParentNode
{ {
private string Elaborated; private string Elaborated;
public ElaboratedType(string Elaborated, BaseNode Type) : base(NodeType.ElaboratedType, Type) public ElaboratedType(string Elaborated, BaseNode Type) : base(NodeType.ElaboratedType, Type)
{ {
this.Elaborated = Elaborated; this.Elaborated = Elaborated;

View file

@ -10,6 +10,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
private BaseNode Ref; private BaseNode Ref;
private BaseNode Attrs; private BaseNode Attrs;
private BaseNode Ret; private BaseNode Ret;
public EncodedFunction(BaseNode Name, BaseNode Params, BaseNode CV, BaseNode Ref, BaseNode Attrs, BaseNode Ret) : base(NodeType.NameType) public EncodedFunction(BaseNode Name, BaseNode Params, BaseNode CV, BaseNode Ref, BaseNode Attrs, BaseNode Ret) : base(NodeType.NameType)
{ {
this.Name = Name; this.Name = Name;
@ -25,10 +26,15 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
if (Ret != null) if (Ret != null)
{ {
Ret.PrintLeft(Writer); Ret.PrintLeft(Writer);
if (!Ret.HasRightPart()) if (!Ret.HasRightPart())
{
Writer.Write(" "); Writer.Write(" ");
} }
}
Name.Print(Writer); Name.Print(Writer);
} }
public override bool HasRightPart() public override bool HasRightPart()
@ -39,21 +45,33 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintRight(TextWriter Writer) public override void PrintRight(TextWriter Writer)
{ {
Writer.Write("("); Writer.Write("(");
if (Params != null) if (Params != null)
{
Params.Print(Writer); Params.Print(Writer);
}
Writer.Write(")"); Writer.Write(")");
if (Ret != null) if (Ret != null)
{
Ret.PrintRight(Writer); Ret.PrintRight(Writer);
}
if (CV != null) if (CV != null)
{
CV.Print(Writer); CV.Print(Writer);
}
if (Ref != null) if (Ref != null)
{
Ref.Print(Writer); Ref.Print(Writer);
}
if (Attrs != null) if (Attrs != null)
{
Attrs.Print(Writer); Attrs.Print(Writer);
} }
} }
} }
}

View file

@ -5,7 +5,6 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class FoldExpression : BaseNode public class FoldExpression : BaseNode
{ {
private bool IsLeftFold; private bool IsLeftFold;
private string OperatorName; private string OperatorName;
private BaseNode Expression; private BaseNode Expression;
private BaseNode Initializer; private BaseNode Initializer;

View file

@ -4,11 +4,11 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class ForwardTemplateReference : BaseNode public class ForwardTemplateReference : BaseNode
{ {
private int Index; // TODO: Compute inside the Demangler
// TOOD: Compute inside the Demangler
public BaseNode Reference; public BaseNode Reference;
private int Index;
public ForwardTemplateReference(int Index) : base(NodeType.ForwardTemplateReference) public ForwardTemplateReference(int Index) : base(NodeType.ForwardTemplateReference)
{ {
this.Index = Index; this.Index = Index;

View file

@ -14,8 +14,11 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
Writer.Write("fp "); Writer.Write("fp ");
if (Number != null) if (Number != null)
{
Writer.Write(Number); Writer.Write(Number);
} }
} }
} }
}

View file

@ -9,6 +9,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
private BaseNode CVQualifier; private BaseNode CVQualifier;
private SimpleReferenceType ReferenceQualifier; private SimpleReferenceType ReferenceQualifier;
private BaseNode ExceptionSpec; private BaseNode ExceptionSpec;
public FunctionType(BaseNode ReturnType, BaseNode Params, BaseNode CVQualifier, SimpleReferenceType ReferenceQualifier, BaseNode ExceptionSpec) : base(NodeType.FunctionType) public FunctionType(BaseNode ReturnType, BaseNode Params, BaseNode CVQualifier, SimpleReferenceType ReferenceQualifier, BaseNode ExceptionSpec) : base(NodeType.FunctionType)
{ {
this.ReturnType = ReturnType; this.ReturnType = ReturnType;
@ -29,8 +30,11 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
Writer.Write("("); Writer.Write("(");
Params.Print(Writer); Params.Print(Writer);
Writer.Write(")"); Writer.Write(")");
ReturnType.PrintRight(Writer); ReturnType.PrintRight(Writer);
CVQualifier.Print(Writer); CVQualifier.Print(Writer);
if (ReferenceQualifier.Qualifier != Reference.None) if (ReferenceQualifier.Qualifier != Reference.None)
{ {
Writer.Write(" "); Writer.Write(" ");

View file

@ -18,7 +18,10 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
if (TypeNode != null) if (TypeNode != null)
{
TypeNode.Print(Writer); TypeNode.Print(Writer);
}
Writer.Write("{"); Writer.Write("{");
Writer.Write(string.Join<BaseNode>(", ", Nodes.ToArray())); Writer.Write(string.Join<BaseNode>(", ", Nodes.ToArray()));
Writer.Write("}"); Writer.Write("}");

View file

@ -5,6 +5,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class IntegerCastExpression : ParentNode public class IntegerCastExpression : ParentNode
{ {
private string Number; private string Number;
public IntegerCastExpression(BaseNode Type, string Number) : base(NodeType.IntegerCastExpression, Type) public IntegerCastExpression(BaseNode Type, string Number) : base(NodeType.IntegerCastExpression, Type)
{ {
this.Number = Number; this.Number = Number;

View file

@ -4,10 +4,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class LiteralOperator : ParentNode public class LiteralOperator : ParentNode
{ {
public LiteralOperator(BaseNode Child) : base(NodeType.LiteralOperator, Child) public LiteralOperator(BaseNode Child) : base(NodeType.LiteralOperator, Child) { }
{
}
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {

View file

@ -5,9 +5,8 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class MemberExpression : BaseNode public class MemberExpression : BaseNode
{ {
private BaseNode LeftNode; private BaseNode LeftNode;
private BaseNode RightNode;
private string Kind; private string Kind;
private BaseNode RightNode;
public MemberExpression(BaseNode LeftNode, string Kind, BaseNode RightNode) : base(NodeType.MemberExpression) public MemberExpression(BaseNode LeftNode, string Kind, BaseNode RightNode) : base(NodeType.MemberExpression)
{ {

View file

@ -10,6 +10,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
this.NameValue = NameValue; this.NameValue = NameValue;
} }
public NameType(string NameValue) : base(NodeType.NameType) public NameType(string NameValue) : base(NodeType.NameType)
{ {
this.NameValue = NameValue; this.NameValue = NameValue;

View file

@ -6,6 +6,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
private BaseNode Prev; private BaseNode Prev;
private BaseNode TemplateArgument; private BaseNode TemplateArgument;
public NameTypeWithTemplateArguments(BaseNode Prev, BaseNode TemplateArgument) : base(NodeType.NameTypeWithTemplateArguments) public NameTypeWithTemplateArguments(BaseNode Prev, BaseNode TemplateArgument) : base(NodeType.NameTypeWithTemplateArguments)
{ {
this.Prev = Prev; this.Prev = Prev;

View file

@ -5,6 +5,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class NestedName : ParentNode public class NestedName : ParentNode
{ {
private BaseNode Name; private BaseNode Name;
public NestedName(BaseNode Name, BaseNode Type) : base(NodeType.NestedName, Type) public NestedName(BaseNode Name, BaseNode Type) : base(NodeType.NestedName, Type)
{ {
this.Name = Name; this.Name = Name;

View file

@ -16,6 +16,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
this.Expressions = Expressions; this.Expressions = Expressions;
this.TypeNode = TypeNode; this.TypeNode = TypeNode;
this.Initializers = Initializers; this.Initializers = Initializers;
this.IsGlobal = IsGlobal; this.IsGlobal = IsGlobal;
this.IsArrayExpression = IsArrayExpression; this.IsArrayExpression = IsArrayExpression;
} }
@ -23,11 +24,16 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
if (IsGlobal) if (IsGlobal)
{
Writer.Write("::operator "); Writer.Write("::operator ");
}
Writer.Write("new "); Writer.Write("new ");
if (IsArrayExpression) if (IsArrayExpression)
{
Writer.Write("[] "); Writer.Write("[] ");
}
if (Expressions.Nodes.Count != 0) if (Expressions.Nodes.Count != 0)
{ {

View file

@ -5,10 +5,8 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class PackedTemplateParameter : NodeArray public class PackedTemplateParameter : NodeArray
{ {
public PackedTemplateParameter(List<BaseNode> Nodes) : base(Nodes, NodeType.PackedTemplateParameter) public PackedTemplateParameter(List<BaseNode> Nodes) : base(Nodes, NodeType.PackedTemplateParameter) { }
{
}
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
foreach (BaseNode Node in Nodes) foreach (BaseNode Node in Nodes)
@ -34,6 +32,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
return true; return true;
} }
} }
return false; return false;
} }
} }

View file

@ -4,10 +4,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class PackedTemplateParameterExpansion : ParentNode public class PackedTemplateParameterExpansion : ParentNode
{ {
public PackedTemplateParameterExpansion(BaseNode Child) : base(NodeType.PackedTemplateParameterExpansion, Child) public PackedTemplateParameterExpansion(BaseNode Child) : base(NodeType.PackedTemplateParameterExpansion, Child) {}
{
}
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {

View file

@ -3,6 +3,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public abstract class ParentNode : BaseNode public abstract class ParentNode : BaseNode
{ {
public BaseNode Child { get; private set; } public BaseNode Child { get; private set; }
public ParentNode(NodeType Type, BaseNode Child) : base(Type) public ParentNode(NodeType Type, BaseNode Child) : base(Type)
{ {
this.Child = Child; this.Child = Child;

View file

@ -5,6 +5,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class PointerType : BaseNode public class PointerType : BaseNode
{ {
private BaseNode Child; private BaseNode Child;
public PointerType(BaseNode Child) : base(NodeType.PointerType) public PointerType(BaseNode Child) : base(NodeType.PointerType)
{ {
this.Child = Child; this.Child = Child;
@ -19,15 +20,25 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
Child.PrintLeft(Writer); Child.PrintLeft(Writer);
if (Child.IsArray()) if (Child.IsArray())
{
Writer.Write(" "); Writer.Write(" ");
}
if (Child.IsArray() || Child.HasFunctions()) if (Child.IsArray() || Child.HasFunctions())
{
Writer.Write("("); Writer.Write("(");
}
Writer.Write("*"); Writer.Write("*");
} }
public override void PrintRight(TextWriter Writer) public override void PrintRight(TextWriter Writer)
{ {
if (Child.IsArray() || Child.HasFunctions()) if (Child.IsArray() || Child.HasFunctions())
{
Writer.Write(")"); Writer.Write(")");
}
Child.PrintRight(Writer); Child.PrintRight(Writer);
} }
} }

View file

@ -5,6 +5,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class PostfixExpression : ParentNode public class PostfixExpression : ParentNode
{ {
private string Operator; private string Operator;
public PostfixExpression(BaseNode Type, string Operator) : base(NodeType.PostfixExpression, Type) public PostfixExpression(BaseNode Type, string Operator) : base(NodeType.PostfixExpression, Type)
{ {
this.Operator = Operator; this.Operator = Operator;

View file

@ -5,6 +5,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class PostfixQualifiedType : ParentNode public class PostfixQualifiedType : ParentNode
{ {
private string PostfixQualifier; private string PostfixQualifier;
public PostfixQualifiedType(string PostfixQualifier, BaseNode Type) : base(NodeType.PostfixQualifiedType, Type) public PostfixQualifiedType(string PostfixQualifier, BaseNode Type) : base(NodeType.PostfixQualifiedType, Type)
{ {
this.PostfixQualifier = PostfixQualifier; this.PostfixQualifier = PostfixQualifier;

View file

@ -8,7 +8,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
Const, Const,
Volatile, Volatile,
Restricted = 4 Restricted = 4
}; }
public enum Reference public enum Reference
{ {
@ -32,10 +32,12 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
Writer.Write(" const"); Writer.Write(" const");
} }
if ((Qualifier & CV.Volatile) != 0) if ((Qualifier & CV.Volatile) != 0)
{ {
Writer.Write(" volatile"); Writer.Write(" volatile");
} }
if ((Qualifier & CV.Restricted) != 0) if ((Qualifier & CV.Restricted) != 0)
{ {
Writer.Write(" restrict"); Writer.Write(" restrict");
@ -45,7 +47,10 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
if (Child != null) if (Child != null)
{
Child.PrintLeft(Writer); Child.PrintLeft(Writer);
}
PrintQualifier(Writer); PrintQualifier(Writer);
} }
@ -57,9 +62,11 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintRight(TextWriter Writer) public override void PrintRight(TextWriter Writer)
{ {
if (Child != null) if (Child != null)
{
Child.PrintRight(Writer); Child.PrintRight(Writer);
} }
} }
}
public class SimpleReferenceType : ParentNode public class SimpleReferenceType : ParentNode
{ {
@ -76,6 +83,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
Writer.Write("&"); Writer.Write("&");
} }
if ((Qualifier & Reference.RValue) != 0) if ((Qualifier & Reference.RValue) != 0)
{ {
Writer.Write("&&"); Writer.Write("&&");
@ -85,9 +93,14 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
if (Child != null) if (Child != null)
{
Child.PrintLeft(Writer); Child.PrintLeft(Writer);
}
else if (Qualifier != Reference.None) else if (Qualifier != Reference.None)
{
Writer.Write(" "); Writer.Write(" ");
}
PrintQualifier(Writer); PrintQualifier(Writer);
} }
@ -99,7 +112,9 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintRight(TextWriter Writer) public override void PrintRight(TextWriter Writer)
{ {
if (Child != null) if (Child != null)
{
Child.PrintRight(Writer); Child.PrintRight(Writer);
} }
} }
} }
}

View file

@ -21,16 +21,26 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
Child.PrintLeft(Writer); Child.PrintLeft(Writer);
if (Child.IsArray()) if (Child.IsArray())
{
Writer.Write(" "); Writer.Write(" ");
}
if (Child.IsArray() || Child.HasFunctions()) if (Child.IsArray() || Child.HasFunctions())
{
Writer.Write("("); Writer.Write("(");
}
Writer.Write(Reference); Writer.Write(Reference);
} }
public override void PrintRight(TextWriter Writer) public override void PrintRight(TextWriter Writer)
{ {
if (Child.IsArray() || Child.HasFunctions()) if (Child.IsArray() || Child.HasFunctions())
{
Writer.Write(")"); Writer.Write(")");
}
Child.PrintRight(Writer); Child.PrintRight(Writer);
} }
} }

View file

@ -5,6 +5,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
public class SpecialName : ParentNode public class SpecialName : ParentNode
{ {
private string SpecialValue; private string SpecialValue;
public SpecialName(string SpecialValue, BaseNode Type) : base(NodeType.SpecialName, Type) public SpecialName(string SpecialValue, BaseNode Type) : base(NodeType.SpecialName, Type)
{ {
this.SpecialValue = SpecialValue; this.SpecialValue = SpecialValue;

View file

@ -12,8 +12,8 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
IStream, IStream,
OStream, OStream,
IOStream, IOStream,
} }
private SpecialType SpecialSubstitutionKey; private SpecialType SpecialSubstitutionKey;
public SpecialSubstitution(SpecialType SpecialSubstitutionKey) : base(NodeType.SpecialSubstitution) public SpecialSubstitution(SpecialType SpecialSubstitutionKey) : base(NodeType.SpecialSubstitution)
@ -36,7 +36,10 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
return "basic_string"; return "basic_string";
case SpecialType.String: case SpecialType.String:
if (Type == NodeType.ExpandedSpecialSubstitution) if (Type == NodeType.ExpandedSpecialSubstitution)
{
return "basic_string"; return "basic_string";
}
return "string"; return "string";
case SpecialType.IStream: case SpecialType.IStream:
return "istream"; return "istream";
@ -45,6 +48,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
case SpecialType.IOStream: case SpecialType.IOStream:
return "iostream"; return "iostream";
} }
return null; return null;
} }
@ -65,6 +69,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
case SpecialType.IOStream: case SpecialType.IOStream:
return "std::basic_iostream<char, std::char_traits<char> >"; return "std::basic_iostream<char, std::char_traits<char> >";
} }
return null; return null;
} }

View file

@ -6,17 +6,20 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
{ {
public class TemplateArguments : NodeArray public class TemplateArguments : NodeArray
{ {
public TemplateArguments(List<BaseNode> Nodes) : base(Nodes, NodeType.TemplateArguments) public TemplateArguments(List<BaseNode> Nodes) : base(Nodes, NodeType.TemplateArguments) { }
{
}
public override void PrintLeft(TextWriter Writer) public override void PrintLeft(TextWriter Writer)
{ {
string Params = string.Join<BaseNode>(", ", Nodes.ToArray()); string Params = string.Join<BaseNode>(", ", Nodes.ToArray());
Writer.Write("<"); Writer.Write("<");
Writer.Write(Params); Writer.Write(Params);
if (Params.EndsWith(">")) if (Params.EndsWith(">"))
{
Writer.Write(" "); Writer.Write(" ");
}
Writer.Write(">"); Writer.Write(">");
} }
} }

File diff suppressed because it is too large Load diff