public static Cons cppTranslateCondition(Cons condition, boolean symbolcasep) {
    { Cons translatedactions = Cons.cons(Stella.SYM_STELLA_CPP_STATEMENTS, Cons.cppTranslateListOfTrees(condition.rest).concatenate(Stella.NIL, Stella.NIL));
      Stella_Object keys = condition.value;
      Stella_Object translatedkeys = null;
      Cons translatedkeyslist = Stella.NIL;

      if (symbolcasep) {
        if (Stella_Object.consP(keys)) {
          {
            { Stella_Object key = null;
              Cons iter000 = ((Cons)(keys));
              Cons collect000 = null;

              for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                key = iter000.value;
                if (collect000 == null) {
                  {
                    collect000 = Cons.cons(Stella.cppYieldSymbolIdForm(((IntegerWrapper)(key)).wrapperValue), Stella.NIL);
                    if (translatedkeyslist == Stella.NIL) {
                      translatedkeyslist = collect000;
                    }
                    else {
                      Cons.addConsToEndOfConsList(translatedkeyslist, collect000);
                    }
                  }
                }
                else {
                  {
                    collect000.rest = Cons.cons(Stella.cppYieldSymbolIdForm(((IntegerWrapper)(key)).wrapperValue), Stella.NIL);
                    collect000 = collect000.rest;
                  }
                }
              }
            }
            translatedkeys = translatedkeyslist;
          }
        }
        else {
          translatedkeys = Stella.cppYieldSymbolIdForm(((IntegerWrapper)(keys)).wrapperValue);
        }
      }
      else {
        translatedkeys = (Stella_Object.consP(keys) ? Cons.cppTranslateListOfTrees(((Cons)(keys))) : Stella_Object.cppTranslateATree(keys));
      }
      return (Cons.cons(translatedkeys, Cons.cons(translatedactions, Stella.NIL)));
    }
  }