From ec6d00d94bcb1a0adc5c698367634b5e2f370c6e Mon Sep 17 00:00:00 2001 From: xleroy Date: Sat, 27 Sep 2008 08:57:55 +0000 Subject: Clight: ajout Econdition, suppression Eindex. caml/PrintCsyntax.ml: afficher les formes a[b] et a->fld. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@789 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- caml/PrintCsyntax.ml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'caml/PrintCsyntax.ml') diff --git a/caml/PrintCsyntax.ml b/caml/PrintCsyntax.ml index 9ea5b4b8..6aaa5397 100644 --- a/caml/PrintCsyntax.ml +++ b/caml/PrintCsyntax.ml @@ -143,7 +143,7 @@ let parenthesis_level (Expr (e, ty)) = | Omul | Odiv | Omod -> 40 end | Ecast _ -> 30 - | Eindex(_, _) -> 20 + | Econdition(_, _, _) -> 80 | Eandbool(_, _) -> 80 | Eorbool(_, _) -> 80 | Esizeof _ -> 20 @@ -160,6 +160,12 @@ let rec print_expr p (Expr (eb, ty) as e) = fprintf p "%s" (extern_atom id) | Eunop(op, e1) -> fprintf p "%s%a" (name_unop op) print_expr_prec (level, e1) + | Ederef (Expr (Ebinop(Oadd, e1, e2), _)) -> + fprintf p "@[%a@,[%a]@]" + print_expr_prec (level, e1) + print_expr_prec (level, e2) + | Ederef (Expr (Efield(e1, id), _)) -> + fprintf p "%a->%s" print_expr_prec (level, e1) (extern_atom id) | Ederef e -> fprintf p "*%a" print_expr_prec (level, e) | Eaddrof e -> @@ -173,10 +179,11 @@ let rec print_expr p (Expr (eb, ty) as e) = fprintf p "@[(%s)@,%a@]" (name_type ty) print_expr_prec (level, e1) - | Eindex(e1, e2) -> - fprintf p "@[%a@,[%a]@]" + | Econdition(e1, e2, e3) -> + fprintf p "@[%a@ ? %a@ : %a@]" print_expr_prec (level, e1) print_expr_prec (level, e2) + print_expr_prec (level, e3) | Eandbool(e1, e2) -> fprintf p "@[%a@ && %a@]" print_expr_prec (level, e1) @@ -418,7 +425,7 @@ let rec collect_expr (Expr(ed, ty)) = | Eaddrof e -> collect_expr e | Ebinop(op, e1, e2) -> collect_expr e1; collect_expr e2 | Ecast(ty, e1) -> collect_type ty; collect_expr e1 - | Eindex(e1, e2) -> collect_expr e1; collect_expr e2 + | Econdition(e1, e2, e3) -> collect_expr e1; collect_expr e2; collect_expr e3 | Eandbool(e1, e2) -> collect_expr e1; collect_expr e2 | Eorbool(e1, e2) -> collect_expr e1; collect_expr e2 | Esizeof ty -> collect_type ty -- cgit