diff options
| author | Marijn Haverbeke <[email protected]> | 2011-04-08 18:44:20 +0200 |
|---|---|---|
| committer | Marijn Haverbeke <[email protected]> | 2011-04-09 01:05:18 +0200 |
| commit | 1af3174fe3b565371a5978381f604ea9c01e86d3 (patch) | |
| tree | 1690b133b0690fdf6a2c005528355c2d00313129 /src/comp/front/extfmt.rs | |
| parent | Make lexer buffer the whole file (diff) | |
| download | rust-1af3174fe3b565371a5978381f604ea9c01e86d3.tar.xz rust-1af3174fe3b565371a5978381f604ea9c01e86d3.zip | |
Move to single-uint file-position representation.
This makes passing them around cheaper. There is now a table (see
front/codemap.rs) that is needed to transform such an uint into an
actual filename/line/col location.
Also cleans up the span building in the parser a bit.
Diffstat (limited to 'src/comp/front/extfmt.rs')
| -rw-r--r-- | src/comp/front/extfmt.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/comp/front/extfmt.rs b/src/comp/front/extfmt.rs index 5028e0c8..5e4f86af 100644 --- a/src/comp/front/extfmt.rs +++ b/src/comp/front/extfmt.rs @@ -318,9 +318,9 @@ fn parse_type(str s, uint i, uint lim) -> tup(ty, uint) { fn pieces_to_expr(vec[piece] pieces, vec[@ast.expr] args) -> @ast.expr { fn make_new_lit(common.span sp, ast.lit_ lit) -> @ast.expr { - auto sp_lit = @parser.spanned[ast.lit_](sp, sp, lit); + auto sp_lit = @rec(node=lit, span=sp); auto expr = ast.expr_lit(sp_lit, ast.ann_none); - ret @parser.spanned[ast.expr_](sp, sp, expr); + ret @rec(node=expr, span=sp); } fn make_new_str(common.span sp, str s) -> @ast.expr { @@ -336,7 +336,7 @@ fn pieces_to_expr(vec[piece] pieces, vec[@ast.expr] args) -> @ast.expr { fn make_add_expr(common.span sp, @ast.expr lhs, @ast.expr rhs) -> @ast.expr { auto binexpr = ast.expr_binary(ast.add, lhs, rhs, ast.ann_none); - ret @parser.spanned[ast.expr_](sp, sp, binexpr); + ret @rec(node=binexpr, span=sp); } fn make_call(common.span sp, vec[ast.ident] fn_path, @@ -344,11 +344,11 @@ fn pieces_to_expr(vec[piece] pieces, vec[@ast.expr] args) -> @ast.expr { let vec[ast.ident] path_idents = fn_path; let vec[@ast.ty] path_types = vec(); auto path = rec(idents = path_idents, types = path_types); - auto sp_path = parser.spanned[ast.path_](sp, sp, path); + auto sp_path = rec(node=path, span=sp); auto pathexpr = ast.expr_path(sp_path, none[ast.def], ast.ann_none); - auto sp_pathexpr = @parser.spanned[ast.expr_](sp, sp, pathexpr); + auto sp_pathexpr = @rec(node=pathexpr, span=sp); auto callexpr = ast.expr_call(sp_pathexpr, args, ast.ann_none); - auto sp_callexpr = @parser.spanned[ast.expr_](sp, sp, callexpr); + auto sp_callexpr = @rec(node=callexpr, span=sp); ret sp_callexpr; } |