protected Preprocessor(Preprocessor predecessor) { this.predecessor = predecessor; }
protected abstract Preprocessor Copy(Preprocessor predecessor);
public Preprocessor() { predecessor = null; }