code: public static void translate(Syntax syntax,
              Definition source, int[] moves, int[] symbols, Definition target, int modifier) throws GenericException {
          IntBitSet[] stoppers;
          List<Definition> targets;
          int i;
  
          if (moves.length - 1 != symbols.length) {
              throw new IllegalArgumentException();
          }
  
          stoppers = new IntBitSet[moves.length];
          targets = new ArrayList<Definition>();
          targets.add(target);
          for (i = 0; i < symbols.length; i++) {
              stoppers[i] = new IntBitSet();
              stoppers[i].add(symbols[i]);
          }
          stoppers[i] = new IntBitSet();
          stoppers[i].add(target.getAttribute().symbol);
  
          translate(syntax, modifier, source, targets, moves, stoppers);
      }
docs: Creates a path with 1+ steps