| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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)
- {
- this.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();
- }
- }
- }
|