Skip to content

Commit f5dfa7e

Browse files
committed
---
yaml --- r: 147914 b: refs/heads/try2 c: 2b83377 h: refs/heads/master v: v3
1 parent 133308b commit f5dfa7e

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: b597207cedbea8aafddd1938589849137d5bc468
8+
refs/heads/try2: 2b83377b2922e54e25fbc2e518efbf4feef70829
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/libsyntax/ext/tt/transcribe.rs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ struct TtFrame {
3333
pub struct TtReader {
3434
sp_diag: @mut SpanHandler,
3535
// the unzipped tree:
36-
stack: @mut TtFrame,
36+
priv stack: RefCell<@mut TtFrame>,
3737
/* for MBE-style macro transcription */
3838
priv interpolations: RefCell<HashMap<Ident, @named_match>>,
3939
priv repeat_idx: RefCell<~[uint]>,
@@ -52,13 +52,13 @@ pub fn new_tt_reader(sp_diag: @mut SpanHandler,
5252
-> @mut TtReader {
5353
let r = @mut TtReader {
5454
sp_diag: sp_diag,
55-
stack: @mut TtFrame {
55+
stack: RefCell::new(@mut TtFrame {
5656
forest: @src,
5757
idx: 0u,
5858
dotdotdoted: false,
5959
sep: None,
6060
up: option::None
61-
},
61+
}),
6262
interpolations: match interp { /* just a convienience */
6363
None => RefCell::new(HashMap::new()),
6464
Some(x) => RefCell::new(x),
@@ -89,7 +89,7 @@ fn dup_tt_frame(f: @mut TtFrame) -> @mut TtFrame {
8989
pub fn dup_tt_reader(r: @mut TtReader) -> @mut TtReader {
9090
@mut TtReader {
9191
sp_diag: r.sp_diag,
92-
stack: dup_tt_frame(r.stack),
92+
stack: RefCell::new(dup_tt_frame(r.stack.get())),
9393
repeat_idx: r.repeat_idx.clone(),
9494
repeat_len: r.repeat_len.clone(),
9595
cur_tok: r.cur_tok.clone(),
@@ -181,26 +181,26 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
181181
};
182182
loop {
183183
{
184-
let stack = &mut *r.stack;
185-
if stack.idx < stack.forest.len() {
184+
let mut stack = r.stack.borrow_mut();
185+
if stack.get().idx < stack.get().forest.len() {
186186
break;
187187
}
188188
}
189189

190190
/* done with this set; pop or repeat? */
191-
if ! r.stack.dotdotdoted || {
191+
if !r.stack.get().dotdotdoted || {
192192
let repeat_idx = r.repeat_idx.borrow();
193193
let repeat_len = r.repeat_len.borrow();
194194
*repeat_idx.get().last() == *repeat_len.get().last() - 1
195195
} {
196196

197-
match r.stack.up {
197+
match r.stack.get().up {
198198
None => {
199199
r.cur_tok.set(EOF);
200200
return ret_val;
201201
}
202202
Some(tt_f) => {
203-
if r.stack.dotdotdoted {
203+
if r.stack.get().dotdotdoted {
204204
{
205205
let mut repeat_idx = r.repeat_idx.borrow_mut();
206206
let mut repeat_len = r.repeat_len.borrow_mut();
@@ -209,18 +209,18 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
209209
}
210210
}
211211

212-
r.stack = tt_f;
213-
r.stack.idx += 1u;
212+
r.stack.set(tt_f);
213+
r.stack.get().idx += 1u;
214214
}
215215
}
216216

217217
} else { /* repeat */
218-
r.stack.idx = 0u;
218+
r.stack.get().idx = 0u;
219219
{
220220
let mut repeat_idx = r.repeat_idx.borrow_mut();
221221
repeat_idx.get()[repeat_idx.get().len() - 1u] += 1u;
222222
}
223-
match r.stack.sep.clone() {
223+
match r.stack.get().sep.clone() {
224224
Some(tk) => {
225225
r.cur_tok.set(tk); /* repeat same span, I guess */
226226
return ret_val;
@@ -232,21 +232,21 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
232232
loop { /* because it's easiest, this handles `tt_delim` not starting
233233
with a `tt_tok`, even though it won't happen */
234234
// XXX(pcwalton): Bad copy.
235-
match r.stack.forest[r.stack.idx].clone() {
235+
match r.stack.get().forest[r.stack.get().idx].clone() {
236236
tt_delim(tts) => {
237-
r.stack = @mut TtFrame {
237+
r.stack.set(@mut TtFrame {
238238
forest: tts,
239239
idx: 0u,
240240
dotdotdoted: false,
241241
sep: None,
242-
up: option::Some(r.stack)
243-
};
242+
up: option::Some(r.stack.get())
243+
});
244244
// if this could be 0-length, we'd need to potentially recur here
245245
}
246246
tt_tok(sp, tok) => {
247247
r.cur_span.set(sp);
248248
r.cur_tok.set(tok);
249-
r.stack.idx += 1u;
249+
r.stack.get().idx += 1u;
250250
return ret_val;
251251
}
252252
tt_seq(sp, tts, sep, zerok) => {
@@ -273,21 +273,21 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
273273
once");
274274
}
275275

276-
r.stack.idx += 1u;
276+
r.stack.get().idx += 1u;
277277
return tt_next_token(r);
278278
} else {
279279
{
280280
let mut repeat_idx = r.repeat_idx.borrow_mut();
281281
let mut repeat_len = r.repeat_len.borrow_mut();
282282
repeat_len.get().push(len);
283283
repeat_idx.get().push(0u);
284-
r.stack = @mut TtFrame {
284+
r.stack.set(@mut TtFrame {
285285
forest: tts,
286286
idx: 0u,
287287
dotdotdoted: true,
288288
sep: sep,
289-
up: Some(r.stack)
290-
};
289+
up: Some(r.stack.get())
290+
});
291291
}
292292
}
293293
}
@@ -302,14 +302,14 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
302302
matched_nonterminal(nt_ident(~sn,b)) => {
303303
r.cur_span.set(sp);
304304
r.cur_tok.set(IDENT(sn,b));
305-
r.stack.idx += 1u;
305+
r.stack.get().idx += 1u;
306306
return ret_val;
307307
}
308308
matched_nonterminal(ref other_whole_nt) => {
309309
// XXX(pcwalton): Bad copy.
310310
r.cur_span.set(sp);
311311
r.cur_tok.set(INTERPOLATED((*other_whole_nt).clone()));
312-
r.stack.idx += 1u;
312+
r.stack.get().idx += 1u;
313313
return ret_val;
314314
}
315315
matched_seq(..) => {

0 commit comments

Comments
 (0)