@@ -32,38 +32,38 @@ use std::map::HashMap;
32
32
// is now probably a redundant AST node, can be merged with
33
33
// ast::mac_invoc_tt.
34
34
35
- struct MacroDef {
35
+ pub struct MacroDef {
36
36
name : ~str ,
37
37
ext : SyntaxExtension
38
38
}
39
39
40
- type ItemDecorator =
40
+ pub type ItemDecorator =
41
41
fn @( ext_ctxt , span , ast:: meta_item , ~[ @ast:: item ] ) -> ~[ @ast:: item ] ;
42
42
43
- struct SyntaxExpanderTT {
43
+ pub struct SyntaxExpanderTT {
44
44
expander : SyntaxExpanderTTFun ,
45
45
span : Option < span >
46
46
}
47
47
48
- type SyntaxExpanderTTFun = fn @( ext_ctxt , span , ~[ ast:: token_tree ] )
49
- -> MacResult ;
48
+ pub type SyntaxExpanderTTFun = fn @( ext_ctxt , span , ~[ ast:: token_tree ] )
49
+ -> MacResult ;
50
50
51
- struct SyntaxExpanderTTItem {
51
+ pub struct SyntaxExpanderTTItem {
52
52
expander : SyntaxExpanderTTItemFun ,
53
53
span : Option < span >
54
54
}
55
55
56
- type SyntaxExpanderTTItemFun
56
+ pub type SyntaxExpanderTTItemFun
57
57
= fn @( ext_ctxt , span , ast:: ident , ~[ ast:: token_tree ] ) -> MacResult ;
58
58
59
- enum MacResult {
59
+ pub enum MacResult {
60
60
MRExpr ( @ast:: expr ) ,
61
61
MRItem ( @ast:: item ) ,
62
62
MRAny ( fn @( ) -> @ast:: expr , fn @( ) -> Option < @ast:: item > , fn @( ) ->@ast:: stmt ) ,
63
63
MRDef ( MacroDef )
64
64
}
65
65
66
- enum SyntaxExtension {
66
+ pub enum SyntaxExtension {
67
67
68
68
// #[auto_encode] and such
69
69
ItemDecorator ( ItemDecorator ) ,
@@ -78,7 +78,7 @@ enum SyntaxExtension {
78
78
79
79
// A temporary hard-coded map of methods for expanding syntax extension
80
80
// AST nodes into full ASTs
81
- fn syntax_expander_table ( ) -> HashMap < ~str , SyntaxExtension > {
81
+ pub fn syntax_expander_table ( ) -> HashMap < ~str , SyntaxExtension > {
82
82
fn builtin_normal_tt ( f : SyntaxExpanderTTFun ) -> SyntaxExtension {
83
83
NormalTT ( SyntaxExpanderTT { expander : f, span : None } )
84
84
}
@@ -161,7 +161,7 @@ fn syntax_expander_table() -> HashMap<~str, SyntaxExtension> {
161
161
// One of these is made during expansion and incrementally updated as we go;
162
162
// when a macro expansion occurs, the resulting nodes have the backtrace()
163
163
// -> expn_info of their expansion context stored into their span.
164
- trait ext_ctxt {
164
+ pub trait ext_ctxt {
165
165
fn codemap ( ) -> @CodeMap ;
166
166
fn parse_sess ( ) -> parse:: parse_sess ;
167
167
fn cfg ( ) -> ast:: crate_cfg ;
@@ -187,8 +187,8 @@ trait ext_ctxt {
187
187
fn ident_of ( st : ~str ) -> ast:: ident ;
188
188
}
189
189
190
- fn mk_ctxt ( parse_sess : parse:: parse_sess ,
191
- cfg : ast:: crate_cfg ) -> ext_ctxt {
190
+ pub fn mk_ctxt ( parse_sess : parse:: parse_sess ,
191
+ cfg : ast:: crate_cfg ) -> ext_ctxt {
192
192
type ctxt_repr = { parse_sess : parse:: parse_sess ,
193
193
cfg : ast:: crate_cfg ,
194
194
mut backtrace : Option < @ExpnInfo > ,
@@ -281,7 +281,7 @@ fn mk_ctxt(parse_sess: parse::parse_sess,
281
281
move ( ( move imp) as ext_ctxt )
282
282
}
283
283
284
- fn expr_to_str ( cx : ext_ctxt , expr : @ast:: expr , err_msg : ~str ) -> ~str {
284
+ pub fn expr_to_str ( cx : ext_ctxt , expr : @ast:: expr , err_msg : ~str ) -> ~str {
285
285
match expr. node {
286
286
ast:: expr_lit( l) => match l. node {
287
287
ast:: lit_str( s) => return * s,
@@ -291,9 +291,9 @@ fn expr_to_str(cx: ext_ctxt, expr: @ast::expr, err_msg: ~str) -> ~str {
291
291
}
292
292
}
293
293
294
- fn expr_to_ident ( cx : ext_ctxt ,
295
- expr : @ast:: expr ,
296
- err_msg : ~str ) -> ast:: ident {
294
+ pub fn expr_to_ident ( cx : ext_ctxt ,
295
+ expr : @ast:: expr ,
296
+ err_msg : ~str ) -> ast:: ident {
297
297
match expr. node {
298
298
ast:: expr_path( p) => {
299
299
if vec:: len ( p. types ) > 0 u || vec:: len ( p. idents ) != 1 u {
@@ -305,15 +305,17 @@ fn expr_to_ident(cx: ext_ctxt,
305
305
}
306
306
}
307
307
308
- fn check_zero_tts ( cx : ext_ctxt , sp : span , tts : & [ ast:: token_tree ] ,
309
- name : & str ) {
308
+ pub fn check_zero_tts ( cx : ext_ctxt , sp : span , tts : & [ ast:: token_tree ] ,
309
+ name : & str ) {
310
310
if tts. len ( ) != 0 {
311
311
cx. span_fatal ( sp, fmt ! ( "%s takes no arguments" , name) ) ;
312
312
}
313
313
}
314
314
315
- fn get_single_str_from_tts ( cx : ext_ctxt , sp : span , tts : & [ ast:: token_tree ] ,
316
- name : & str ) -> ~str {
315
+ pub fn get_single_str_from_tts ( cx : ext_ctxt ,
316
+ sp : span ,
317
+ tts : & [ ast:: token_tree ] ,
318
+ name : & str ) -> ~str {
317
319
if tts. len ( ) != 1 {
318
320
cx. span_fatal ( sp, fmt ! ( "%s takes 1 argument." , name) ) ;
319
321
}
@@ -325,8 +327,8 @@ fn get_single_str_from_tts(cx: ext_ctxt, sp: span, tts: &[ast::token_tree],
325
327
}
326
328
}
327
329
328
- fn get_exprs_from_tts ( cx : ext_ctxt , tts : ~[ ast:: token_tree ] )
329
- -> ~[ @ast:: expr ] {
330
+ pub fn get_exprs_from_tts ( cx : ext_ctxt , tts : ~[ ast:: token_tree ] )
331
+ -> ~[ @ast:: expr ] {
330
332
let p = parse:: new_parser_from_tts ( cx. parse_sess ( ) ,
331
333
cx. cfg ( ) ,
332
334
tts) ;
0 commit comments