Skip to content

Commit 86a8c87

Browse files
brsongraydon
authored andcommitted
---
yaml --- r: 1474 b: refs/heads/master c: f9144d5 h: refs/heads/master v: v3
1 parent 45a06c4 commit 86a8c87

File tree

2 files changed

+35
-9
lines changed

2 files changed

+35
-9
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 1badf9316a174615e9e5c60e6cfd12e4f071d623
2+
refs/heads/master: f9144d5972aef3e7078b272703bf275691991297

trunk/src/comp/front/extfmt.rs

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* combinations at the moment.
1414
*/
1515

16-
import front.parser;
16+
import util.common;
1717

1818
import std._str;
1919
import std._vec;
@@ -251,13 +251,39 @@ fn parse_type(str s, uint i, uint lim) -> tup(ty, uint) {
251251
}
252252

253253
fn pieces_to_expr(vec[piece] pieces, vec[@ast.expr] args) -> @ast.expr {
254-
auto lo = args.(0).span;
255-
auto hi = args.(0).span;
256-
auto strlit = ast.lit_str("TODO");
257-
auto spstrlit = @parser.spanned[ast.lit_](lo, hi, strlit);
258-
auto expr = ast.expr_lit(spstrlit, ast.ann_none);
259-
auto spexpr = @parser.spanned[ast.expr_](lo, hi, expr);
260-
ret spexpr;
254+
255+
fn make_new_str(common.span sp, str s) -> @ast.expr {
256+
auto strlit = ast.lit_str(s);
257+
auto spstrlit = @parser.spanned[ast.lit_](sp, sp, strlit);
258+
auto expr = ast.expr_lit(spstrlit, ast.ann_none);
259+
ret @parser.spanned[ast.expr_](sp, sp, expr);
260+
}
261+
262+
fn make_add_expr(common.span sp,
263+
@ast.expr lhs, @ast.expr rhs) -> @ast.expr {
264+
auto binexpr = ast.expr_binary(ast.add, lhs, rhs, ast.ann_none);
265+
ret @parser.spanned[ast.expr_](sp, sp, binexpr);
266+
}
267+
268+
auto sp = args.(0).span;
269+
auto n = 0;
270+
auto tmp_expr = make_new_str(sp, "whatever");
271+
272+
for (piece p in pieces) {
273+
alt (p) {
274+
case (piece_string(?s)) {
275+
auto s_expr = make_new_str(sp, s);
276+
tmp_expr = make_add_expr(sp, tmp_expr, s_expr);
277+
}
278+
case (piece_conv(?conv)) {
279+
}
280+
}
281+
}
282+
283+
// TODO: Remove this print and return the real expanded AST
284+
log "dumping expanded ast:";
285+
log pretty.print_expr(tmp_expr);
286+
ret make_new_str(sp, "TODO");
261287
}
262288

263289
//

0 commit comments

Comments
 (0)