/* Computes fib:  tests method calls, if, while, assignment */
public class secretA {

   public static void outStr(java.lang.String s) {
     java.io.PrintStream ps;
     ps = java.lang.System::out : java.io.PrintStream;
     (ps)->print : void (s);
   }
   public static void outStrln(java.lang.String s) {
     java.io.PrintStream ps;
     ps = java.lang.System::out : java.io.PrintStream;
     (ps)->println : void (s);
   }
   public static void outInt(int n) {
     java.io.PrintStream ps;
     ps = java.lang.System::out : java.io.PrintStream;
     (ps)->print : void (n);
   }

   public static int computeFib(int x) {
      secretA::outStr : void ("Computing fib of ");
      secretA::outInt : void (x);
      int ans;
      ans = secretA::fib : int (x);
      secretA::outStr : void (" is ");
      secretA::outInt : void (ans);
      secretA::outStrln : void ("");
      return ans;
   }
   public static int fib(int x) {
      if (x==0) return 0;
      else if (x==1) return 1;
      else return 
         secretA::fib : int (x-1) +
         secretA::fib : int (x-2);
   }
   public static void main431() {
     int i;
     i = 0;
     secretA::outStrln : void ("CS431 fib test");
     while ( i < 10) {
        int gobble;
        gobble = secretA::computeFib : int (i);
        i = i + 1;
     }
   }
}
