4 using System.Collections;
5 using System.Collections.Generic;
8 namespace SiliconStudio.Shaders.Ast.Hlsl
15 #region Constructors and Destructors
34 BaseClasses =
new List<TypeName>();
35 Members =
new List<Node>();
36 GenericParameters =
new List<TypeBase>();
37 GenericArguments =
new List<TypeBase>();
42 #region Public Properties
50 public List<TypeName> BaseClasses {
get; set; }
53 public List<TypeBase> GenericParameters {
get; set; }
56 public List<TypeBase> GenericArguments {
get; set; }
64 public List<Node> Members {
get; set; }
68 #region Public Methods
74 ChildrenList.Add(Name);
75 ChildrenList.AddRange(BaseClasses);
76 ChildrenList.AddRange(Members);
83 var bases =
new StringBuilder();
84 foreach (var baseClass
in BaseClasses)
86 bases.Append(
" : ").Append(baseClass);
88 var generics =
new StringBuilder();
89 if (GenericParameters.Count > 0)
92 for (
int i = 0; i < GenericParameters.Count; i++)
94 var genericArgument = GenericArguments.Count == GenericParameters.Count ? GenericArguments[i] : GenericParameters[i];
95 if (i > 0) generics.Append(
", ");
96 generics.Append(genericArgument);
101 return string.Format(
"class {0}{1}{2} {{...}}", Name, generics, bases);
107 return base.Equals(other);
113 if (ReferenceEquals(null, obj))
117 if (ReferenceEquals(
this, obj))
127 return base.GetHashCode();
140 return Equals(left, right);
153 return !Equals(left, right);
ClassType()
Initializes a new instance of the ClassType class.
override string ToString()
A tag interface to identify a container for scope declarations.
An interface used by generic definitions and instance.
bool Equals(ClassType other)
override bool Equals(object obj)
override IEnumerable< Node > Childrens()
Gets the child nodes. An enumeration of child nodes
override int GetHashCode()
ClassType(string name)
Initializes a new instance of the ClassType class.
Toplevel interface for a declaration.