1+ // Simple interpolation
12"hello \(name)"
23
4+ // Multiple interpolations
5+ "hello \(first) \(last)"
6+
7+ // Interpolation with expression
8+ "result: \(x + y)"
9+
10+ // Plain string before and after interpolation
11+ "prefix \(value) suffix"
12+
313---
414
515sourceFile
@@ -24,10 +34,119 @@ sourceFile
2434 baseName: identifier "name"
2535 stringSegment
2636 content: stringSegment
37+ codeBlockItem
38+ item:
39+ stringLiteralExpr
40+ closingQuote: "
41+ openingQuote: "
42+ segments:
43+ stringSegment
44+ content: stringSegment "hello "
45+ expressionSegment
46+ leftParen: (
47+ rightParen: )
48+ backslash: \
49+ expressions:
50+ labeledExpr
51+ expression:
52+ declReferenceExpr
53+ baseName: identifier "first"
54+ stringSegment
55+ content: stringSegment " "
56+ expressionSegment
57+ leftParen: (
58+ rightParen: )
59+ backslash: \
60+ expressions:
61+ labeledExpr
62+ expression:
63+ declReferenceExpr
64+ baseName: identifier "last"
65+ stringSegment
66+ content: stringSegment
67+ codeBlockItem
68+ item:
69+ stringLiteralExpr
70+ closingQuote: "
71+ openingQuote: "
72+ segments:
73+ stringSegment
74+ content: stringSegment "result: "
75+ expressionSegment
76+ leftParen: (
77+ rightParen: )
78+ backslash: \
79+ expressions:
80+ labeledExpr
81+ expression:
82+ infixOperatorExpr
83+ operator:
84+ binaryOperatorExpr
85+ operator: binaryOperator "+"
86+ leftOperand:
87+ declReferenceExpr
88+ baseName: identifier "x"
89+ rightOperand:
90+ declReferenceExpr
91+ baseName: identifier "y"
92+ stringSegment
93+ content: stringSegment
94+ codeBlockItem
95+ item:
96+ stringLiteralExpr
97+ closingQuote: "
98+ openingQuote: "
99+ segments:
100+ stringSegment
101+ content: stringSegment "prefix "
102+ expressionSegment
103+ leftParen: (
104+ rightParen: )
105+ backslash: \
106+ expressions:
107+ labeledExpr
108+ expression:
109+ declReferenceExpr
110+ baseName: identifier "value"
111+ stringSegment
112+ content: stringSegment " suffix"
27113
28114---
29115
30116top_level
31117 body:
32118 block
33- stmt: string_literal "\"hello \\(name)\""
119+ stmt:
120+ string_interpolation_expr
121+ element:
122+ string_literal "hello "
123+ name_expr
124+ identifier: identifier "name"
125+ string_literal
126+ string_interpolation_expr
127+ element:
128+ string_literal "hello "
129+ name_expr
130+ identifier: identifier "first"
131+ string_literal " "
132+ name_expr
133+ identifier: identifier "last"
134+ string_literal
135+ string_interpolation_expr
136+ element:
137+ string_literal "result: "
138+ binary_expr
139+ left:
140+ name_expr
141+ identifier: identifier "x"
142+ operator: infix_operator "+"
143+ right:
144+ name_expr
145+ identifier: identifier "y"
146+ string_literal
147+ string_interpolation_expr
148+ element:
149+ string_literal "prefix "
150+ name_expr
151+ identifier: identifier "value"
152+ string_literal " suffix"
0 commit comments