override public void VisitNamedTypeDecl(NamedTypeDecl x) { _serializer.StartSerialize(typeof(NamedTypeDecl).Name, SerializeSpan(x.Span), new NodeObj("Name", x.Name.Name.Value), new NodeObj("MemberAttributes", MemberAttributesToString(x.MemberAttributes)), new NodeObj("IsConditional", x.IsConditional.ToString())); if (x.BaseClass != null) { _serializer.StartSerialize("BaseClassName"); VisitINamedTypeRef(x.BaseClass); _serializer.EndSerialize(); } if (x.ImplementsList != null && x.ImplementsList.Length > 0) { _serializer.StartSerialize("ImplementsList"); foreach (var item in x.ImplementsList) { VisitINamedTypeRef(item); } _serializer.EndSerialize(); } SerializePHPDoc(x.PHPDoc); foreach (var item in x.Members) { VisitElement(item); } _serializer.EndSerialize(); }
public override void VisitNamedTypeDecl(NamedTypeDecl x) { base.VisitNamedTypeDecl(x); if (ClassesDeclared.Any(kv => x.BaseClass.QualifiedName.Name.Value.EndsWith(kv.Key))) { string k = ClassesDeclared.First(kv => x.BaseClass.QualifiedName.Name.Value.EndsWith(kv.Key)).Key; ClassesDeclared[k] = true; } }
override public void VisitNamedTypeDecl(NamedTypeDecl x) { _serializer.StartSerialize(typeof(NamedTypeDecl).Name, SerializeSpan(x.Span), new NodeObj("Name", x.Name.Name.Value), new NodeObj("MemberAttributes", MemberAttributesToString(x.MemberAttributes)), new NodeObj("IsConditional", x.IsConditional.ToString())); if (x.BaseClass != null) { _serializer.Serialize("BaseClassName", new NodeObj("Name", x.BaseClass.ClassName.ToString()), x.BaseClass is TranslatedTypeRef? new NodeObj("OriginalName", ((TranslatedTypeRef)x.BaseClass).OriginalType.QualifiedName.ToString()): NodeObj.Empty); } if (x.ImplementsList != null && x.ImplementsList.Length > 0) { _serializer.Serialize("ImplementsList", x.ImplementsList.Select(n => new NodeObj("Name", n.ClassName.ToString())).ToArray()); } SerializePHPDoc(x.PHPDoc); base.VisitNamedTypeDecl(x); _serializer.EndSerialize(); }
private static ClassDeclarationExpression ToClassDeclarationExpression(NamedTypeDecl e) { List <ClassFieldDeclarationExpression> fields = new List <ClassFieldDeclarationExpression> (); List <ClassMethodDeclarationExpression> methods = new List <ClassMethodDeclarationExpression> (); foreach (TypeMemberDecl member in e.Members) { MemberAttributes attributes = ToMemberAttributes(member.Modifiers); switch (member) { case FieldDeclList l: fields.AddRange(l.Fields.Select(f => ToClassFieldDeclarationExpression(attributes, f))); break; case MethodDecl l: methods.Add(ToClassMethodDeclarationExpression(attributes, l)); break; default: Log.Error($"Unknown class member: {member}"); break; } } List <NameOfClass> base_classes = new List <NameOfClass> (); if (e.BaseClass != null) { base_classes.Add(ToNameOfClass(e.BaseClass.ClassName)); } List <NameOfClass> base_interfaces = new List <NameOfClass> (); base_interfaces.AddRange(e.ImplementsList.Select(o => ToNameOfClass(o.ClassName))); return(new ClassDeclarationExpression( ToNameOfClass(e.Name), base_classes.ToImmutableArray(), base_interfaces.ToImmutableArray(), fields.ToImmutableArray(), methods.ToImmutableArray() )); }
public override void VisitNamedTypeDecl(NamedTypeDecl x) { VisitTypeDecl(x); }
/// <summary> /// Visit named type. /// </summary> /// <param name="x"></param> virtual public void VisitNamedTypeDecl(NamedTypeDecl x) { VisitTypeDecl(x); }
public override void VisitNamedTypeDecl(NamedTypeDecl x) { base.VisitNamedTypeDecl(x); this.ClassDeclarations.Add(x); }