public static Cons walkVariableDeclarations(Cons declarations) {
    { Cons odeclarations = Stella.NIL;
      Symbol variable = null;
      boolean vrletencounteredP = false;

      { Stella_Object decl = null;
        Cons iter000 = declarations;

        loop000 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          decl = iter000.value;
          if (Stella_Object.safePrimaryType(decl) == Stella.SGT_STELLA_CONS) {
            { Cons decl000 = ((Cons)(decl));

              if (vrletencounteredP) {
                odeclarations = Cons.cons(decl000, odeclarations);
                continue loop000;
              }
              else if (!Stella_Object.symbolP(decl000.value)) {
                { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

                  try {
                    Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
                    Stella.signalTranslationError();
                    if (!(Stella.suppressWarningsP())) {
                      Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                      {
                        Stella.STANDARD_ERROR.nativeStream.println();
                        Stella.STANDARD_ERROR.nativeStream.println(" Illegal variable in `let' declaration: `" + Stella_Object.deUglifyParseTree(decl000) + "'.");
                      }
;
                    }

                  } finally {
                    Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
                  }
                }
                variable = Stella.SYM_STELLA_ILLEGAL_VARIABLE;
              }
              else {
                variable = ((Symbol)(decl000.value));
                if ((variable.lookupGlobalVariable() != null) ||
                    Symbol.constantSymbolP(variable)) {
                  { Object old$PrintreadablyP$001 = Stella.$PRINTREADABLYp$.get();

                    try {
                      Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
                      Stella.signalTranslationError();
                      if (!(Stella.suppressWarningsP())) {
                        Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                        {
                          Stella.STANDARD_ERROR.nativeStream.println();
                          Stella.STANDARD_ERROR.nativeStream.println(" `" + ((Symbol.constantSymbolP(variable) ? "Illegal binding of constant value " : "Illegal binding of global or special variable ")) + "'in `let' declaration:");
                          Stella.STANDARD_ERROR.nativeStream.println("    `" + Stella_Object.deUglifyParseTree(decl000) + "'.");
                        }
;
                      }

                    } finally {
                      Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
                    }
                  }
                  variable = Stella.SYM_STELLA_ILLEGAL_VARIABLE;
                }
              }
              switch (decl000.length()) {
                case 1: 
                  { Object old$PrintreadablyP$002 = Stella.$PRINTREADABLYp$.get();

                    try {
                      Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
                      Stella.signalTranslationError();
                      if (!(Stella.suppressWarningsP())) {
                        Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                        {
                          Stella.STANDARD_ERROR.nativeStream.println();
                          Stella.STANDARD_ERROR.nativeStream.println(" Missing argument(s) in `let' declaration: `" + Stella_Object.deUglifyParseTree(decl000) + "'.");
                        }
;
                      }

                    } finally {
                      Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$002);
                    }
                  }
                break;
                case 2: 
                  if (decl000.rest.value == Stella.SYM_STELLA_NULL) {
                    { Object old$PrintreadablyP$003 = Stella.$PRINTREADABLYp$.get();

                      try {
                        Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
                        Stella.signalTranslationError();
                        if (!(Stella.suppressWarningsP())) {
                          Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                          {
                            Stella.STANDARD_ERROR.nativeStream.println();
                            Stella.STANDARD_ERROR.nativeStream.println(" Missing type specifier in `let' declaration: `" + Stella_Object.deUglifyParseTree(decl000) + "'.");
                          }
;
                        }

                      } finally {
                        Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$003);
                      }
                    }
                  }
                  odeclarations = Cons.cons(Symbol.walkADeclaration(variable, null, decl000.rest.value, false), odeclarations);
                break;
                case 3: 
                  odeclarations = Cons.cons(Symbol.walkADeclaration(variable, decl000.rest.value, decl000.rest.rest.value, false), odeclarations);
                break;
                default:
                  { Object old$PrintreadablyP$004 = Stella.$PRINTREADABLYp$.get();

                    try {
                      Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
                      Stella.signalTranslationError();
                      if (!(Stella.suppressWarningsP())) {
                        Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                        {
                          Stella.STANDARD_ERROR.nativeStream.println();
                          Stella.STANDARD_ERROR.nativeStream.println(" Too many terms in `let' declaration:`" + Stella_Object.deUglifyParseTree(decl000) + "'.");
                        }
;
                      }

                    } finally {
                      Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$004);
                    }
                  }
                break;
              }
              if (Stella_Object.proceduralExpressionP(((Cons)(odeclarations.value)).rest.rest.value)) {
                vrletencounteredP = true;
                Stella.popVariableBinding();
              }
            }
          }
          else {
            { Object old$PrintreadablyP$005 = Stella.$PRINTREADABLYp$.get();

              try {
                Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
                Stella.signalTranslationError();
                if (!(Stella.suppressWarningsP())) {
                  Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                  {
                    Stella.STANDARD_ERROR.nativeStream.println();
                    Stella.STANDARD_ERROR.nativeStream.println(" Illegal `let' declaration: `" + Stella_Object.deUglifyParseTree(decl) + "'.");
                  }
;
                }

              } finally {
                Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$005);
              }
            }
          }
        }
      }
      return (odeclarations.reverse());
    }
  }