@@ -29,20 +29,20 @@ pub struct SeqSep {
29
29
30
30
pub fn seq_sep_trailing_disallowed ( t : token:: Token ) -> SeqSep {
31
31
SeqSep {
32
- sep : option :: Some ( t) ,
33
- trailing_sep_allowed : false
32
+ sep : Some ( t) ,
33
+ trailing_sep_allowed : false ,
34
34
}
35
35
}
36
36
pub fn seq_sep_trailing_allowed ( t : token:: Token ) -> SeqSep {
37
37
SeqSep {
38
- sep : option :: Some ( t) ,
39
- trailing_sep_allowed : true
38
+ sep : Some ( t) ,
39
+ trailing_sep_allowed : true ,
40
40
}
41
41
}
42
42
pub fn seq_sep_none ( ) -> SeqSep {
43
43
SeqSep {
44
- sep : option :: None ,
45
- trailing_sep_allowed : false
44
+ sep : None ,
45
+ trailing_sep_allowed : false ,
46
46
}
47
47
}
48
48
@@ -54,12 +54,20 @@ pub impl Parser {
54
54
fn unexpected_last ( t : token:: Token ) -> ! {
55
55
self . span_fatal (
56
56
* self . last_span ,
57
- ~"unexpected token: `" + token_to_str ( self . reader , t) + ~"`") ;
57
+ fmt ! (
58
+ "unexpected token: `%s`" ,
59
+ token_to_str( self . reader, t)
60
+ )
61
+ ) ;
58
62
}
59
63
60
64
fn unexpected ( ) -> ! {
61
- self . fatal ( ~"unexpected token: `"
62
- + token_to_str ( self . reader , * self . token ) + ~"`") ;
65
+ self . fatal (
66
+ fmt ! (
67
+ "unexpected token: `%s`" ,
68
+ token_to_str( self . reader, * self . token)
69
+ )
70
+ ) ;
63
71
}
64
72
65
73
// expect and consume the token t. Signal an error if
@@ -81,12 +89,23 @@ pub impl Parser {
81
89
self . check_strict_keywords ( ) ;
82
90
self . check_reserved_keywords ( ) ;
83
91
match * self . token {
84
- token:: IDENT ( i, _) => { self . bump ( ) ; return i; }
85
- token:: INTERPOLATED ( token:: nt_ident( * ) ) => { self . bug (
86
- ~"ident interpolation not converted to real token") ; }
87
- _ => { self . fatal ( ~"expected ident, found `"
88
- + token_to_str ( self . reader , * self . token )
89
- + ~"`") ; }
92
+ token:: IDENT ( i, _) => {
93
+ self . bump ( ) ;
94
+ i
95
+ }
96
+ token:: INTERPOLATED ( token:: nt_ident( * ) ) => {
97
+ self . bug (
98
+ ~"ident interpolation not converted to real token"
99
+ ) ;
100
+ }
101
+ _ => {
102
+ self . fatal (
103
+ fmt ! (
104
+ "expected ident, found `%s`" ,
105
+ token_to_str( self . reader, * self . token)
106
+ )
107
+ ) ;
108
+ }
90
109
}
91
110
}
92
111
@@ -155,9 +174,13 @@ pub impl Parser {
155
174
fn expect_keyword ( word : & ~str ) {
156
175
self . require_keyword ( word) ;
157
176
if !self . eat_keyword ( word) {
158
- self . fatal ( ~"expected `" + * word + ~"`, found `" +
159
- token_to_str ( self . reader , * self . token ) +
160
- ~"`") ;
177
+ self . fatal (
178
+ fmt ! (
179
+ "expected `%s`, found `%s`" ,
180
+ * word,
181
+ token_to_str( self . reader, * self . token)
182
+ )
183
+ ) ;
161
184
}
162
185
}
163
186
@@ -177,7 +200,7 @@ pub impl Parser {
177
200
178
201
fn check_strict_keywords_ ( w : & ~str ) {
179
202
if self . is_strict_keyword ( w) {
180
- self . fatal ( ~ "found `" + * w + ~" ` in ident position") ;
203
+ self . fatal ( fmt ! ( "found `%s ` in ident position" , * w ) ) ;
181
204
}
182
205
}
183
206
@@ -197,7 +220,7 @@ pub impl Parser {
197
220
198
221
fn check_reserved_keywords_ ( w : & ~str ) {
199
222
if self . is_reserved_keyword ( w) {
200
- self . fatal ( ~"`" + * w + ~" ` is a reserved keyword") ;
223
+ self . fatal ( fmt ! ( "`%s ` is a reserved keyword", * w ) ) ;
201
224
}
202
225
}
203
226
@@ -207,9 +230,11 @@ pub impl Parser {
207
230
if * self . token == token:: GT {
208
231
self . bump ( ) ;
209
232
} else if * self . token == token:: BINOP ( token:: SHR ) {
210
- self . replace_token ( token:: GT ,
211
- self . span . lo + BytePos ( 1 u) ,
212
- self . span . hi ) ;
233
+ self . replace_token (
234
+ token:: GT ,
235
+ self . span . lo + BytePos ( 1 u) ,
236
+ self . span . hi
237
+ ) ;
213
238
} else {
214
239
let mut s: ~str = ~"expected `";
215
240
s += token_to_str ( self . reader , token:: GT ) ;
@@ -222,8 +247,10 @@ pub impl Parser {
222
247
223
248
// parse a sequence bracketed by '<' and '>', stopping
224
249
// before the '>'.
225
- fn parse_seq_to_before_gt < T : Copy > ( sep : Option < token:: Token > ,
226
- f : fn ( Parser ) -> T ) -> ~[ T ] {
250
+ fn parse_seq_to_before_gt < T : Copy > (
251
+ sep : Option < token:: Token > ,
252
+ f : fn ( Parser ) -> T
253
+ ) -> ~[ T ] {
227
254
let mut first = true ;
228
255
let mut v = ~[ ] ;
229
256
while * self . token != token:: GT
@@ -241,17 +268,21 @@ pub impl Parser {
241
268
return v;
242
269
}
243
270
244
- fn parse_seq_to_gt < T : Copy > ( sep : Option < token:: Token > ,
245
- f : fn ( Parser ) -> T ) -> ~[ T ] {
271
+ fn parse_seq_to_gt < T : Copy > (
272
+ sep : Option < token:: Token > ,
273
+ f : fn ( Parser ) -> T
274
+ ) -> ~[ T ] {
246
275
let v = self . parse_seq_to_before_gt ( sep, f) ;
247
276
self . expect_gt ( ) ;
248
277
249
278
return v;
250
279
}
251
280
252
281
// parse a sequence bracketed by '<' and '>'
253
- fn parse_seq_lt_gt < T : Copy > ( sep : Option < token:: Token > ,
254
- f : fn ( Parser ) -> T ) -> spanned < ~[ T ] > {
282
+ fn parse_seq_lt_gt < T : Copy > (
283
+ sep : Option < token:: Token > ,
284
+ f : fn ( Parser ) -> T
285
+ ) -> spanned < ~[ T ] > {
255
286
let lo = self . span . lo ;
256
287
self . expect ( & token:: LT ) ;
257
288
let result = self . parse_seq_to_before_gt :: < T > ( sep, f) ;
@@ -263,18 +294,24 @@ pub impl Parser {
263
294
// parse a sequence, including the closing delimiter. The function
264
295
// f must consume tokens until reaching the next separator or
265
296
// closing bracket.
266
- fn parse_seq_to_end < T : Copy > ( ket : token:: Token , sep : SeqSep ,
267
- f : fn ( Parser ) -> T ) -> ~[ T ] {
297
+ fn parse_seq_to_end < T : Copy > (
298
+ ket : token:: Token ,
299
+ sep : SeqSep ,
300
+ f : fn ( Parser ) -> T
301
+ ) -> ~[ T ] {
268
302
let val = self . parse_seq_to_before_end ( ket, sep, f) ;
269
303
self . bump ( ) ;
270
- return val;
304
+ val
271
305
}
272
306
273
307
// parse a sequence, not including the closing delimiter. The function
274
308
// f must consume tokens until reaching the next separator or
275
309
// closing bracket.
276
- fn parse_seq_to_before_end < T : Copy > ( ket : token:: Token , sep : SeqSep ,
277
- f : fn ( Parser ) -> T ) -> ~[ T ] {
310
+ fn parse_seq_to_before_end < T : Copy > (
311
+ ket : token:: Token ,
312
+ sep : SeqSep ,
313
+ f : fn ( Parser ) -> T
314
+ ) -> ~[ T ] {
278
315
let mut first: bool = true ;
279
316
let mut v: ~[ T ] = ~[ ] ;
280
317
while * self . token != ket {
@@ -288,31 +325,37 @@ pub impl Parser {
288
325
if sep. trailing_sep_allowed && * self . token == ket { break ; }
289
326
v. push ( f ( self ) ) ;
290
327
}
291
- return v ;
328
+ v
292
329
}
293
330
294
331
// parse a sequence, including the closing delimiter. The function
295
332
// f must consume tokens until reaching the next separator or
296
333
// closing bracket.
297
- fn parse_unspanned_seq < T : Copy > ( +bra : token:: Token ,
298
- +ket : token:: Token ,
299
- sep : SeqSep ,
300
- f : fn ( Parser ) -> T ) -> ~[ T ] {
334
+ fn parse_unspanned_seq < T : Copy > (
335
+ +bra : token:: Token ,
336
+ +ket : token:: Token ,
337
+ sep : SeqSep ,
338
+ f : fn ( Parser ) -> T
339
+ ) -> ~[ T ] {
301
340
self . expect ( & bra) ;
302
- let result = self . parse_seq_to_before_end :: < T > ( ket, sep, f) ;
341
+ let result = self . parse_seq_to_before_end ( ket, sep, f) ;
303
342
self . bump ( ) ;
304
- return result;
343
+ result
305
344
}
306
345
307
346
// NB: Do not use this function unless you actually plan to place the
308
347
// spanned list in the AST.
309
- fn parse_seq < T : Copy > ( bra : token:: Token , ket : token:: Token , sep : SeqSep ,
310
- f : fn ( Parser ) -> T ) -> spanned < ~[ T ] > {
348
+ fn parse_seq < T : Copy > (
349
+ +bra : token:: Token ,
350
+ +ket : token:: Token ,
351
+ sep : SeqSep ,
352
+ f : fn ( Parser ) -> T
353
+ ) -> spanned < ~[ T ] > {
311
354
let lo = self . span . lo ;
312
355
self . expect ( & bra) ;
313
- let result = self . parse_seq_to_before_end :: < T > ( ket, sep, f) ;
356
+ let result = self . parse_seq_to_before_end ( ket, sep, f) ;
314
357
let hi = self . span . hi ;
315
358
self . bump ( ) ;
316
- return spanned ( lo, hi, result) ;
359
+ spanned ( lo, hi, result)
317
360
}
318
361
}
0 commit comments