From e497fe981b03d44591d87c234c63b69e62ecf747 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 19 Oct 2010 13:10:39 -0700 Subject: Partial work on adding types to the AST --- src/comp/front/ast.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/comp/front') diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs index 047bdd06..e2dcf159 100644 --- a/src/comp/front/ast.rs +++ b/src/comp/front/ast.rs @@ -84,20 +84,20 @@ tag decl_ { type expr = spanned[expr_]; tag expr_ { - expr_vec(vec[@expr]); - expr_tup(vec[tup(bool /* mutability */, @expr)]); - expr_rec(vec[tup(ident,@expr)]); - expr_call(@expr, vec[@expr]); - expr_binary(binop, @expr, @expr); - expr_unary(unop, @expr); - expr_lit(@lit); + expr_vec(vec[@expr], option[@ty]); + expr_tup(vec[tup(bool /* mutability */, @expr)], option[@ty]); + expr_rec(vec[tup(ident,@expr)], option[@ty]); + expr_call(@expr, vec[@expr], option[@ty]); + expr_binary(binop, @expr, @expr, option[@ty]); + expr_unary(unop, @expr, option[@ty]); + expr_lit(@lit, option[@ty]); expr_cast(@expr, @ty); - expr_if(@expr, block, option[block]); - expr_block(block); - expr_assign(@expr /* TODO: @expr : is_lval(@expr) */, @expr); - expr_field(@expr, ident); - expr_index(@expr, @expr); - expr_name(name, option[def]); + expr_if(@expr, block, option[block], option[@ty]); + expr_block(block, option[@ty]); + expr_assign(@expr /* TODO: @expr|is_lval */, @expr, option[@ty]); + expr_field(@expr, ident, option[@ty]); + expr_index(@expr, @expr, option[@ty]); + expr_name(name, option[def], option[@ty]); } type lit = spanned[lit_]; -- cgit v1.2.3