@@ -26,7 +26,7 @@ use core::vec;
26
26
`~` */
27
27
///an unzipping of `token_tree`s
28
28
struct TtFrame {
29
- readme : @mut ~[ ast:: token_tree ] ,
29
+ forest : @mut ~[ ast:: token_tree ] ,
30
30
idx : uint ,
31
31
dotdotdoted : bool ,
32
32
sep : Option < Token > ,
@@ -37,7 +37,7 @@ pub struct TtReader {
37
37
sp_diag : @span_handler ,
38
38
interner : @ident_interner ,
39
39
// the unzipped tree:
40
- cur : @mut TtFrame ,
40
+ stack : @mut TtFrame ,
41
41
/* for MBE-style macro transcription */
42
42
interpolations : LinearMap < ident , @named_match > ,
43
43
repeat_idx : ~[ uint ] ,
@@ -58,8 +58,8 @@ pub fn new_tt_reader(sp_diag: @span_handler,
58
58
let r = @mut TtReader {
59
59
sp_diag : sp_diag,
60
60
interner : itr,
61
- cur : @mut TtFrame {
62
- readme : @mut src,
61
+ stack : @mut TtFrame {
62
+ forest : @mut src,
63
63
idx : 0 u,
64
64
dotdotdoted : false ,
65
65
sep : None ,
@@ -81,7 +81,7 @@ pub fn new_tt_reader(sp_diag: @span_handler,
81
81
82
82
fn dup_tt_frame ( f : @mut TtFrame ) -> @mut TtFrame {
83
83
@mut TtFrame {
84
- readme : @mut ( copy * f. readme ) ,
84
+ forest : @mut ( copy * f. forest ) ,
85
85
idx : f. idx ,
86
86
dotdotdoted : f. dotdotdoted ,
87
87
sep : copy f. sep ,
@@ -96,7 +96,7 @@ pub fn dup_tt_reader(r: @mut TtReader) -> @mut TtReader {
96
96
@mut TtReader {
97
97
sp_diag : r. sp_diag ,
98
98
interner : r. interner ,
99
- cur : dup_tt_frame ( r. cur ) ,
99
+ stack : dup_tt_frame ( r. stack ) ,
100
100
interpolations : r. interpolations ,
101
101
repeat_idx : copy r. repeat_idx ,
102
102
repeat_len : copy r. repeat_len ,
@@ -167,45 +167,46 @@ fn lockstep_iter_size(t: token_tree, r: &mut TtReader) -> lis {
167
167
}
168
168
}
169
169
170
-
170
+ // return the next token from the TtReader.
171
+ // EFFECT: advances the reader's token field
171
172
pub fn tt_next_token ( r : & mut TtReader ) -> TokenAndSpan {
172
173
let ret_val = TokenAndSpan {
173
174
tok : copy r. cur_tok ,
174
175
sp : r. cur_span ,
175
176
} ;
176
177
loop {
177
178
{
178
- let cur = & mut * r. cur ;
179
- let readme = & mut * cur . readme ;
180
- if cur . idx < readme . len ( ) {
179
+ let stack = & mut * r. stack ;
180
+ let forest = & mut * stack . forest ;
181
+ if stack . idx < forest . len ( ) {
181
182
break ;
182
183
}
183
184
}
184
185
185
186
/* done with this set; pop or repeat? */
186
- if ! r. cur . dotdotdoted
187
+ if ! r. stack . dotdotdoted
187
188
|| { * r. repeat_idx . last ( ) == * r. repeat_len . last ( ) - 1 } {
188
189
189
- match r. cur . up {
190
+ match r. stack . up {
190
191
None => {
191
192
r. cur_tok = EOF ;
192
193
return ret_val;
193
194
}
194
195
Some ( tt_f) => {
195
- if r. cur . dotdotdoted {
196
+ if r. stack . dotdotdoted {
196
197
r. repeat_idx . pop ( ) ;
197
198
r. repeat_len . pop ( ) ;
198
199
}
199
200
200
- r. cur = tt_f;
201
- r. cur . idx += 1 u;
201
+ r. stack = tt_f;
202
+ r. stack . idx += 1 u;
202
203
}
203
204
}
204
205
205
206
} else { /* repeat */
206
- r. cur . idx = 0 u;
207
+ r. stack . idx = 0 u;
207
208
r. repeat_idx [ r. repeat_idx . len ( ) - 1 u] += 1 u;
208
- match r. cur . sep {
209
+ match r. stack . sep {
209
210
Some ( copy tk) => {
210
211
r. cur_tok = tk; /* repeat same span, I guess */
211
212
return ret_val;
@@ -216,21 +217,21 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
216
217
}
217
218
loop { /* because it's easiest, this handles `tt_delim` not starting
218
219
with a `tt_tok`, even though it won't happen */
219
- match r. cur . readme [ r. cur . idx ] {
220
+ match r. stack . forest [ r. stack . idx ] {
220
221
tt_delim( copy tts) => {
221
- r. cur = @mut TtFrame {
222
- readme : @mut tts,
222
+ r. stack = @mut TtFrame {
223
+ forest : @mut tts,
223
224
idx : 0 u,
224
225
dotdotdoted : false ,
225
226
sep : None ,
226
- up : option:: Some ( r. cur )
227
+ up : option:: Some ( r. stack )
227
228
} ;
228
229
// if this could be 0-length, we'd need to potentially recur here
229
230
}
230
231
tt_tok( sp, copy tok) => {
231
232
r. cur_span = sp;
232
233
r. cur_tok = tok;
233
- r. cur . idx += 1 u;
234
+ r. stack . idx += 1 u;
234
235
return ret_val;
235
236
}
236
237
tt_seq( sp, copy tts, copy sep, zerok) => {
@@ -256,17 +257,17 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
256
257
once") ;
257
258
}
258
259
259
- r. cur . idx += 1 u;
260
+ r. stack . idx += 1 u;
260
261
return tt_next_token ( r) ;
261
262
} else {
262
263
r. repeat_len . push ( len) ;
263
264
r. repeat_idx . push ( 0 u) ;
264
- r. cur = @mut TtFrame {
265
- readme : @mut tts,
265
+ r. stack = @mut TtFrame {
266
+ forest : @mut tts,
266
267
idx : 0 u,
267
268
dotdotdoted : true ,
268
269
sep : sep,
269
- up : Some ( r. cur )
270
+ up : Some ( r. stack )
270
271
} ;
271
272
}
272
273
}
@@ -280,13 +281,13 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
280
281
(b) we actually can, since it's a token. */
281
282
matched_nonterminal( nt_ident( sn, b) ) => {
282
283
r. cur_span = sp; r. cur_tok = IDENT ( sn, b) ;
283
- r. cur . idx += 1 u;
284
+ r. stack . idx += 1 u;
284
285
return ret_val;
285
286
}
286
287
matched_nonterminal( ref other_whole_nt) => {
287
288
r. cur_span = sp;
288
289
r. cur_tok = INTERPOLATED ( copy * other_whole_nt) ;
289
- r. cur . idx += 1 u;
290
+ r. stack . idx += 1 u;
290
291
return ret_val;
291
292
}
292
293
matched_seq( * ) => {
0 commit comments