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,51 +55,34 @@ 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 ( ) :
86
82
% default_presence = 'missing' if node. is_missing ( ) else 'present'
83
+ @available( * , deprecated, message: " Use ${node.name}.blank(presence:) instead " )
87
84
public static func makeBlank${ node. syntax_kind} ( presence: SourcePresence = . ${ default_presence} ) - > ${ node. name} {
88
- let data = SyntaxData . forRoot ( RawSyntax . create ( kind: . ${ node. swift_syntax_kind} ,
89
- layout: [
90
- % for child in node. children:
91
- % if child. is_optional:
92
- nil ,
93
- % else :
94
- ${ make_missing_swift_child ( child) } ,
95
- % end
96
- % end
97
- ] , length: . zero, presence: presence) )
98
- return ${ node. name} ( data)
85
+ return ${ node. name} . blank ( presence: presence)
99
86
}
100
87
% end
101
88
% end
@@ -111,129 +98,150 @@ public enum SyntaxFactory {
111
98
% leading_trivia = token_trivia ( token. requires_leading_space)
112
99
% trailing_trivia = token_trivia ( token. requires_trailing_space)
113
100
% if token. is_keyword :
101
+ @available( * , deprecated, message: " Use TokenSyntax.${token.swift_kind()}Keyword instead " )
114
102
public static func make${ token. name} Keyword(
115
103
leadingTrivia: Trivia = ${ leading_trivia} ,
116
104
trailingTrivia: Trivia = ${ trailing_trivia}
117
105
) - > TokenSyntax {
118
- return makeToken ( . ${ token. swift_kind ( ) } , presence: . present,
119
- leadingTrivia: leadingTrivia,
120
- trailingTrivia: trailingTrivia)
106
+ return TokenSyntax . ${ token. swift_kind ( ) } (
107
+ leadingTrivia: leadingTrivia,
108
+ trailingTrivia: trailingTrivia
109
+ )
121
110
}
122
111
% elif token. text:
112
+ @available( * , deprecated, message: " Use TokenSyntax.${token.swift_kind()}Token instead " )
123
113
public static func make${ token. name} Token(
124
114
leadingTrivia: Trivia = ${ leading_trivia} ,
125
115
trailingTrivia: Trivia = ${ trailing_trivia}
126
116
) - > TokenSyntax {
127
- return makeToken ( . ${ token. swift_kind ( ) } , presence: . present,
128
- leadingTrivia: leadingTrivia,
129
- trailingTrivia: trailingTrivia)
117
+ return TokenSyntax . ${ token. swift_kind ( ) } Token(
118
+ leadingTrivia: leadingTrivia,
119
+ trailingTrivia: trailingTrivia
120
+ )
130
121
}
131
122
% else:
123
+ @available( * , deprecated, message: " Use TokenSyntax.${token.swift_kind()} instead " )
132
124
public static func make${ token. name} (
133
125
_ text: String,
134
126
leadingTrivia: Trivia = ${ leading_trivia} ,
135
127
trailingTrivia: Trivia = ${ trailing_trivia}
136
128
) - > TokenSyntax {
137
- return makeToken ( . ${ token. swift_kind ( ) } ( text) , presence: . present,
138
- leadingTrivia: leadingTrivia,
139
- trailingTrivia: trailingTrivia)
129
+ return TokenSyntax . ${ token. swift_kind ( ) } (
130
+ text,
131
+ leadingTrivia: leadingTrivia,
132
+ trailingTrivia: trailingTrivia
133
+ )
140
134
}
141
135
% end
142
136
% end
143
137
144
138
/// MARK: Convenience APIs
145
139
140
+ @available ( * , deprecated, message: " Use initializer on TupleTypeSyntax " )
146
141
public static func makeVoidTupleType( ) -> TupleTypeSyntax {
147
- return makeTupleType ( leftParen: makeLeftParenToken ( ) ,
148
- elements: makeBlankTupleTypeElementList ( ) ,
149
- rightParen: makeRightParenToken ( ) )
142
+ return TupleTypeSyntax ( leftParen: makeLeftParenToken ( ) ,
143
+ elements: makeBlankTupleTypeElementList ( ) ,
144
+ rightParen: makeRightParenToken ( ) )
150
145
}
151
146
147
+ @available ( * , deprecated, message: " Use initializer on TupleTypeSyntax " )
152
148
public static func makeTupleTypeElement( name: TokenSyntax ? ,
153
149
colon: TokenSyntax ? , type: TypeSyntax ,
154
150
trailingComma: TokenSyntax ? ) -> TupleTypeElementSyntax {
155
- return makeTupleTypeElement ( inOut: nil , name: name, secondName: nil ,
156
- colon: colon, type: type, ellipsis: nil ,
157
- initializer: nil , trailingComma: trailingComma)
151
+ return TupleTypeElementSyntax ( inOut: nil , name: name, secondName: nil ,
152
+ colon: colon, type: type, ellipsis: nil ,
153
+ initializer: nil , trailingComma: trailingComma)
158
154
}
159
155
156
+ @available ( * , deprecated, message: " Use initializer on TupleTypeSyntax " )
160
157
public static func makeTupleTypeElement( type: TypeSyntax ,
161
158
trailingComma: TokenSyntax ? ) -> TupleTypeElementSyntax {
162
- return makeTupleTypeElement ( name: nil , colon: nil ,
163
- type: type, trailingComma: trailingComma)
159
+ return TupleTypeElementSyntax ( inOut: nil , name: nil , secondName: nil ,
160
+ colon: nil , type: type, ellipsis: nil ,
161
+ initializer: nil , trailingComma: trailingComma)
164
162
}
165
163
164
+ @available ( * , deprecated, message: " Use initializer on GenericParameterSyntax " )
166
165
public static func makeGenericParameter( name: TokenSyntax ,
167
166
trailingComma: TokenSyntax ) -> GenericParameterSyntax {
168
- return makeGenericParameter ( attributes: nil , name: name, colon: nil ,
169
- inheritedType: nil ,
170
- trailingComma: trailingComma)
167
+ return GenericParameterSyntax ( attributes: nil , name: name, colon: nil ,
168
+ inheritedType: nil ,
169
+ trailingComma: trailingComma)
171
170
}
172
171
172
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
173
173
public static func makeTypeIdentifier( _ name: String ,
174
174
leadingTrivia: Trivia = [ ] ,
175
175
trailingTrivia: Trivia = [ ] ) -> TypeSyntax {
176
- let identifier = makeIdentifier ( name, leadingTrivia: leadingTrivia,
177
- trailingTrivia: trailingTrivia)
178
- let typeIdentifier = makeSimpleTypeIdentifier ( name: identifier,
179
- genericArgumentClause: nil )
176
+ let identifier = TokenSyntax . identifier ( name, leadingTrivia: leadingTrivia,
177
+ trailingTrivia: trailingTrivia)
178
+ let typeIdentifier = SimpleTypeIdentifierSyntax ( name: identifier,
179
+ genericArgumentClause: nil )
180
180
return TypeSyntax ( typeIdentifier)
181
181
}
182
182
183
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
183
184
public static func makeAnyTypeIdentifier( leadingTrivia: Trivia = [ ] ,
184
185
trailingTrivia: Trivia = [ ] ) -> TypeSyntax {
185
186
return makeTypeIdentifier ( " Any " , leadingTrivia: leadingTrivia,
186
187
trailingTrivia: trailingTrivia)
187
188
}
188
189
190
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
189
191
public static func makeSelfTypeIdentifier( leadingTrivia: Trivia = [ ] ,
190
192
trailingTrivia: Trivia = [ ] ) -> TypeSyntax {
191
193
return makeTypeIdentifier ( " Self " , leadingTrivia: leadingTrivia,
192
194
trailingTrivia: trailingTrivia)
193
195
}
194
196
197
+ @available ( * , deprecated, message: " Use initializer on SimpleTypeIdentifierSyntax " )
195
198
public static func makeTypeToken( leadingTrivia: Trivia = [ ] ,
196
199
trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
197
- return makeIdentifier ( " Type " , leadingTrivia: leadingTrivia,
198
- trailingTrivia: trailingTrivia)
200
+ return TokenSyntax . identifier ( " Type " , leadingTrivia: leadingTrivia,
201
+ trailingTrivia: trailingTrivia)
199
202
}
200
203
204
+ @available ( * , deprecated, message: " Use TokenSyntax.protocol " )
201
205
public static func makeProtocolToken( leadingTrivia: Trivia = [ ] ,
202
206
trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
203
- return makeIdentifier ( " Protocol " , leadingTrivia: leadingTrivia,
204
- trailingTrivia: trailingTrivia)
207
+ return TokenSyntax . identifier ( " Protocol " , leadingTrivia: leadingTrivia,
208
+ trailingTrivia: trailingTrivia)
205
209
}
206
210
211
+ @available ( * , deprecated, message: " Use TokenSyntax.spacedBinaryOperator " )
207
212
public static func makeBinaryOperator( _ name: String ,
208
213
leadingTrivia: Trivia = [ ] ,
209
214
trailingTrivia: Trivia = [ ] ) -> TokenSyntax {
210
- return makeToken ( . spacedBinaryOperator( name) ,
211
- presence: . present,
212
- leadingTrivia: leadingTrivia,
213
- trailingTrivia: trailingTrivia)
215
+ return TokenSyntax . spacedBinaryOperator (
216
+ name,
217
+ leadingTrivia: leadingTrivia,
218
+ trailingTrivia: trailingTrivia
219
+ )
214
220
}
215
221
222
+ @available ( * , deprecated, message: " Use initializer on StringLiteralExprSyntax " )
216
223
public static func makeStringLiteralExpr( _ text: String ,
217
224
leadingTrivia: Trivia = [ ] ,
218
225
trailingTrivia: Trivia = [ ] ) -> StringLiteralExprSyntax {
219
- let string = makeStringSegment ( text)
220
- let segment = makeStringSegment ( content: string)
226
+ let string = TokenSyntax . stringSegment ( text)
227
+ let segment = StringSegmentSyntax ( content: string)
221
228
let segments = makeStringLiteralSegments ( [ Syntax ( segment) ] )
222
229
let openQuote = makeStringQuoteToken ( leadingTrivia: leadingTrivia)
223
230
let closeQuote = makeStringQuoteToken ( trailingTrivia: trailingTrivia)
224
- return makeStringLiteralExpr ( openDelimiter: nil ,
225
- openQuote: openQuote,
226
- segments: segments,
227
- closeQuote: closeQuote,
228
- closeDelimiter: nil )
231
+ return StringLiteralExprSyntax ( openDelimiter: nil ,
232
+ openQuote: openQuote,
233
+ segments: segments,
234
+ closeQuote: closeQuote,
235
+ closeDelimiter: nil )
229
236
}
230
237
238
+ @available ( * , deprecated, message: " Use initializer on IdentifierExprSyntax " )
231
239
public static func makeVariableExpr( _ text: String ,
232
240
leadingTrivia: Trivia = [ ] ,
233
241
trailingTrivia: Trivia = [ ] ) -> IdentifierExprSyntax {
234
242
let string = makeIdentifier ( text,
235
243
leadingTrivia: leadingTrivia, trailingTrivia: trailingTrivia)
236
- return makeIdentifierExpr ( identifier: string,
237
- declNameArguments: nil )
244
+ return IdentifierExprSyntax ( identifier: string,
245
+ declNameArguments: nil )
238
246
}
239
247
}
0 commit comments