code: public void sequence(FA seq) {
          int idx;
          int relocation;
  
          relocation = append(seq);
  
          if (seq.start != -1) {
              for (idx = ends.first(); idx != -1; idx = ends.next(idx)) {
                  states[idx].add(relocation + seq.start, null);
              }
          }
  
          ends.clear();
          for (idx = seq.ends.first(); idx != -1; idx = seq.ends.next(idx)) {
              ends.add(idx + relocation);
          }
      }
docs: -- combinatation of FA