diff src/pt-misc.cc @ 1063:1a3121ebf088

[project @ 1995-01-24 03:25:37 by jwe]
author jwe
date Tue, 24 Jan 1995 03:26:02 +0000
parents 5d4bf117d58d
children 51fd9e40a7f7
line wrap: on
line diff
--- a/src/pt-misc.cc	Tue Jan 24 02:54:50 1995 +0000
+++ b/src/pt-misc.cc	Tue Jan 24 03:26:02 1995 +0000
@@ -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);
     }
 }