@@ -10,6 +10,7 @@ import option::{some};
10
10
import extfmt:: ct:: * ;
11
11
import base:: * ;
12
12
import codemap:: span;
13
+ import syntax:: ext:: build:: * ;
13
14
export expand_syntax_ext;
14
15
15
16
fn expand_syntax_ext ( cx : ext_ctxt , sp : span , arg : @ast:: expr ,
@@ -41,47 +42,9 @@ fn expand_syntax_ext(cx: ext_ctxt, sp: span, arg: @ast::expr,
41
42
// FIXME: A lot of these functions for producing expressions can probably
42
43
// be factored out in common with other code that builds expressions.
43
44
// FIXME: Cleanup the naming of these functions
45
+ // NOTE: Moved many of the common ones to build.rs --kevina
44
46
fn pieces_to_expr ( cx : ext_ctxt , sp : span , pieces : [ piece ] , args : [ @ast:: expr ] )
45
47
-> @ast:: expr {
46
- fn make_new_lit ( cx : ext_ctxt , sp : span , lit : ast:: lit_ ) -> @ast:: expr {
47
- let sp_lit = @{ node: lit, span: sp} ;
48
- ret @{ id : cx. next_id ( ) , node : ast:: expr_lit ( sp_lit) , span : sp} ;
49
- }
50
- fn make_new_str ( cx : ext_ctxt , sp : span , s : str ) -> @ast:: expr {
51
- let lit = ast:: lit_str ( s) ;
52
- ret make_new_lit ( cx, sp, lit) ;
53
- }
54
- fn make_new_int ( cx : ext_ctxt , sp : span , i : int ) -> @ast:: expr {
55
- let lit = ast:: lit_int ( i as i64 , ast:: ty_i) ;
56
- ret make_new_lit ( cx, sp, lit) ;
57
- }
58
- fn make_new_uint ( cx : ext_ctxt , sp : span , u : uint ) -> @ast:: expr {
59
- let lit = ast:: lit_uint ( u as u64 , ast:: ty_u) ;
60
- ret make_new_lit ( cx, sp, lit) ;
61
- }
62
- fn make_add_expr ( cx : ext_ctxt , sp : span , lhs : @ast:: expr , rhs : @ast:: expr )
63
- -> @ast:: expr {
64
- let binexpr = ast:: expr_binary ( ast:: add, lhs, rhs) ;
65
- ret @{ id : cx. next_id ( ) , node : binexpr, span : sp} ;
66
- }
67
- fn make_path_expr ( cx : ext_ctxt , sp : span , idents : [ ast:: ident ] ) ->
68
- @ast:: expr {
69
- let path = { global: false, idents: idents, types: [ ] } ;
70
- let sp_path = @{ node: path, span: sp} ;
71
- let pathexpr = ast:: expr_path ( sp_path) ;
72
- ret @{ id : cx. next_id ( ) , node : pathexpr, span : sp} ;
73
- }
74
- fn make_vec_expr ( cx : ext_ctxt , sp : span , exprs : [ @ast:: expr ] ) ->
75
- @ast:: expr {
76
- let vecexpr = ast:: expr_vec ( exprs, ast:: imm) ;
77
- ret @{ id : cx. next_id ( ) , node : vecexpr, span : sp} ;
78
- }
79
- fn make_call ( cx : ext_ctxt , sp : span , fn_path : [ ast:: ident ] ,
80
- args : [ @ast:: expr ] ) -> @ast:: expr {
81
- let pathexpr = make_path_expr ( cx, sp, fn_path) ;
82
- let callexpr = ast:: expr_call ( pathexpr, args, false ) ;
83
- ret @{ id : cx. next_id ( ) , node : callexpr, span : sp} ;
84
- }
85
48
fn make_rec_expr ( cx : ext_ctxt , sp : span ,
86
49
fields : [ { ident: ast:: ident , ex : @ast:: expr } ] ) ->
87
50
@ast:: expr {
0 commit comments