예제 #1
0
 public ClassType(PtClass source, Unit unit, string name, Action <ClassType> discoverMembers)
 {
     Source = source;
     Unit   = unit;
     Name   = name;
     this.discoverMembers = discoverMembers;
 }
예제 #2
0
 public static ClassType Actor(PtClass source, Unit unit, string name)
 {
     return(new ClassType(source, unit, name,
                          ct =>
     {
         ct.Discover();
     }));
 }
예제 #3
0
 public static ClassType Interface(PtClass source, Unit unit, string name)
 {
     return(new ClassType(source, unit, name,
                          ct =>
     {
         ct.Discover();
         ct.NoFields("interface");
     }));
 }
예제 #4
0
 public static ClassType Struct(PtClass source, Unit unit, string name)
 {
     return(new ClassType(source, unit, name,
                          ct =>
     {
         ct.Discover();
         ct.NoBehaviours("struct");
     }));
 }
예제 #5
0
 public static ClassType Alias(PtClass source, Unit unit, string name)
 {
     return(new ClassType(source, unit, name,
                          ct =>
     {
         ct.Discover();
         ct.NoMembers("type alias");
     }));
 }
예제 #6
0
 public static ClassType Trait(PtClass source, Unit unit, string name)
 {
     return(new ClassType(source, unit, name,
                          ct =>
     {
         ct.Discover();
         ct.NoFields("trait");
     }));
 }
예제 #7
0
 public static ClassType Primitive(PtClass source, Unit unit, string name)
 {
     return(new ClassType(source, unit, name,
                          ct =>
     {
         ct.Discover();
         ct.NoFields("primitive");
         ct.NoBehaviours("primitive");
     }));
 }
예제 #8
0
 protected virtual void DoVisit(PtClass node) => VisitChildren(node);