Esempio n. 1
0
 public override StringBuilder VisitMemberType(MemberType memberType, int data)
 {
     return new StringBuilder(memberType.Annotation<TypeReference>().ToGlsl());
 }
Esempio n. 2
0
 public override StringBuilder VisitMemberType(MemberType memberType, int data)
 {
     return(new StringBuilder(GLSL.ToGLSL(memberType.Annotation <TypeReference>())));
 }
		public virtual void VisitMemberType(MemberType memberType)
		{
			StartNode(memberType);
			memberType.Target.AcceptVisitor(this);
			if (memberType.IsDoubleColon) {
				WriteToken(Roles.DoubleColon);
			} else {
				WriteToken(Roles.Dot);
			}
			WriteIdentifier(memberType.MemberNameToken, TextTokenHelper.GetTextTokenType(memberType.MemberNameToken.Annotation<object>() ?? memberType.Annotation<object>()));
			WriteTypeArguments(memberType.TypeArguments);
			EndNode(memberType);
		}
Esempio n. 4
0
		public virtual void VisitMemberType(MemberType memberType)
		{
			StartNode(memberType);
			memberType.Target.AcceptVisitor(this);
			if (memberType.IsDoubleColon) {
				WriteToken(Roles.DoubleColon, BoxedTextColor.Operator);
			} else {
				WriteToken(Roles.Dot, BoxedTextColor.Operator);
			}
			WriteIdentifier(memberType.MemberNameToken, CSharpMetadataTextColorProvider.Instance.GetColor(memberType.MemberNameToken.Annotation<object>() ?? memberType.Annotation<object>()));
			WriteTypeArguments(memberType.TypeArguments, CodeBracesRangeFlags.AngleBrackets);
			EndNode(memberType);
		}
Esempio n. 5
0
			public override void VisitMemberType (MemberType memberType)
			{
				base.VisitMemberType (memberType);


				AstNodeCollection<AstType> args = memberType.TypeArguments;

				var mems = new Stack<MemberType> ();
				var t = (AstType)memberType;
				var mem = memberType;
				while (mem != null) {
					mems.Push (mem);
					if (args.Count == 0)
						args = mem.TypeArguments;
					t = mem.Target;
					mem = t as MemberType;
				}

				var newName = "";

				var simp = t as SimpleType;
				if (simp != null) {

					if (args.Count == 0)
						args = simp.TypeArguments;
					newName += (simp.Identifier);

				} else {
					t.AcceptVisitor (this);
				}

				while (mems.Count > 0) {
					var mm = mems.Pop ();
					newName += ("_" + mm.MemberName);
				}

				var newType = new SimpleType (newName, args.Select (x => x.Clone ()));
				var td = memberType.Annotation<TypeDefinition> ();
				if (td != null) {
					newType.AddAnnotation (td);
				}
				memberType.ReplaceWith (newType);

			}