28
28
//===----------------------------------------------------------------------===//
29
29
30
30
public enum SyntaxFactory {
31
+ @available ( * , deprecated, message: " Use initializer on TokenSyntax " )
31
32
public static func makeToken( _ kind: TokenKind , presence: SourcePresence ,
32
33
leadingTrivia: Trivia = [ ] ,
33
34
trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
34
- let raw = RawSyntax . createAndCalcLength ( kind: kind, leadingTrivia: leadingTrivia,
35
- trailingTrivia: trailingTrivia, presence: presence)
36
- let data = SyntaxData . forRoot ( raw)
37
- return TokenSyntax ( data)
35
+ return TokenSyntax (
36
+ kind,
37
+ presence: presence,
38
+ leadingTrivia: leadingTrivia,
39
+ trailingTrivia: trailingTrivia
40
+ )
38
41
}
39
42
43
+ @available ( * , deprecated, message: " Use initializer on UnknownSyntax " )
40
44
public static func makeUnknownSyntax( tokens: [ TokenSyntax ] ) -> UnknownSyntax {
41
45
let raw = RawSyntax . createAndCalcLength ( kind: . unknown,
42
46
layout: tokens. map { $0. raw } , presence: . present)
@@ -51,50 +55,33 @@ public enum SyntaxFactory {
51
55
% pass
52
56
% elif node. children:
53
57
% child_params = [ ]
58
+ % initializer_args = [ ]
54
59
% for child in node. children:
55
- % param_type = child. type_name
56
- % if child. is_optional:
57
- % param_type = param_type + " ? "
58
- % child_params. append ( " %s: %s " % ( child. swift_name, param_type) )
59
- % child_params = ', '. join( child_params)
60
- public static func make${ node. syntax_kind} ( ${ child_params} ) - > ${ node. name} {
61
- let layout : [ RawSyntax ? ] = [
62
- % for child in node. children:
60
+ % param_type = child. type_name
63
61
% if child. is_optional:
64
- ${ child. swift_name} ? . raw,
65
- % else :
66
- ${ child. swift_name} . raw,
62
+ % param_type = param_type + " ? "
67
63
% end
64
+ % child_params. append ( " %s: %s " % ( child. swift_name, param_type) )
65
+ % initializer_args . append( f" {child.swift_name}: {child.swift_name} " )
68
66
% end
69
- ]
70
- let raw = RawSyntax . createAndCalcLength ( kind : SyntaxKind . $ { node . swift_syntax_kind } ,
71
- layout : layout , presence : SourcePresence . present )
72
- let data = SyntaxData . forRoot ( raw )
73
- return ${ node. name} ( data )
67
+ % child_params_str = ' , ' . join ( child_params )
68
+ % initializer_args_str = ' , ' . join ( initializer_args )
69
+ @ available ( * , deprecated , message : " Use initializer on ${node.name} " )
70
+ public static func make$ { node . syntax_kind } ( $ { child_params_str } ) - > $ { node . name } {
71
+ return ${ node. name} ( $ { initializer_args_str } )
74
72
}
75
73
% elif node. is_syntax_collection( ) :
74
+ @available( * , deprecated, message: " Use initializer on ${node.name} " )
76
75
public static func make${ node. syntax_kind} (
77
76
_ elements: [ ${ node. collection_element_type} ] ) - > ${ node. name} {
78
- let raw = RawSyntax . createAndCalcLength ( kind: SyntaxKind . ${ node. swift_syntax_kind} ,
79
- layout: elements. map { $0. raw } , presence: SourcePresence . present)
80
- let data = SyntaxData . forRoot ( raw)
81
- return ${ node. name} ( data)
77
+ return ${ node. name} ( elements)
82
78
}
83
79
% end
84
80
85
81
% if not node. is_base ( ) :
82
+ @available( * , deprecated, message: " Use ${node.name}.blank(presence:) instead " )
86
83
public static func makeBlank${ node. syntax_kind} ( presence: SourcePresence = . present) - > ${ node. name} {
87
- let data = SyntaxData . forRoot ( RawSyntax . create ( kind: . ${ node. swift_syntax_kind} ,
88
- layout: [
89
- % for child in node. children:
90
- % if child. is_optional:
91
- nil ,
92
- % else :
93
- ${ make_missing_swift_child ( child) } ,
94
- % end
95
- % end
96
- ] , length: . zero, presence: presence) )
97
- return ${ node. name} ( data)
84
+ return ${ node. name} . blank ( presence: presence)
98
85
}
99
86
% end
100
87
% end
@@ -110,129 +97,150 @@ public enum SyntaxFactory {
110
97
% leading_trivia = token_trivia ( token. requires_leading_space)
111
98
% trailing_trivia = token_trivia ( token. requires_trailing_space)
112
99
% if token. is_keyword :
100
+ @available( * , deprecated, message: " Use TokenSyntax.${token.swift_kind()}Keyword instead " )
113
101
public static func make${ token. name} Keyword(
114
102
leadingTrivia: Trivia = ${ leading_trivia} ,
115
103
trailingTrivia: Trivia = ${ trailing_trivia}
116
104
) - > TokenSyntax {
117
- return makeToken ( . ${ token. swift_kind ( ) } , presence: . present,
118
- leadingTrivia: leadingTrivia,
119
- trailingTrivia: trailingTrivia)
105
+ return TokenSyntax . ${ token. swift_kind ( ) } (
106
+ leadingTrivia: leadingTrivia,
107
+ trailingTrivia: trailingTrivia
108
+ )
120
109
}
121
110
% elif token. text:
111
+ @available( * , deprecated, message: " Use TokenSyntax.${token.swift_kind()}Token instead " )
122
112
public static func make${ token. name} Token(
123
113
leadingTrivia: Trivia = ${ leading_trivia} ,
124
114
trailingTrivia: Trivia = ${ trailing_trivia}
125
115
) - > TokenSyntax {
126
- return makeToken ( . ${ token. swift_kind ( ) } , presence: . present,
127
- leadingTrivia: leadingTrivia,
128
- trailingTrivia: trailingTrivia)
116
+ return TokenSyntax . ${ token. swift_kind ( ) } Token(
117
+ leadingTrivia: leadingTrivia,
118
+ trailingTrivia: trailingTrivia
119
+ )
129
120
}
130
121
% else:
122
+ @available( * , deprecated, message: " Use TokenSyntax.${token.swift_kind()} instead " )
131
123
public static func make${ token. name} (
132
124
_ text: String,
133
125
leadingTrivia: Trivia = ${ leading_trivia} ,
134
126
trailingTrivia: Trivia = ${ trailing_trivia}
135
127
) - > TokenSyntax {
136
- return makeToken ( . ${ token. swift_kind ( ) } ( text) , presence: . present,
137
- leadingTrivia: leadingTrivia,
138
- trailingTrivia: trailingTrivia)
128
+ return TokenSyntax . ${ token. swift_kind ( ) } (
129
+ text,
130
+ leadingTrivia: leadingTrivia,
131
+ trailingTrivia: trailingTrivia
132
+ )
139
133
}
140
134
% end
141
135
% end
142
136
143
137
/// MARK: Convenience APIs
144
138
139
+ @available ( * , deprecated, message: " Use initializer on TupleTypeSyntax " )
145
140
public static func makeVoidTupleType( ) -> TupleTypeSyntax {
146
- return makeTupleType ( leftParen: makeLeftParenToken ( ) ,
147
- elements: makeBlankTupleTypeElementList ( ) ,
148
- rightParen: makeRightParenToken ( ) )
141
+ return TupleTypeSyntax ( leftParen: makeLeftParenToken ( ) ,
142
+ elements: makeBlankTupleTypeElementList ( ) ,
143
+ rightParen: makeRightParenToken ( ) )
149
144
}
150
145
146
+ @available ( * , deprecated, message: " Use initializer on TupleTypeSyntax " )
151
147
public static func makeTupleTypeElement( name: TokenSyntax ? ,
152
148
colon: TokenSyntax ? , type: TypeSyntax ,
153
149
trailingComma: TokenSyntax ? ) -> TupleTypeElementSyntax {
154
- return makeTupleTypeElement ( inOut: nil , name: name, secondName: nil ,
155
- colon: colon, type: type, ellipsis: nil ,
156
- initializer: nil , trailingComma: trailingComma)
150
+ return TupleTypeElementSyntax ( inOut: nil , name: name, secondName: nil ,
151
+ colon: colon, type: type, ellipsis: nil ,
152
+ initializer: nil , trailingComma: trailingComma)
157
153
}
158
154
155
+ @available ( * , deprecated, message: " Use initializer on TupleTypeSyntax " )
159
156
public static func makeTupleTypeElement( type: TypeSyntax ,
160
157
trailingComma: TokenSyntax ? ) -> TupleTypeElementSyntax {
161
- return makeTupleTypeElement ( name: nil , colon: nil ,
162
- type: type, trailingComma: trailingComma)
158
+ return TupleTypeElementSyntax ( inOut: nil , name: nil , secondName: nil ,
159
+ colon: nil , type: type, ellipsis: nil ,
160
+ initializer: nil , trailingComma: trailingComma)
163
161
}
164
162
163
+ @available ( * , deprecated, message: " Use initializer on GenericParameterSyntax " )
165
164
public static func makeGenericParameter( name: TokenSyntax ,
166
165
trailingComma: TokenSyntax ) -> GenericParameterSyntax {
167
- return makeGenericParameter ( attributes: nil , name: name, colon: nil ,
168
- inheritedType: nil ,
169
- trailingComma: trailingComma)
166
+ return GenericParameterSyntax ( attributes: nil , name: name, colon: nil ,
167
+ inheritedType: nil ,
168
+ trailingComma: trailingComma)
170
169
}
171
170
171
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
172
172
public static func makeTypeIdentifier( _ name: String ,
173
173
leadingTrivia: Trivia = [ ] ,
174
174
trailingTrivia: Trivia = [ ] ) -> TypeSyntax {
175
- let identifier = makeIdentifier ( name, leadingTrivia: leadingTrivia,
176
- trailingTrivia: trailingTrivia)
177
- let typeIdentifier = makeSimpleTypeIdentifier ( name: identifier,
178
- genericArgumentClause: nil )
175
+ let identifier = TokenSyntax . identifier ( name, leadingTrivia: leadingTrivia,
176
+ trailingTrivia: trailingTrivia)
177
+ let typeIdentifier = SimpleTypeIdentifierSyntax ( name: identifier,
178
+ genericArgumentClause: nil )
179
179
return TypeSyntax ( typeIdentifier)
180
180
}
181
181
182
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
182
183
public static func makeAnyTypeIdentifier( leadingTrivia: Trivia = [ ] ,
183
184
trailingTrivia: Trivia = [ ] ) -> TypeSyntax {
184
185
return makeTypeIdentifier ( " Any " , leadingTrivia: leadingTrivia,
185
186
trailingTrivia: trailingTrivia)
186
187
}
187
188
189
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
188
190
public static func makeSelfTypeIdentifier( leadingTrivia: Trivia = [ ] ,
189
191
trailingTrivia: Trivia = [ ] ) -> TypeSyntax {
190
192
return makeTypeIdentifier ( " Self " , leadingTrivia: leadingTrivia,
191
193
trailingTrivia: trailingTrivia)
192
194
}
193
195
196
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
194
197
public static func makeTypeToken( leadingTrivia: Trivia = [ ] ,
195
198
trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
196
- return makeIdentifier ( " Type " , leadingTrivia: leadingTrivia,
197
- trailingTrivia: trailingTrivia)
199
+ return TokenSyntax . identifier ( " Type " , leadingTrivia: leadingTrivia,
200
+ trailingTrivia: trailingTrivia)
198
201
}
199
202
203
+ @available ( * , deprecated, message: " Use TokenSyntax.protocol " )
200
204
public static func makeProtocolToken( leadingTrivia: Trivia = [ ] ,
201
205
trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
202
- return makeIdentifier ( " Protocol " , leadingTrivia: leadingTrivia,
203
- trailingTrivia: trailingTrivia)
206
+ return TokenSyntax . identifier ( " Protocol " , leadingTrivia: leadingTrivia,
207
+ trailingTrivia: trailingTrivia)
204
208
}
205
209
210
+ @available ( * , deprecated, message: " Use TokenSyntax.spacedBinaryOperator " )
206
211
public static func makeBinaryOperator( _ name: String ,
207
212
leadingTrivia: Trivia = [ ] ,
208
213
trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
209
- return makeToken ( . spacedBinaryOperator( name) ,
210
- presence: . present,
211
- leadingTrivia: leadingTrivia,
212
- trailingTrivia: trailingTrivia)
214
+ return TokenSyntax . spacedBinaryOperator (
215
+ name,
216
+ leadingTrivia: leadingTrivia,
217
+ trailingTrivia: trailingTrivia
218
+ )
213
219
}
214
220
221
+ @available ( * , deprecated, message: " Use initializer on StringLiteralExprSyntax " )
215
222
public static func makeStringLiteralExpr( _ text: String ,
216
223
leadingTrivia: Trivia = [ ] ,
217
224
trailingTrivia: Trivia = [ ] ) -> StringLiteralExprSyntax {
218
- let string = makeStringSegment ( text)
219
- let segment = makeStringSegment ( content: string)
225
+ let string = TokenSyntax . stringSegment ( text)
226
+ let segment = StringSegmentSyntax ( content: string)
220
227
let segments = makeStringLiteralSegments ( [ Syntax ( segment) ] )
221
228
let openQuote = makeStringQuoteToken ( leadingTrivia: leadingTrivia)
222
229
let closeQuote = makeStringQuoteToken ( trailingTrivia: trailingTrivia)
223
- return makeStringLiteralExpr ( openDelimiter: nil ,
224
- openQuote: openQuote,
225
- segments: segments,
226
- closeQuote: closeQuote,
227
- closeDelimiter: nil )
230
+ return StringLiteralExprSyntax ( openDelimiter: nil ,
231
+ openQuote: openQuote,
232
+ segments: segments,
233
+ closeQuote: closeQuote,
234
+ closeDelimiter: nil )
228
235
}
229
236
237
+ @available ( * , deprecated, message: " Use initializer on IdentifierExprSyntax " )
230
238
public static func makeVariableExpr( _ text: String ,
231
239
leadingTrivia: Trivia = [ ] ,
232
240
trailingTrivia: Trivia = [ ] ) -> IdentifierExprSyntax {
233
241
let string = makeIdentifier ( text,
234
242
leadingTrivia: leadingTrivia, trailingTrivia: trailingTrivia)
235
- return makeIdentifierExpr ( identifier: string,
236
- declNameArguments: nil )
243
+ return IdentifierExprSyntax ( identifier: string,
244
+ declNameArguments: nil )
237
245
}
238
246
}
0 commit comments