private void parsePercentEscapeSequence(final Formatter f) {
      final int next = f.pop();
      if (next == 'f') {
         // flush - not supported, so ignore
         return;
      }

      final Term arg = f.nextArg();
      final String output;
      switch (next) {
         case 't':
         case 'w':
         case 'q':
         case 'p':
            output = f.format(arg);
            break;
         case 'n':
            long charCode = toLong(calculatables, arg);
            output = Character.toString((char) charCode);
            break;
         case 'r':
            long timesToRepeat = toLong(calculatables, f.nextArg());
            output = repeat(f.format(arg), timesToRepeat);
            break;
         case 's':
            output = concat(f, arg);
            break;
         case 'd':
            // Write the term, ignoring operators.
            output = arg.toString();
            break;
         default:
            f.rewind();
            output = align(f, arg);
      }
      f.writeString(output);
   }