Skip to content

Commit 0ad006c

Browse files
authored
Merge pull request #126 from rintaro/5.1-parse-stringliteral-syntax
[5.1] Recent changes for string literal syntax
2 parents 1f78822 + 97497dc commit 0ad006c

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

Sources/SwiftSyntax/SyntaxFactory.swift.gyb

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,18 @@ public enum SyntaxFactory {
199199
public static func makeStringLiteralExpr(_ text: String,
200200
leadingTrivia: Trivia = [],
201201
trailingTrivia: Trivia = []) -> StringLiteralExprSyntax {
202-
let literal = makeStringLiteral("\"\(text)\"",
203-
leadingTrivia: leadingTrivia,
204-
trailingTrivia: trailingTrivia)
205-
return makeStringLiteralExpr(stringLiteral: literal)
202+
let string = makeStringSegment(text,
203+
leadingTrivia: leadingTrivia,
204+
trailingTrivia: trailingTrivia)
205+
let segment = makeStringSegment(content: string)
206+
let segments = makeStringLiteralSegments([segment])
207+
let openQuote = makeStringQuoteToken(leadingTrivia: leadingTrivia)
208+
let closeQuote = makeStringQuoteToken(trailingTrivia: trailingTrivia)
209+
return makeStringLiteralExpr(openDelimiter: nil,
210+
openQuote: openQuote,
211+
segments: segments,
212+
closeQuote: closeQuote,
213+
closeDelimiter: nil)
206214
}
207215

208216
public static func makeVariableExpr(_ text: String,

lit_tests/output/print_verify_tree.swift.withkind

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
func </TokenSyntax><TokenSyntax>foo</TokenSyntax><FunctionSignatureSyntax><ParameterClauseSyntax><TokenSyntax>(</TokenSyntax><FunctionParameterListSyntax></FunctionParameterListSyntax><TokenSyntax>) </TokenSyntax></ParameterClauseSyntax></FunctionSignatureSyntax><CodeBlockSyntax><TokenSyntax>{</TokenSyntax><CodeBlockItemListSyntax><CodeBlockItemSyntax><IfConfigDeclSyntax><IfConfigClauseListSyntax><IfConfigClauseSyntax><TokenSyntax>
66
#if </TokenSyntax><FunctionCallExprSyntax><IdentifierExprSyntax><TokenSyntax>swift</TokenSyntax></IdentifierExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><PrefixOperatorExprSyntax><TokenSyntax>>=</TokenSyntax><FloatLiteralExprSyntax><TokenSyntax>3.2</TokenSyntax></FloatLiteralExprSyntax></PrefixOperatorExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax><CodeBlockItemListSyntax><CodeBlockItemSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>
7-
components</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>append</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><StringInterpolationExprSyntax><TokenSyntax>"</TokenSyntax><StringInterpolationSegmentsSyntax><StringSegmentSyntax><TokenSyntax>-b \"</TokenSyntax></StringSegmentSyntax><ExpressionSegmentSyntax><TokenSyntax>\</TokenSyntax><TokenSyntax>(</TokenSyntax><SubscriptExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>[</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><PrefixOperatorExprSyntax><TokenSyntax>..<</TokenSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>index</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><TokenSyntax>before</TokenSyntax><TokenSyntax>: </TokenSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>endIndex</TokenSyntax></MemberAccessExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></PrefixOperatorExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>]</TokenSyntax></SubscriptExprSyntax><TokenSyntax>)</TokenSyntax></ExpressionSegmentSyntax><StringSegmentSyntax><TokenSyntax>\"</TokenSyntax></StringSegmentSyntax></StringInterpolationSegmentsSyntax><TokenSyntax>"</TokenSyntax></StringInterpolationExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></CodeBlockItemSyntax></CodeBlockItemListSyntax></IfConfigClauseSyntax><IfConfigClauseSyntax><TokenSyntax>
7+
components</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>append</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><StringLiteralExprSyntax><TokenSyntax>"</TokenSyntax><StringLiteralSegmentsSyntax><StringSegmentSyntax><TokenSyntax>-b \"</TokenSyntax></StringSegmentSyntax><ExpressionSegmentSyntax><TokenSyntax>\</TokenSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><SubscriptExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>[</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><PrefixOperatorExprSyntax><TokenSyntax>..<</TokenSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>index</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><TokenSyntax>before</TokenSyntax><TokenSyntax>: </TokenSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>endIndex</TokenSyntax></MemberAccessExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></PrefixOperatorExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>]</TokenSyntax></SubscriptExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></ExpressionSegmentSyntax><StringSegmentSyntax><TokenSyntax>\"</TokenSyntax></StringSegmentSyntax></StringLiteralSegmentsSyntax><TokenSyntax>"</TokenSyntax></StringLiteralExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></CodeBlockItemSyntax></CodeBlockItemListSyntax></IfConfigClauseSyntax><IfConfigClauseSyntax><TokenSyntax>
88
#else</TokenSyntax><CodeBlockItemListSyntax><CodeBlockItemSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>
9-
components</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>append</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><StringInterpolationExprSyntax><TokenSyntax>"</TokenSyntax><StringInterpolationSegmentsSyntax><StringSegmentSyntax><TokenSyntax>-b \"</TokenSyntax></StringSegmentSyntax><ExpressionSegmentSyntax><TokenSyntax>\</TokenSyntax><TokenSyntax>(</TokenSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>substring</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><TokenSyntax>to</TokenSyntax><TokenSyntax>: </TokenSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>characters</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>index</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><TokenSyntax>before</TokenSyntax><TokenSyntax>: </TokenSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>endIndex</TokenSyntax></MemberAccessExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax><TokenSyntax>)</TokenSyntax></ExpressionSegmentSyntax><StringSegmentSyntax><TokenSyntax>\"</TokenSyntax></StringSegmentSyntax></StringInterpolationSegmentsSyntax><TokenSyntax>"</TokenSyntax></StringInterpolationExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></CodeBlockItemSyntax></CodeBlockItemListSyntax></IfConfigClauseSyntax></IfConfigClauseListSyntax><TokenSyntax>
9+
components</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>append</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><StringLiteralExprSyntax><TokenSyntax>"</TokenSyntax><StringLiteralSegmentsSyntax><StringSegmentSyntax><TokenSyntax>-b \"</TokenSyntax></StringSegmentSyntax><ExpressionSegmentSyntax><TokenSyntax>\</TokenSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>substring</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><TokenSyntax>to</TokenSyntax><TokenSyntax>: </TokenSyntax><FunctionCallExprSyntax><MemberAccessExprSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>characters</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>index</TokenSyntax></MemberAccessExprSyntax><TokenSyntax>(</TokenSyntax><FunctionCallArgumentListSyntax><FunctionCallArgumentSyntax><TokenSyntax>before</TokenSyntax><TokenSyntax>: </TokenSyntax><MemberAccessExprSyntax><IdentifierExprSyntax><TokenSyntax>string</TokenSyntax></IdentifierExprSyntax><TokenSyntax>.</TokenSyntax><TokenSyntax>endIndex</TokenSyntax></MemberAccessExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></ExpressionSegmentSyntax><StringSegmentSyntax><TokenSyntax>\"</TokenSyntax></StringSegmentSyntax></StringLiteralSegmentsSyntax><TokenSyntax>"</TokenSyntax></StringLiteralExprSyntax></FunctionCallArgumentSyntax></FunctionCallArgumentListSyntax><TokenSyntax>)</TokenSyntax></FunctionCallExprSyntax></CodeBlockItemSyntax></CodeBlockItemListSyntax></IfConfigClauseSyntax></IfConfigClauseListSyntax><TokenSyntax>
1010
#endif</TokenSyntax></IfConfigDeclSyntax></CodeBlockItemSyntax></CodeBlockItemListSyntax><TokenSyntax>
1111
}</TokenSyntax></CodeBlockSyntax></FunctionDeclSyntax></CodeBlockItemSyntax></CodeBlockItemListSyntax><TokenSyntax></TokenSyntax></SourceFileSyntax>

0 commit comments

Comments
 (0)