public void parse(List<String> sentence) {
    this.sentence = sentence;
    initialize();
    while (! agenda.isEmpty()) {
      if (verbose) System.err.println("Agenda: "+agenda);
      Edge edge = agenda.removeFirst();
      if (verbose) System.err.println("Popped edge: "+edge);
      processEdge(edge);
      chart.addEdge(edge);
      if (verbose) System.err.println("Added to chart: "+edge);
    }
  }