@@ -1114,22 +1114,36 @@ class parser {
1114
1114
1115
1115
/* temporary */
1116
1116
fn parse_tt_mac_demo( ) -> @expr {
1117
+
1118
+ let name_idx = @mut 0 u;
1117
1119
let ms = self . parse_seq( token:: LBRACE , token:: RBRACE ,
1118
1120
common:: seq_sep_none( ) ,
1119
- |p| p. parse_matcher( @mut 0 u) ) . 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 += 1 u;
1123
+ let tt_rhs= self . parse_token_tree( ) ;
1124
+ self . quote_depth -= 1 u;
1125
+ let tt_readme = self . parse_token_tree( ) ;
1126
+ alt ( tt_readme, tt_rhs) {
1127
+ ( tt_delim( tts) , tt_delim( tts_rhs) ) {
1124
1128
let rdr = lexer:: new_tt_reader( self . reader. span_diag( ) ,
1125
1129
self . reader. interner( ) , none, tts)
1126
1130
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( ) ;
1128
1143
}
1129
1144
_ { fail; }
1130
1145
}
1131
1146
1132
- ret self . mk_expr( 0 u, 0 u, expr_break) ;
1133
1147
}
1134
1148
1135
1149
fn parse_matcher( name_idx: @mut uint) -> matcher {
0 commit comments