File tree Expand file tree Collapse file tree 2 files changed +72
-1
lines changed Expand file tree Collapse file tree 2 files changed +72
-1
lines changed Original file line number Diff line number Diff line change @@ -58,9 +58,78 @@ public abstract class GeneratorOutputPass
58
58
{
59
59
public IDiagnostics Log { get ; set ; }
60
60
61
+ public virtual void HandleBlock ( Block block )
62
+ {
63
+ switch ( block . Kind )
64
+ {
65
+ case BlockKind . Class :
66
+ VisitClass ( block ) ;
67
+ break ;
68
+ case BlockKind . Method :
69
+ VisitMethod ( block ) ;
70
+ break ;
71
+ case BlockKind . Constructor :
72
+ VisitConstructor ( block ) ;
73
+ break ;
74
+ case BlockKind . ConstructorBody :
75
+ VisitConstructorBody ( block ) ;
76
+ break ;
77
+ case BlockKind . Namespace :
78
+ VisitNamespace ( block ) ;
79
+ break ;
80
+ case BlockKind . Includes :
81
+ VisitIncludes ( block ) ;
82
+ break ;
83
+ }
84
+
85
+ foreach ( var childBlock in block . Blocks )
86
+ HandleBlock ( childBlock ) ;
87
+ }
88
+
89
+ public virtual void VisitCodeGenerator ( CodeGenerator generator )
90
+ {
91
+ foreach ( var block in generator . ActiveBlock . Blocks )
92
+ {
93
+ HandleBlock ( block ) ;
94
+ }
95
+ }
96
+
61
97
public virtual void VisitGeneratorOutput ( GeneratorOutput output )
62
98
{
63
-
99
+ foreach ( var generator in output . Outputs )
100
+ {
101
+ VisitCodeGenerator ( generator ) ;
102
+ }
103
+ }
104
+
105
+ public virtual void VisitClass ( Block block )
106
+ {
107
+
108
+ }
109
+
110
+ public virtual void VisitNamespace ( Block block )
111
+ {
112
+
113
+ }
114
+
115
+ public virtual void VisitMethod ( Block block )
116
+ {
117
+
118
+ }
119
+
120
+ public virtual void VisitConstructor ( Block block )
121
+ {
122
+
123
+ }
124
+
125
+ public virtual void VisitConstructorBody ( Block block )
126
+ {
127
+
128
+ }
129
+
130
+ public virtual void VisitIncludes ( Block block )
131
+ {
132
+
64
133
}
65
134
}
66
135
}
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ public enum BlockKind
24
24
Footer ,
25
25
Usings ,
26
26
Namespace ,
27
+ TranslationUnit ,
27
28
Enum ,
28
29
EnumItem ,
29
30
Typedef ,
@@ -52,6 +53,7 @@ public enum BlockKind
52
53
Destructor ,
53
54
AccessSpecifier ,
54
55
Fields ,
56
+ Constructor ,
55
57
ConstructorBody ,
56
58
DestructorBody ,
57
59
FinalizerBody
You can’t perform that action at this time.
0 commit comments