@@ -50,7 +50,7 @@ fileprivate class _SyntaxClassifier: SyntaxVisitor {
50
50
force: Bool = false
51
51
) {
52
52
contextStack. append ( ( classification: classification, force: force) )
53
- visit ( node)
53
+ node. walk ( self )
54
54
contextStack. removeLast ( )
55
55
}
56
56
@@ -71,6 +71,7 @@ fileprivate class _SyntaxClassifier: SyntaxVisitor {
71
71
}
72
72
73
73
override func visit( _ token: TokenSyntax ) {
74
+ assert ( token. isPresent)
74
75
// FIXME: We need to come up with some way in which the SyntaxClassifier can
75
76
// classify trivia (i.e. comments). In particular we need to be able to
76
77
// look into the comments to find things like URLs or keywords like MARK.
@@ -94,12 +95,12 @@ fileprivate class _SyntaxClassifier: SyntaxVisitor {
94
95
95
96
% for node in SYNTAX_NODES:
96
97
% if is_visitable( node) :
97
- override func visit( _ node: ${ node. name} ) {
98
+ override func visit( _ node: ${ node. name} ) -> Bool {
98
99
if skipNodeIds. contains ( node. raw. id) {
99
- return
100
+ return false
100
101
}
101
102
% if node. is_unknown ( ) or node. is_syntax_collection ( ) :
102
- super . visit ( node )
103
+ return true
103
104
% else:
104
105
% for child in node. children:
105
106
% if child. is_optional:
@@ -109,7 +110,7 @@ fileprivate class _SyntaxClassifier: SyntaxVisitor {
109
110
classification: . ${ child. classification. swift_name} ,
110
111
force: ${ " true " if child. force_classification else " false " } )
111
112
% else:
112
- vis it ( ${ child. swift_name} )
113
+ ${ child. swift_name} . walk ( self )
113
114
% end
114
115
}
115
116
% else:
@@ -118,12 +119,12 @@ fileprivate class _SyntaxClassifier: SyntaxVisitor {
118
119
classification: . ${ child. classification. swift_name} ,
119
120
force: ${ " true " if child. force_classification else " false " } )
120
121
% else:
121
- vis it ( node . ${ child. swift_name} )
122
+ node. ${ child. swift_name} . walk ( self )
122
123
% end
123
124
% end
124
125
% end
126
+ return false
125
127
% end
126
-
127
128
}
128
129
% end
129
130
% end
@@ -139,7 +140,7 @@ public enum SyntaxClassifier {
139
140
) -> [ TokenSyntax : SyntaxClassification ] {
140
141
let classifier = _SyntaxClassifier ( )
141
142
classifier. skipNodeIds = skipNodes
142
- classifier . visit ( syntaxTree )
143
+ syntaxTree . walk ( classifier )
143
144
return classifier. classifications
144
145
}
145
146
}
0 commit comments