@Override
 public String readLine() throws IOException {
   if (buffer.size() > 0) {
     return buffer.remove(0);
   } else {
     String line = super.readLine();
     if (line == null) {
       return null;
     }
     buffer.addAll(lineExpander.expandLine(line));
     return buffer.remove(0);
   }
 }
 @Override
 protected List<String> expandLine(String line) {
   return lineExpander.expandLine(line);
 }