 fb1d9493a3
			
		
	
	
		fb1d9493a3
		
	
	
	
	
		
			
			* 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
		
	
			
		
			
				
	
	
		
			113 lines
		
	
	
		
			No EOL
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			No EOL
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.IO;
 | |
| 
 | |
| namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
 | |
| {
 | |
|     public enum NodeType
 | |
|     {
 | |
|         CvQualifierType,
 | |
|         SimpleReferenceType,
 | |
|         NameType,
 | |
|         EncodedFunction,
 | |
|         NestedName,
 | |
|         SpecialName,
 | |
|         LiteralOperator,
 | |
|         NodeArray,
 | |
|         ElaboratedType,
 | |
|         PostfixQualifiedType,
 | |
|         SpecialSubstitution,
 | |
|         ExpandedSpecialSubstitution,
 | |
|         CtorDtorNameType,
 | |
|         EnclosedExpression,
 | |
|         ForwardTemplateReference,
 | |
|         NameTypeWithTemplateArguments,
 | |
|         PackedTemplateArgument,
 | |
|         TemplateArguments,
 | |
|         BooleanExpression,
 | |
|         CastExpression,
 | |
|         CallExpression,
 | |
|         IntegerCastExpression,
 | |
|         PackedTemplateParameter,
 | |
|         PackedTemplateParameterExpansion,
 | |
|         IntegerLiteral,
 | |
|         DeleteExpression,
 | |
|         MemberExpression,
 | |
|         ArraySubscriptingExpression,
 | |
|         InitListExpression,
 | |
|         PostfixExpression,
 | |
|         ConditionalExpression,
 | |
|         ThrowExpression,
 | |
|         FunctionParameter,
 | |
|         ConversionExpression,
 | |
|         BinaryExpression,
 | |
|         PrefixExpression,
 | |
|         BracedExpression,
 | |
|         BracedRangeExpression,
 | |
|         NewExpression,
 | |
|         QualifiedName,
 | |
|         StdQualifiedName,
 | |
|         DtOrName,
 | |
|         GlobalQualifiedName,
 | |
|         NoexceptSpec,
 | |
|         DynamicExceptionSpec,
 | |
|         FunctionType,
 | |
|         PointerType,
 | |
|         ReferenceType,
 | |
|         ConversionOperatorType,
 | |
|         LocalName,
 | |
|         CtorVtableSpecialName,
 | |
|         ArrayType
 | |
|     }
 | |
| 
 | |
|     public abstract class BaseNode
 | |
|     {
 | |
|         public NodeType Type { get; protected set; }
 | |
| 
 | |
|         public BaseNode(NodeType type)
 | |
|         {
 | |
|             Type = type;
 | |
|         }
 | |
| 
 | |
|         public virtual void Print(TextWriter writer)
 | |
|         {
 | |
|             PrintLeft(writer);
 | |
| 
 | |
|             if (HasRightPart())
 | |
|             {
 | |
|                 PrintRight(writer);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public abstract void PrintLeft(TextWriter writer);
 | |
| 
 | |
|         public virtual bool HasRightPart()
 | |
|         {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         public virtual bool IsArray()
 | |
|         {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         public virtual bool HasFunctions()
 | |
|         {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         public virtual string GetName()
 | |
|         {
 | |
|             return null;
 | |
|         }
 | |
| 
 | |
|         public virtual void PrintRight(TextWriter writer) {}
 | |
| 
 | |
|         public override string ToString()
 | |
|         {
 | |
|             StringWriter writer = new StringWriter();
 | |
| 
 | |
|             Print(writer);
 | |
| 
 | |
|             return writer.ToString();
 | |
|         }
 | |
|     }
 | |
| } |