Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
        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()
                       ));
        }
Ejemplo n.º 5
0
 public override void VisitNamedTypeDecl(NamedTypeDecl x)
 {
     VisitTypeDecl(x);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Visit named type.
 /// </summary>
 /// <param name="x"></param>
 virtual public void VisitNamedTypeDecl(NamedTypeDecl x)
 {
     VisitTypeDecl(x);
 }
Ejemplo n.º 7
0
 public override void VisitNamedTypeDecl(NamedTypeDecl x)
 {
     base.VisitNamedTypeDecl(x);
     this.ClassDeclarations.Add(x);
 }