# HG changeset patch # User jwe # Date 790917962 0 # Node ID 1a3121ebf08820fc4d77b0b8387f47f8c423dfba # Parent 1b3a8703164191c745dbfc3108b21db2e1ad6975 [project @ 1995-01-24 03:25:37 by jwe] diff --git a/src/pt-misc.cc b/src/pt-misc.cc --- a/src/pt-misc.cc +++ b/src/pt-misc.cc @@ -495,6 +495,12 @@ // If. int +tree_if_clause::is_else_clause (void) +{ + return (! expr); +} + +int tree_if_clause::eval (void) { if (expr) @@ -554,23 +560,10 @@ tree_if_clause::print_code (ostream& os) { if (expr) - { - expr->print_code (os); - - print_code_new_line (os); + expr->print_code (os); - increment_indent_level (); - } - else - { - print_code_indent (os); - - os << "else"; - - print_code_new_line (os); - - increment_indent_level (); - } + print_code_new_line (os); + increment_indent_level (); if (list) { @@ -605,21 +598,23 @@ { tree_if_clause *elt = this->operator () (p); - next (p); - if (elt) { - if (p && ! first_elt) + if (! first_elt) { print_code_indent (os); - os << "elseif "; + if (elt->is_else_clause ()) + os << "else"; + else + os << "elseif "; } elt->print_code (os); } first_elt = 0; + next (p); } } diff --git a/src/pt-misc.h b/src/pt-misc.h --- a/src/pt-misc.h +++ b/src/pt-misc.h @@ -316,6 +316,8 @@ delete list; } + int is_else_clause (void); + int eval (void); void print_code (ostream& os);