public static Stella_Object clTranslateUnit(TranslationUnit unit) {
    { Symbol testValue000 = unit.category;

      if (testValue000 == Stella.SYM_STELLA_GLOBAL_VARIABLE) {
        return (TranslationUnit.clTranslateDefineGlobalVariableUnit(unit));
      }
      else if (testValue000 == Stella.SYM_STELLA_CLASS) {
        return (TranslationUnit.clTranslateDefineNativeClassUnit(unit));
      }
      else if ((testValue000 == Stella.SYM_STELLA_METHOD) ||
          (testValue000 == Stella.SYM_STELLA_MACRO)) {
        return (TranslationUnit.clTranslateDefineMethodUnit(unit));
      }
      else if (testValue000 == Stella.SYM_STELLA_PRINT_METHOD) {
        return (TranslationUnit.clTranslateDefprintUnit(unit));
      }
      else if ((testValue000 == Stella.SYM_STELLA_STARTUP_TIME_PROGN) ||
          (testValue000 == Stella.SYM_STELLA_VERBATIM)) {
        return (Stella_Object.clTranslateATree(unit.theObject));
      }
      else if (testValue000 == Stella.SYM_STELLA_TYPE) {
        unit.category = null;
        return (Stella.NIL);
      }
      else {
        { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

          stream000.nativeStream.print("`" + testValue000 + "' is not a valid case option");
          throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
        }
      }
    }
  }