public static Cons tokenizeVerbatimMethodBody(Cons tree) {
    { MethodSlot method = ((MethodSlot)(Cons.slotFromExpressionTree(tree)));
      String body = ((VerbatimStringWrapper)(Cons.lookupVerbatimTree(((Cons)(Cons.walkVerbatimTree(((Cons)(MethodSlot.inlinableMethodBody(method))), new Object[1]))), null))).wrapperValue;
      int bodystart = 0;
      int bodylength = body.length();
      List parameters = List.newList();
      int parameterposition = 0;
      String identifierchars = "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$";
      Cons result = Stella.NIL;
      char ch = Stella.NULL_CHARACTER;
      int cursor = 0;
      int end = 0;

      { Symbol par = null;
        Cons iter000 = method.methodParameterNames().theConsList;
        Cons collect000 = null;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          par = ((Symbol)(iter000.value));
          if (collect000 == null) {
            {
              collect000 = Cons.cons(((((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_CPP) ? Symbol.cppTranslateName(par) : Symbol.javaTranslateName(par)), Stella.NIL);
              if (parameters.theConsList == Stella.NIL) {
                parameters.theConsList = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(parameters.theConsList, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(((((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_CPP) ? Symbol.cppTranslateName(par) : Symbol.javaTranslateName(par)), Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      loop001 : for (;;) {
        if (cursor >= bodylength) {
          break loop001;
        }
        ch = body.charAt(cursor);
        if (ch == '/') {
          cursor = cursor + 1;
          if (cursor < bodylength) {
            switch (body.charAt(cursor)) {
              case '/': 
                { InputStringStream comment = InputStringStream.newInputStringStream(Native.string_subsequence(body, cursor, Stella.NULL_INTEGER));

                  cursor = cursor + (InputStream.readLine(comment)).length();
                }
              break;
              case '*': 
                cursor = Native.stringSearch(body, "*/", cursor);
                if (cursor == Stella.NULL_INTEGER) {
                  { 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 `" + ((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) + "' verbatim code in `" + Stella_Object.deUglifyParseTree(method) + "'.");
                        }
;
                      }

                    } finally {
                      Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
                    }
                  }
                  return (null);
                }
                else {
                  cursor = cursor + 2;
                }
              break;
              default:
              break;
            }
          }
        }
        else if (Native.string_memberP(identifierchars, ch) &&
            (!(Stella.$CHARACTER_TYPE_TABLE$[(int) ch] == Stella.KWD_DIGIT))) {
          end = cursor + 1;
          { int i = Stella.NULL_INTEGER;
            int iter001 = end;
            int upperBound000 = bodylength - 1;

            loop002 : for (;iter001 <= upperBound000; iter001 = iter001 + 1) {
              i = iter001;
              if (Native.string_memberP(identifierchars, body.charAt(i))) {
                end = end + 1;
              }
              else {
                break loop002;
              }
            }
          }
          parameterposition = parameters.position(StringWrapper.wrapString(Native.string_subsequence(body, cursor, end)), Stella.NULL_INTEGER);
          if (parameterposition != Stella.NULL_INTEGER) {
            result = Cons.cons(StringWrapper.wrapString(Native.string_subsequence(body, bodystart, cursor)), result);
            result = Cons.cons(Cons.cons(parameters.nth(parameterposition), Cons.cons(IntegerWrapper.wrapInteger(parameterposition), Stella.NIL)), result);
            bodystart = end;
          }
          cursor = end;
        }
        else {
          cursor = cursor + 1;
        }
      }
      if (bodystart < bodylength) {
        result = Cons.cons(StringWrapper.wrapString(Native.string_subsequence(body, bodystart, bodylength)), result);
      }
      return (result.reverse());
    }
  }