public PreprocessingInputStream(TextReader reader, IPreprocessor preprocessor)
{
this.preprocessor = preprocessor;
this.positions = new Stack<PrimitiveStream>();
this.unreadLines = new LinkedArrayList<string>();
PrimitiveStream newData = new PrimitiveStream(reader);
positions.Push(newData);
}