Skip to content

Commit f940653

Browse files
committed
Update the new macro demo.
1 parent 0c6fe64 commit f940653

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

src/libsyntax/parse/parser.rs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,22 +1114,36 @@ class parser {
11141114

11151115
/* temporary */
11161116
fn parse_tt_mac_demo() -> @expr {
1117+
1118+
let name_idx = @mut 0u;
11171119
let ms = self.parse_seq(token::LBRACE, token::RBRACE,
11181120
common::seq_sep_none(),
1119-
|p| p.parse_matcher(@mut 0u)).node;
1120-
let tt = self.parse_token_tree();
1121-
//let tt_rhs = self.parse_token_tree();
1122-
alt tt {
1123-
tt_delim(tts) {
1121+
|p| p.parse_matcher(name_idx)).node;
1122+
self.quote_depth += 1u;
1123+
let tt_rhs= self.parse_token_tree();
1124+
self.quote_depth -= 1u;
1125+
let tt_readme = self.parse_token_tree();
1126+
alt (tt_readme, tt_rhs) {
1127+
(tt_delim(tts), tt_delim(tts_rhs)) {
11241128
let rdr = lexer::new_tt_reader(self.reader.span_diag(),
11251129
self.reader.interner(), none, tts)
11261130
as reader;
1127-
ext::tt::earley_parser::parse(self.sess, self.cfg, rdr, ms);
1131+
1132+
let matches = ext::tt::earley_parser::parse
1133+
(self.sess, self.cfg, rdr, ms);
1134+
1135+
let transcriber = ext::tt::transcribe::new_tt_reader
1136+
(self.reader.span_diag(), self.reader.interner(),
1137+
some(matches), tts_rhs);
1138+
let res_parser = parser(self.sess, self.cfg,
1139+
transcriber as reader,
1140+
SOURCE_FILE);
1141+
1142+
ret res_parser.parse_expr();
11281143
}
11291144
_ { fail; }
11301145
}
11311146

1132-
ret self.mk_expr(0u, 0u, expr_break);
11331147
}
11341148

11351149
fn parse_matcher(name_idx: @mut uint) -> matcher {

0 commit comments

Comments
 (0)